SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

DMM.comの事例から学ぶリリースフロー自動化ガイド

JenkinsとAnsibleによるサーバー構築の自動化

DMM.comの事例から学ぶリリースフロー自動化ガイド 第3回

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を使ったデプロイフローを扱う予定です。どうぞよろしくお願いします。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
DMM.comの事例から学ぶリリースフロー自動化ガイド連載記事一覧

もっと読む

この記事の著者

田中 裕一(株式会社DMM.comラボ)(タナカ ユウイチ)

DMM.comラボにおいて、検索システムの刷新、レコメンドエンジンの新規開発など、DMM.comの重要な機能を担うエンジニアとして従事。AeroSpikeを社内で採用し、日本人初のコントリビューターとしても活躍。サーバーサイド、フロントエンド、ミドルウェア、インフラと幅広く担当するDMM.comラボ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9059 2015/11/11 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー