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
