ansible脚本書かれた - 複数の役割YMLにファイルを分割

このブログ実験環境を参照してくださいansible展開との基本的なモジュール使用
YML文書を書く必要のプレイブックは、複数の役割、容易な管理に分かれています。

[devops@server1 ansible]$ mkdir roles
[devops@server1 ansible]$ ansible-galaxy list 	##查看角色列表
[devops@server1 ansible]$ cd roles/
[devops@server1 roles]$ ansible-galaxy init httpd		##创建角色
- httpd was created successfully

ここに画像を挿入説明
私たちは、生成されたディレクトリ内のファイルやディレクトリを見ることができます。

役割 効果
ファイル スクリプトやモジュールによって呼び出されたファイルコピーモジュールを格納するために使用されます。
テンプレート Jinjia2は、テンプレートモジュールが自動的にこのディレクトリにjinjia2テンプレートファイルを検索し、テンプレートを格納するために使用されます。
タスク このディレクトリには、main.ymlファイルが含まれているこのロールのタスクリストを定義する必要があり、使用することができ、この文書では、このディレクトリにある他のタスクのファイルが含まれています。
ハンドラ このディレクトリには、この役割トリガ条件を実行するアクションを定義するmain.ymlファイルを含める必要があります。
その このディレクトリには、この役割で使用される変数を定義するmain.ymlファイルを含める必要があります。
デフォルト このディレクトリは、現在のロールにデフォルトの変数を設定するために使用main.ymlファイルを、含まれている必要があります。
メタ このディレクトリには、この役割とその依存関係の特別な設定を定義するmain.ymlファイルを含める必要があります。

私たちは、これらの役割の脚本が実際に以前に使用したコードの導入サービスなどの異なるディレクトリのhttpd何にも長いYML別のファイルとなっているだろうが見つかりました:

---
- hosts: webservers						##声明作用的主机
  vars:									##角色1
    http_port: 8080
  tasks:								##角色2			
    - name: install httpd
      yum:
        name: httpd
        state: latest

    - name: create index.html
      copy:
        content: "{{ ansible_facts['hostname'] }}\n"
        dest: /var/www/html/index.html
      tags: index

    - name: configure httpd
      template:
        src: templates/httpd.conf
        dest: /etc/httpd/conf/httpd.conf
        owner: root
        group: root
        mode: 644
      notify: restart httpd

    - name: start httpd
      service:
        name: httpd
        state: started
        enabled: true

    - name: start firewalld
      service:
        name: firewalld
        state: started
        enabled: true
    - name: configure firewalld
      firewalld:
        service: http
        state: enabled
        permanent: yes
        immediate: yes


  handlers:								##角色3
    - name: restart httpd
      service:
        name: httpd
        state: restarted

私たちは、上記のコードは、役割のVARS、タスク、上記のコードの下にあるすべての私たちの対応が役割に分割され、上記生成されたディレクトリ内のハンドラ、文字脚本ファイルを作成する方法を詳しく見てマークされていることが分かりました。
まずは、VARS役割を書いてみましょう

[devops@server1 httpd]$ ls
defaults  files  handlers  meta  README.md  tasks  templates  vars
[devops@server1 httpd]$ vim vars/main.yml 

ここに画像を挿入説明
モジュールの内容に上記VARコンテンツ
同様、書き込み作業ロール

[devops@server1 httpd]$ ls
defaults  files  handlers  meta  README.md  tasks  templates  vars
[devops@server1 httpd]$ vim tasks/main.yml 
---
- name: install httpd
  yum:
    name: httpd
    state: latest

- name: create index.html
  copy:
    content: "{{ ansible_facts['hostname'] }}\n"
    dest: /var/www/html/index.html
  tags: index

- name: configure httpd
  template:
    src: templates/httpd.conf
    dest: /etc/httpd/conf/httpd.conf
    owner: root
    group: root
    mode: 644
  notify: restart httpd

- name: start httpd
  service:
    name: httpd
    state: started
    enabled: true

- name: start firewalld
  service:
    name: firewalld
    state: started
    enabled: true

- name: configure firewalld
  firewalld:
    service: http
    state: enabled
    permanent: yes
    immediate: yes

上記のような内容とタスクモジュール。
次に、ハンドラの役割を書きます

[devops@server1 httpd]$ ls
defaults  files  handlers  meta  README.md  tasks  templates  vars
[devops@server1 httpd]$ vim handlers/main.yml 

ここに画像を挿入説明

最後に、役割をテンプレート

[devops@server1 httpd]$ cd templates/
[devops@server1 templates]$ ls
httpd.conf
[devops@server1 templates]$ vim httpd.conf

ここに画像を挿入説明
このディレクトリには、メインの設定ファイルのhttpdサービスを入れて、設定されたポートが役割をvarsの{{}} HTTP_PORT、簡単にポートのテストを行うには、後で修正。
これは、複数のロールにYMLファイルを置いていますが、ホストが定義されていないことがわかります。

[devops@server1 ansible]$ vim apache.yml 
---
- hosts: all			##定义主机
  roles:
    - httpd				##定义角色

私たちは、その上にYMLファイルを押した後、ホストの動作を定義し、一般的なYMLファイルansibleメインの設定ファイルに書き込まれるように、アップ実行HTTPDこの全体の大きな役割を作りたいです。

[devops@server1 ansible]$ ansible-playbook apache.yml 

ここに画像を挿入説明
我々が作成のhttpdの役割は、対応する機能を実現することができるかどうかを確認するためのテストの成功を押してください

[devops@server1 ansible]$ vim roles/httpd/vars/main.yml 

ここに画像を挿入説明
ポートを変更できるかどうかを確認するために、VARS役割を書きます。

[devops@server1 ansible]$ ansible-playbook apache.yml 

ここに画像を挿入説明
プッシュ。
ここに画像を挿入説明
リモート・ホスト・ポートを表示し、正常に変更され、そのファイルが複数の役割に分かれて成功をYML。

おすすめ

転載: blog.csdn.net/qq_41961805/article/details/91447618