こんばんは。個人のための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実行までの簡単な例の説明となる。