playbook ファイル
inventory ファイルに記述した対象ホストの最終的なあるべき姿(こうなっていなければならないという状態)を記述したファイルです。 Ansible には users や yum など用途ごとに多数のモジュールが用意されています。このモジュールを使用して、対象ホストのあるべき姿を記述します。モジュールで記述した 1 つ 1 つのあるべき姿のことをタスクと呼びます。下記はあるべき姿の一例です。- パッケージ open-vm-tools がインストールされていること
- 最新のパッケージがインストールされていること
- name: 初期パッケージのインストール yum: name: "{{ item }}" state: latest loop: "{{ pkgs }}" become: yes - name: インストール済パッケージのアップデート yum: name: '*' state: latest become: yesタスクごとに分けると次の 2 つになります。
- name: 初期パッケージのインストール yum: name: "{{ item }}" state: latest loop: "{{ pkgs }}" become: yes
- name: インストール済パッケージのアップデート yum: name: '*' state: latest become: yes
構成
play はあるべき姿を定義した処理の単位です。この play が 1 つ以上集まって playbook を構成します。具体的には Web サーバー用 play 、DNS サーバー用 play などが集まって 1 つの playbook を構成します。 play 内は targets / vars / tasks / handlers の 4 つのセクションで構成します。--- - hosts: all vars: pkgs: - open-vm-tools - httpd tasks: - name: 初期パッケージのインストール yum: name: "{{ item }}" state: latest loop: "{{ pkgs }}" become: yes - name: インストール済パッケージのアップデート yum: name: '*' state: latest become: yes上記の playbook の場合、次のようになります。
■ targets セクション
- hosts: all■vars セクション
vars: pkgs: - open-vm-tools - httpd■tasks セクション
tasks: - name: 初期パッケージのインストール yum: name: "{{ item }}" state: latest loop: "{{ pkgs }}" become: yes - name: インストール済パッケージのアップデート yum: name: '*' state: latest become: yes