Jenkinsジョブの実行

でき上がったジョブを実行します。
補足
ansible-playbookのコマンドは成功するのにJenkinsからの実行でジョブが失敗してしまう場合、「Jenkinsの実行ユーザーで作成したAnsibleのディレクトリが参照できるか?」「Jenkins(Ansible)の実行ユーザーで各サーバーにsshで接続可能か?」などを確認します。
Ansibleの実行時パラメータ
DMMでは、Ansibleを実行する際にインベントリファイルの切り替えをJenkins側でパラメータ化することで、Ansibleの対象環境(production、stagingなど)の切り替えを行っています。
ビルドのパラメータ化
先ほど作成したジョブの設定を開いてビルドパラメータの設定を行います。

ビルドのパラメータ化からinventoryという名称のパラメータを追加します。追加したパラメータは環境変数として参照可能です。
次にシェルスクリプトの項目の固定パラメータを追加したinventory変数が入るように変更します。
cd /usr/local/src/sample_project && ansible-playbook -i ${inventory} test_site.yml

Ansibleの実行
Jenkinsの実行がパラメータ付きビルドに変更され、追加したinventory変数が利用可能になります。

まとめ
DMMではJenkinsを起点にAnsibleの実行管理を行うことで、実行時のパラメータの制御や、Ansibleの実行履歴の管理も行えるようにしています。また、GUIから操作可能にしておくことで、環境変更操作の属人化を極力抑えて、チーム開発を円滑に進める工夫を行っています。
次回は、CapistranoとJenkinsを使ったデプロイフローを扱う予定です。どうぞよろしくお願いします。
