目的
- 前回作った環境で、実際に最小構成のplaybookが動くところまでを確認する
- 基本的な実行パターンと、ログの見方を確認する
環境を作るまで
https://qiita.com/yukihigasi/items/e1da1f95e47c68d34ed7
インベントリファイルをデフォルト設定する
ansibleコマンドを実行する時、-i <インベントリファイル> で指定する必要があるが、設定ファイルに記載し省略することができる
ansible.cfgに、[defaults]項目を作り
playbookの作成から実行までの手順
playbook
- 実際に実行する内容を定義します
playbook.yml
---
- hosts: web
sudo: yes
tasks:
- name: add a new user
user: name=test1
- hosts
- 対象を指定します。今回は、インベントリファイルに定義したwebというホスト達を対象にしています
- all という指定をして、インベントリファイルに記載のあるホスト全体をターゲットにすることもできる
- まず全ノードに対する操作を定義し
- そのあと個別の設定を適用する、という共通化ができる
例
--- <yamlであることを示すため必要
- hosts: all < 必須、対象を定義する
sudo: yes <権限が必要な場合設定
tasks:
- name: add a new user <ここは任意の名前でOK、ログを見てタスク名がわかるように
user: name=test1
- hosts: web
sudo: yes
tasks:
- name: install apach
(その他操作)
- hosts: db
sudo: yes
tasks:
- name: install mysql
(その他操作)
実行結果の見方
-
チェックの実行
- ansible-playbook playbook.yml --syntax-check playbook の文法をチェックする
- ansible-playbook playbook.yml --list-task playbook のタスク一覧を表示
- ansible-playbook playbook.yml --check 動作結果を確認(下例)実際には実行せず、想定結果を出力する
playbookコマンド
https://github.com/yteraoka/ansible-tutorial/wiki/ansible-playbook%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
PLAY [web] *****************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]
TASK [add user] ************************************************************************************************************************
changed: [192.168.10.11]
PLAY RECAP *****************************************************************************************************************************
192.168.10.11 : ok=2 changed=1 unreachable=0 failed=0
- 実行
- ansible-playbook playbook.yml を実行
PLAY [web] *****************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]
TASK [add user] ************************************************************************************************************************
changed: [192.168.10.11]
PLAY RECAP *****************************************************************************************************************************
192.168.10.11 : ok=2 changed=1 unreachable=0 failed=0
- 冪等性を確認
- 同じプレイブックをもう一度実行
PLAY [web] *****************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]
TASK [add user] ************************************************************************************************************************
ok: [192.168.10.11]
PLAY RECAP *****************************************************************************************************************************
192.168.10.11 : ok=2 changed=0 unreachable=0 failed=0
- changedの項目が0になっている。同じであるため変更されていないということ
公式ドキュメント
- ドキュメント User Guide http://docs.ansible.com/ansible/latest/user_guide/index.html
- ここまでplaybookを実際に動かすまで。
- 引き続き、よく使いそうな操作等をピックアップし、加筆予定。。。
まとめ ansibleを動作させるまで
どこでも
┣ansible.cfg (作る)
┣hosts (作る:動作に必須のインベントリファイル)
┣playbook.yml
└roles/ (作成される)
ansible.cfg
[defaults]
hostfile = ./hosts
hosts
[web]
192.168.10.11
playbook.yml
---
- hosts: web
sudo: yes
tasks:
- name: add user
user: name=test1
~/.ssh/ssh
HOST web
HostName 192.168.10.11
参考
Ansible Tutorial
http://yteraoka.github.io/ansible-tutorial/
Ansibleの使い方
https://qiita.com/hana_shin/items/657a5cff495244465482