Edited at

Ansible入門

More than 3 years have passed since last update.


gitをansibleで入れるだけの簡単なお仕事です

まずはこちらを最後までやっていただくとansibleのテスト環境が出来上がります


playbookを作成

cd ~/ansible

vi git-playbook.yml


playbookの中身


git-playbook.yml

- hosts: sandbox

sudo: yes
vars:
homedir: /home/vagrant/
tasks:
- name: git is installed
yum: name=git state=installed


実行

gmpを入れろという警告が出ますが今回は問題ないのでそのまま

$ ansible-playbook git-playbook.yml

[WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (ie. yum update gmp).

PLAY [git] *****************************************************************

GATHERING FACTS ***************************************************************
ok: [192.168.66.54]

TASK: [git is installed] ******************************************************
changed: [192.168.66.54]


冪等性の確認

ansibleは冪等性を保つように作られています。冪等性とはある操作を1回行っても複数回行っても結果が同じであることをいう概念です。

もう一度playbookを実行してみる

$ ansible-playbook git-playbook.yml

[WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (ie. yum update gmp).

PLAY [git] *****************************************************************

GATHERING FACTS ***************************************************************
ok: [192.168.66.54]

TASK: [git is installed] ******************************************************
ok: [192.168.66.54]

1回目のplaybook実行時には「changed」と表記されたところが2回目だと「ok」と出たのが確認できたと思います。これはもう既に入っているよという事でタスクは実行されていません。


冪等性が保てない例外

rawモジュールで指定できるtaskは生のコマンドを流すだけなので冪等性は保たれませんので別のモジュールで対応できるところはなるべく冪等性を保てるようにしましょう


参考

日本語のドキュメントがあるので色々やってみたくなったらこちら