2
2

More than 3 years have passed since last update.

[Ansible]playbookの解説書

Last updated at Posted at 2020-09-02

はじめに

Ansibleについて記事を書いたが、playbookの詳細(書き方など)を書いていなかったのでここで解説します。

playbookとは?

Ansibleに実行させることを記述することで、様々な処理を行える。
playbookには冪等性があるため、何回同じファイルを実行しても同じ結果が得られます。

書き方・手順・解説

まず、基本的なフォーマットは以下の通りです。
Playbookではまず「hosts:」で対象とするホストもしくはグループを指定し、そのホストに対して実行する「タスク」や「ハンドラ」を続けて記述していく。
※使えるモジュールはこちらから

playbook.yml

- hosts: <対象とするホスト/グループ>
  var:
    <変数名1>: <値>
    <変数名2>: <値>
      :
      :
  remote_user: <処理を実行するユーザー名>
  sudo: yes
  tasks:
    <タスク1>
    <タスク2>
      :
      :
  handlers:
    <ハンドラ1>
    <ハンドラ2>
      :
      :

タスクについて

Ansibleでは、そのホストに対する処理を「タスク」という単位で管理する。通常、1つのタスクには以下のように1つのモジュールを指定する。
※タスクを複数記述した場合、それらは記述された順番に実行される。


- name: <タスクの説明>
    <モジュール名>: <実行時に与えるパラメータ>

# 「yum」モジュールを使って「httpd」パッケージをインストールする
- name: install httpd
    yum: name=httpd state=present

# 「command」モジュールを使えば任意のコマンドを実行
- name: disable selinux
    command: /sbin/setenforce 0

ハンドラ

「ハンドラ」は特定のタスクの実行後、あらかじめ指定しておいた処理を実行するための仕組みだ。該当のタスクで「notify」項目を設定することで、そのタスクの実行後にnotify項目で指定したハンドラが実行される。タスクと同様、1つのハンドラには1つのモジュールを指定する。


- name: <ハンドラの説明>
    <モジュール名>: <実行時に与えるパラメータ>

# 「template」モジュールを使ってApache HTTP Server(httpd)の設定ファイルを作成するタスクと、その設定の変更後にhttpdを再起動する
tasks:
  - name: install WordPress configuration file
    template: src=wordpress.conf dest=/etc/httpd/conf.d/wordpress.conf
    notify:
      - restart httpd
handlers:
  - name: restart httpd
    service: name=httpd state=restarted

playbookの実行は以下のコマンドを実行する。


$ ansible-playbook <実行したいPlaybookファイル>

参考

エージェントレスでシンプルな構成管理ツール「Ansible」入門

Ansible を利用したシステム構成情報の自動取得

Ansibleを効果的に使うのに欠かせないPlaybookの基本的な書き方まとめ(1/2)

Ansibleを効果的に使うのに欠かせないPlaybookの基本的な書き方まとめ(2/2)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2