9facebook4twittertはてぶ5はじめに今回紹介しているテンプレートは、Jenkinsのパイプラインジョブであり、Azure上でVMイメージを作成し、VMをデプロイするテンプレートです。このテンプレートを作成して公開に踏み切った切っ掛けは、あるプロジェクト体験からです。Jenkinsを司令塔とするCI/CDの導入に筆者も当事者として参加していたわけですが、正直にかなり心配でした。時間の経過とともに加速が付き、最終的には見事に運用にまで運ばれました。大成功と言ってもいい結果でした。成功の要因は、いくつか挙げる事ができますが、筆者が最も注目したのは、ちゃんと構成され、正確に動いているテンプレートの存在です。Jenkinsの導入は敷居が高いというネガティブな評判が付きまとっているなか、「100ページの説明よりも、1本の実戦的なテンプレートのほうが勝る」と言ったところです。その後、これは素晴らしいという気持ちで基本的な構成をAzure版として再現してみました。それがこのテンプレートです。色んなものが凝縮されています。拡張すれば、そのまま実務に利用できるでしょう。このテンプレート利用においては、特に制限などありません。技術的な中身については、クリエーションライン社及び著者が保証するものではありません。自己責任の下でご利用お願いします。下の図は、公開しているテンプレートの基本構成です。Packer(Ansible+Serverspec)でVMイメージを作成し、TerraformでAzureにデプロイする構成になっています。実行結果は、#slackに通知されます。ここで、それぞれの実行環境の実装やジョブの管理など、司令塔の役割を果たしているのがJenkinsです。今回のテンプレートは、次のように2つのフェーズに分けて運用する想定で構成しています。フェーズ1:VMイメージ作成Packer(Ansible+Serverspec)でコードを書きます。Jenkinsfileを作成します。コードをGitlabにPUSHします。JenkisにGitlabのURL及び認証情報などを含むジョブを登録します。JenkinsのGUIでジョブを実行すると、Gitlabから一式のファイルをJenkinsサーバにウンロードして実行します。Azure上で一時的なVMを起動し、プロビジョニングを行います。プロビジョニングが完了すると、Azure上にVMイメージとして登録します。一時的なVMを含むすべての作業環境を削除します。作業完了ステータスを#slackに通知します。Jenkinsジョブの裏側では、次のように動いています。フェーズ2:VMデプロイフェーズ1に作られたVMイメージのURIをTerraformコードに反映します。Jenkinsfileを作成します。コードをGitlabにPUSHします。JenkisにGitlabのURL及び認証情報などを含むジョブを登録します。該当のVMが存在する場合は、ターミネートします。JenkinsのGUIでジョブを実行すると、Gitlabから一式のファイルをJenkinsサーバにダウンロードして実行します。Azure上にVMを起動します。作業完了ステータスを#slackに通知します。Jenkinsジョブの裏側では、次のように動いています。今回のテンプレートは、一度、Jenkinsジョブを動かすまで頑張れば、用途に応じてコード追加し、簡単に拡張できます。次は、コンテナーを起動する場合のイメージです。ソースコードのチェック次は、プログラムのソースコードをチェックしたい場合のイメージです。スケジュールジョブの運用バックアップなどスケジュールジョブ実行も簡単に追加できます。商用版のリリースが近づいてくると、VMイメージにモニタリング構成を仕掛けてVMを置き換えます。究極的には、アプリケーションとインフラを区別することなく、すべてコード化して管理します。Jenkinsテンプレートのソースコード及び利用方法Jenkinsテンプレートのソースコードは、Gitlabに公開しています。JenkinsテンプレートのソースコードJenkinsテンプレートの利用方法は、スライドシェアに公開しています。李AuthorleefacebookTwitterデータベースが大好きなサーバサイドのエンジニア。Neo4j、MongoDBのテクニカルサポート、IoTビックデータ処理基盤のアーキテクトとして活動しています。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。#Csharp今年のRSGTも最高だったという話。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。