Ansible の始め方メモ
インストールは公式ドキュメントを見て入れます
Installation Guide — Ansible Documentation
Ubuntu 18.04 で試したのでこうでした
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible
バージョンは
$ ansible --version
ansible 2.8.4
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
ssh でつながるサーバーを用意しておきます
ここでは localhost に ssh server を立ち上げてテスト
inventory ファイルを作る
$ vim inventory
[target]
localhost
helloworld の role を作ってみます
$ mkdir -p helloworld/tasks $ vim helloworld/tasks/main.yml
---
- name: Hello World!
debug:
msg: "Hello World!"
ansible コマンドで ssh でつながるか確認
$ ansible all -i inventory -m ping
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
ansible (対象のホストやグループ) -i (インベントリファイル) -m (Ansible module)
となってます
playbook.yml を用意
$ vim playbook.yml
---
- hosts: all
roles:
- helloworld
実行してみます
$ ansible-playbook -i inventory playbook.yml
PLAY [all] ************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ************************************************************************************************************************************************************************************************************************
TASK [helloworld : Hello World!] **************************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": "Hello World!"
}
PLAY RECAP ************************************************************************************************************************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansible コマンドのホスト名の指定が playbook.yml の中でやってます
ディレクトリ構成は
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#id11
を参照