プレイブックの実行
プレイブックの準備が出来たら実際に実行してみます。
事前確認
ansibleを対象サーバに実行する前に条件があります。
- 対象サーバに実行環境からSSHでログインする事ができる。
- SSHログインしたユーザーはroot、またはroot権限を得ることが出来る。
- yumや名前解決など、対象サーバは外部インターネットと繋がることができる。
これらを再度確認し満たしている必要があります。
疎通確認
定義した対象サーバに繋がるか疎通確認を行います。
引数に読み込むホスト定義ファイル、ホストグループを指定します。
$ ansible -i hosts/production production -m ping -k -c
実行タスク一覧の確認
実行するプレイブック内で定義されているタスク一覧を確認。
$ ansible-playbook -i hosts/production provisioning.yml --list-tasks
構文チェック
実行前に構文エラーが無いか確認。
$ ansible-playbook -i hosts/production provisioning.yml --syntax-check
DryRunを試す事でSSH認証から構文チェックまでを一機にテストもできる。
※実際のインストールや変更は行われないので、プレイブックの書き方によってはエラーになることも。
$ ansible-playbook -i hosts/production provisioning.yml -u ssh_user -C -k
Ansibleの実行
以上の準備が出来たところでプレイブックを実行します。
ここでは対象サーバへはrootでログインは出来ないため、
sudoによりroot権限を得てansibleを実行するようにする。
プレイブック内にsudo実行する事を定義しています。
# vim provisioning.yml
# [Production]
- name: Prod default Settings
hosts: production
become: yes
実行
本番環境に対してsudo(パスワードあり)実行。
$ ansible-playbook -i hosts/production provisioning.yml -u ssh_user -s --ask-sudo-pass -k
上記で実行するとsshパスワード、sudoパスワード両方聞かれて実行されるようになります。
ssh鍵を利用する場合は下記のように
$ ansible-playbook -i hosts/production provisioning.yml -u ssh_user --private-key=/path/id_rsa -s --ask-sudo-pass -k
以上で手順は終了になります。