インストール
# 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される