インストール
# sources.listに追記する === deb http://ftp.jp.debian.org/debian wheezy-backports main contrib non-free === root@hostname:/home/shimizu# aptitude update ... root@hostname:/home/shimizu# aptitude install ansible 以下の新規パッケージがインストールされます: ansible libgmp10{a} libyaml-0-2{a} python-crypto{a} python-httplib2{a} python-jinja2{a} python-markupsafe{a} python-paramiko{a} python-selinux{a} python-yaml{a} ... root@hostname:/home/shimizu# cd /etc/ansible root@hostname:/etc/ansible# cat hosts 49.212.204.46 root@hostname:/etc/ansible# ansible -i hosts all -m ping -u shimizu --ask-pass SSH password: 49.212.204.46 | success >> { "changed": false, "ping": "pong" }
playbookを利用する
root@hostname:/etc/ansible# cat playbook1.yml --- - hosts: all sudo: yes tasks: - name: test ping: root@hostname:/etc/ansible# ansible-playbook playbook1.yml -u shimizu --ask-sudo-pass sudo password: PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [49.212.204.46] TASK: [test] ****************************************************************** ok: [49.212.204.46] PLAY RECAP ******************************************************************** 49.212.204.46 : ok=2 changed=0 unreachable=0 failed=0 ### 各モジュールの説明を確認可能 ### root@hostname:/etc/ansible# ansible-doc copy ... root@hostname:/etc/ansible# cat playbook1.yml --- - hosts: all sudo: yes tasks: - name: copy copy: src=test_ansible.txt dest=/home/shimizu owner=root group=root mode=0644 root@hostname:/etc/ansible# ansible-playbook playbook1.yml -u shimizu --ask-pass --ask-sudo-pass SSH password: sudo password [defaults to SSH password]: PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [49.212.204.46] TASK: [copy] ****************************************************************** changed: [49.212.204.46] PLAY RECAP ******************************************************************** 49.212.204.46 : ok=2 changed=1 unreachable=0 failed=0
copyモジュールについて
冪等性が保証されているため、ファイルの内容が同じ(ハッシュを比較する)であればcopyしない
そして変更があった場合は、上書きcopyされる
以下のようにbackup=yesをつけると
リモートに日付がついたバックアップ(test_ansible.txt.2015-06-01@00:39~)が作成される
root@hostname:/etc/ansible# cat playbook1.yml --- - hosts: all sudo: yes tasks: - name: copy copy: src=test_ansible.txt dest=/home/shimizu owner=root group=root mode=0644 backup=yes
Playbook Roles
playbookに
roles:
– mysql
と記載するとmysql配下が読み込まれる
参考
Ansible の Playbook を使ってみる
→playbook利用にあたり、必要な情報が網羅されていました
http://d.hatena.ne.jp/akishin999/20130815/1376520672
Ansible (7) playbookを書こう<後編>
→rolesを作るときの参考にしたい
http://techblog.clara.jp/2014/07/ansible_no7-playbook/
Ansible 入門
→モジュールやキーについて詳細まで記載されている
http://qiita.com/ArimaRyunosuke/items/1f9d840311584d8160bc
python製の構成管理ソフト ansible を使ってみたのでまとめ
→モジュールの説明が詳しい
http://d.hatena.ne.jp/hogem/20130615/1371306941
rolesについて追加
・main.ymlが自動でincludeされる