ansible事始め

こんばんは。個人のためのansibleやり始めるすごく簡単な備忘録。環境はCentOS 7。

Install

公式のドキュメントを追いかける。ググったらわかりやすいのがたくさんあるのでそちらもおすすめ。

Control Node

まずはControl Nodeを用意。Control NodeはPython 2.7か3.5以上が必要なので入っていなければyumからInstall。

次にAnsibleをInstall。AnsibleはEPELからInstallするのでEPELリポジトリが入っていない場合は入れておくこと。

# EPELが入っていない場合はこれを叩いておく。
sudo yum install -y epel-repository

# AnsibleのInstall。
sudo yum install -y ansible

これでansibleのInstallは終わり。

Managed Node

Ansibleに管理される(操作される)側。AnsibleをInstallする必要はないけれどPython 2.6以上または3.5以上が必要とのことなので入ってなければ入れておくこと。今回の例では以下のようなManaged Nodeを2つ用意した。

  • Managed Node 01:
    • IP Addr.: 192.168.10.10
    • User: ansibleuser
  • Managed Node 02:
    • IP Addr.: 192.168.10.11
    • User: ansibleuser

Ansibleの環境設定

AnsibleをInstallしたControl NodeにはAnsibleの設定ファイルが/etc/ansibleディレクトリ以下に作成されている。今回の例に使用する最低限の設定を書いておく。

  • /etc/ansible/ansible.cfg
    • inventoryのコメントアウトを解除
  • /etc/ansible/hosts (ansible.cfgのinventoryで指定しているファイル)
    • 以下の内容を記載する。
[target]
192.168.10.10
192.168.10.11

Inventoryに関する説明はこの記事では行わない。

Ansibleを動かす

ansibleで動かす

簡単な例としてManged Nodeに対してpingモジュールを実行する。

$ ansible target -m ping -u ansibleuser -k
SSH password:
192.168.10.10 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
192.168.10.11 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

ansible実行に関するパラメータがわからない場合はman ansible等々で調べること。

playbookで動かす

pingモジュールを動かすだけの簡単なplaybookを作成する。以下の内容を適当なyamlファイルで作成する。今回の例ではsample.ymlとする。これがplaybookとなる。

- hosts: target
  remote_user: ansibleuser

  tasks:
    - name: ping task
      ping:

playbookの実行はansible-playbookコマンドで実行する。

$ ansible-playbook sample.yml -k
SSH password:

PLAY [managed] ***********************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************
ok: [192.168.10.11]
ok: [192.168.10.10]

TASK [ping] **************************************************************************************************************************
ok: [192.168.10.11]
ok: [192.168.10.10]

PLAY RECAP ***************************************************************************************************************************
192.168.10.10              : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.10.11              : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

以上がAnsibleのインストールからplaybook実行までの簡単な例の説明となる。