Ansible 勉強メモ (CentOS7セットアップ #3)
設定ファイルの内容を Ansible サーバ上で実行する
playbook を実行する前に、構築対象サーバを Ansible の hosts に追加します。
echo "10.210.104.24" >> /etc/ansible/hosts
疎通も確認しておきます。
ansible -m ping 10.210.104.24
では実際に playbook を実行したいと思います。
"ansible-playbook" コマンドに "setup_CentOS7.yaml" を渡すことで、実行できますが
今回、"setup_CentOS7.yaml" の "hosts" 宣言の箇所を、変数 "{{ hosts }}" として記載し
実行時コマンドラインから、対象ホストを渡すようにしました。
以下コマンドを Ansible サーバ上で実行し、構築をスタートします。
ansible-playbook /etc/ansible/roles/setup_CentOS7.yaml --extra-vars="hosts=10.210.104.24"
Ansible が 構築対象サーバへ ssh 接続を繰り返し設定ファイルの内容の操作を順次行う
playbook を実行すると、以下のように設定したタスクが実行されていきます。
PLAY [10.210.104.24] ***********************************************************
TASK [setup] *******************************************************************
ok: [10.210.104.24]
TASK [Change hostname] *********************************************************
ok: [10.210.104.24]
TASK [Change TimeZone to Asia/Tokyo] *******************************************
changed: [10.210.104.24]
...
..
.
PLAY RECAP *********************************************************************
10.210.104.24 : ok=99 changed=87 unreachable=0 failed=0
(長いので以省略)
どうやら無事終了したようです。
おわりに
なんとか動かせたという所までですが、行えることの自由度が高いわりに
bash スクリプトよりは秩序があり、結構いいものではないかと思いました。
コマンドレベルの手順書に落としこめている作業であれば、構築作業でなくとも
人力から置き換えられるのではないでしょうか。
ssh 許可が必要なので、Ansible サーバの配置場所は要検討ですが、
対象の環境に何かをインストールするわけではないので
要件にマッチしなくなれば、使うのをやめれば良いだけなので、気軽に始められそうな気もします。