SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Copyright Drecom Co., Ltd. All Rights Reserved.
sue445
2016/08/10 第9回Jenkins勉強会
Jenkinsを使った複数
クラウドへのインフラ
CI
Copyright Drecom Co., Ltd. All Rights Reserved.
自己紹介
● Suéyoshi GO a.k.a sue445
○ トレーナーレベル 21
● 株式会社ドリコム所属
○ 社内ライブラリを中心に、サーバサイドをアプリからインフラまで浅く広
く
● Jenkins関連で作ったもの
○ jenkins-backup-script
https://github.com/sue445/jenkins-backup-script
○ Jenkinsプラグインのバージョン埋め込みバッジをホスティングするサ
イト http://sebastian-badge.info/
○ 他プラグインいろいろ
● 「ドリコムのプリキュアの人」として社内外で有名
Copyright Drecom Co., Ltd. All Rights Reserved.
今期の嫁:はーちゃん
Copyright Drecom Co., Ltd. All Rights Reserved.
本妻:キュアピース
Copyright Drecom Co., Ltd. All Rights Reserved.
Agenda
● 前置き
● インフラCIとは
● 弊社のインフラCIでやってること
● インフラCIの全体像
● 使ってるツールの紹介
● ジョブ構成
● 最後に
● 【おまけ】Jenkins運用
Copyright Drecom Co., Ltd. All Rights Reserved.
前置き
● 今回は尺の関係でだいぶ説明を端折ります
● Jenkinsの構成や使い方に絞って書きます
Copyright Drecom Co., Ltd. All Rights Reserved.
インフラCIとは?
● インフラ環境をCIすること
○ よくある例)PullRequestで検証環境にプロビジョニングを
実行し、問題なければPullRequestをマージ、自動的に本
番環境にも同じプロビジョニングが実行される
● 詳しい資料
○ インフラの継続的デリバリー - naoyaのはてなダイア
リー
http://d.hatena.ne.jp/naoya/20140821/1408577976
○ インフラ系技術の流れ - Gosuke
Miyashita
http://mizzy.org/blog/2013/10/29/1/
● 弊社のケースは若干違う(後述)
Copyright Drecom Co., Ltd. All Rights Reserved.
弊社のインフラCIでやってること
インフラJenkinsの主なジョブは下記の2つです
● PullRequestやmasterブランチをAWSなどにプロビジョニング
を実行(開発ビルド)
○ 自動実行
● masterブランチをAWSなどにプロビジョニングを実行し、イ
メージの作成(イメージビルド)
○ インフラチームによる手動実行
Copyright Drecom Co., Ltd. All Rights Reserved.
インフラCIの全体像(開発ビルド)
社内Jenkinsサーバ
ソースをclone
JenkinsがVagrantで
AWSなどにインスタン
スを立てて、itamaeのレ
シピとServerspec実行
Copyright Drecom Co., Ltd. All Rights Reserved.
インフラCIの全体像(イメージビルド)
ソースをclone
packerでitamaeとServerspecを実行
して、問題なければイメージ( AMIや
テンプレート)を作成する
社内Jenkinsサーバ
AMI
テンプレート
Copyright Drecom Co., Ltd. All Rights Reserved.
使っているツールの紹介
● itamae
○ http://itamae.kitchen/
○ クックパッドの中の人が作ったプロビジョニングツール
○ Chefの軽量版
● Serverspec
○ http://serverspec.org/
○ RSpec(Rubyのテスティングフレームワーク)をベースにし
た、インフラ構成をテストするためのツール
○ itamaeで実行したプロビジョニングが本当に設定されてる
かどうかの検証をしている
Copyright Drecom Co., Ltd. All Rights Reserved.
使っているツールの紹介
● Vagrant
○ https://www.vagrantup.com/
○ HashiCorp社が作った仮想環境の構築ツール
○ VirtualBoxやAWSなどを同一インターフェースで扱える
○ プラグイン導入することでいろんな環境で使える
● Packer
○ https://www.packer.io/
○ HachiCorp社が作った、複数プラットフォームでイメージを
作成するツール
○ プラグイン導入することでいろんな環境で使える
Copyright Drecom Co., Ltd. All Rights Reserved.
使っているツールの紹介
● Vagrantプラグイン
○ https://github.com/schubergphilis/vagrant-cloudstack
○ https://github.com/KariusDx/vagrant-aws (スポットインス
タンス対応のfork版)
● IDCFがcloudstackのAPIに対応してるのでvagrantプラグイン
もそのまま使えた
● どちらも社内で使うには若干機能足りてなかったり、バグが
あったのでPR投げた
○ vagrant-cloudstackはmasterに取り込まれたが現時点で
はまだリリースされてない
○ vagrant-awsはPR放置されてる(´・ω・`)
Copyright Drecom Co., Ltd. All Rights Reserved.
開発ビルド用のジョブ
● マルチ構成プロジェクトにして、1つのジョブで同時に複数ビル
ドが実行できるようにしてる
● pipeline化したいけど、複数のジョブのコンソールログが1ヶ所
になって混ざってしまうので移行はしてない
Copyright Drecom Co., Ltd. All Rights Reserved.
開発ビルド用のジョブ
縦の軸はどのクラウドに対してプロビジョニングをするかどうか
● 対応するVagrantプラグインをインストールして
● vagrant up --provider=$PROVIDER みたいな感じで実行
$
P
R
O
V
I
D
E
R
Copyright Drecom Co., Ltd. All Rights Reserved.
開発ビルド用のジョブ
横の軸は使用するnodeファイル(設定ファイル)
● リポジトリにコミットしてるのはdefault.yml(role全無し)だけだ
が、ビルド時にrolesを全部付与したyml(role_all.yml)を生成
してビルドを実行することにより、role全有り、全無しを両方テ
ストしてる
$NODE
Copyright Drecom Co., Ltd. All Rights Reserved.
roleについて
● packageは全部インストールするが、role(web, db, job,
cacheなどのサーバの役割)に応じてserviceの起動を制御し
ている
○ 例)dbサーバでもnginxはインストールするがroleがweb以
外だとserviceは起動しない
○ packageを全部入れてるのはオートスケーリングで起動す
る時に1秒でも起動時間を早めたいため
● roleが変わると実行されるレシピと必要なテストも変わるので、
roll全有り、全無し両方実行することにより最低でもC0カバレッ
ジ 100%は担保
Copyright Drecom Co., Ltd. All Rights Reserved.
イメージビルド用のジョブ
Copyright Drecom Co., Ltd. All Rights Reserved.
イメージビルド用のジョブ
● RUN_FLAG
● masterブランチからのwebhookを受けた時に実行されな
いようにするためのフラグ
● チェックを入れて手動実行しないとイメージが作られないよ
うにしてる(他に良いやり方あったら知りたい。。。)
Copyright Drecom Co., Ltd. All Rights Reserved.
イメージビルド用のジョブ
● ACCOUNT
● 弊社だとサービス単位(費用が発生する請求単位)で
AWSやIDCFのアカウントが複数分かれているので、作成
先のアカウントを選択できるようにしてる
● API実行のためのトークンが
$JENKINS_HOME/accounts/ に保存されていて、アカウ
ントファイル(プルダウンの名前)をスクリプト内で読み込ん
でいる
Copyright Drecom Co., Ltd. All Rights Reserved.
イメージビルド用のジョブ
● パラメータが多いけど、Rebuilder Pluginで一度使ったパラ
メータを使いまわせるようにしてるので2回目以降はそんなに
大変ではない
○ https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Pl
ugin
● イメージ作成に成功したらgitのtagを作り、かつイメージにも
tagと同じ名前をつけることにより、イメージからどの時点の
ソースコードを元にビルドしたかが特定できるようにしてる
Copyright Drecom Co., Ltd. All Rights Reserved.
イメージビルド用のジョブ
git tags
AMI
Copyright Drecom Co., Ltd. All Rights Reserved.
最後に
● 複数のクラウドに対するインフラCIの事例はあまり見ないの
で、参考になったら幸いです
Copyright Drecom Co., Ltd. All Rights Reserved.
【おまけ】Jenkins運用
● Jenkinsサーバ構築自体もitamaeで行ってる
○ コマンド1つで必要なミドル一式(jenkins, nginx, vagrant, packer,
virtualbox辺り)全部入るようになってる
● webから設定する部分(インストールしてるプラグインとか)は
全部社内confluenceにまとめた
● バックアップ
○ 1日1回 https://github.com/sue445/jenkins-backup-script を定期実
行して設定やプラグイン一式をtarに保存
○ tarを物理的に別の所にあるバックアップサーバに転送
○ Jenkinsマシンがいつ死んでもすぐに復旧できるようになってる

Mais conteúdo relacionado

Mais de Go Sueyoshi (a.k.a sue445)

社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokaiGo Sueyoshi (a.k.a sue445)
 
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbGo Sueyoshi (a.k.a sue445)
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartupGo Sueyoshi (a.k.a sue445)
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbitamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbGo Sueyoshi (a.k.a sue445)
 
サザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyサザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyGo Sueyoshi (a.k.a sue445)
 
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Go Sueyoshi (a.k.a sue445)
 
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGo Sueyoshi (a.k.a sue445)
 
Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Go Sueyoshi (a.k.a sue445)
 
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaGo Sueyoshi (a.k.a sue445)
 
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackGo Sueyoshi (a.k.a sue445)
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムGo Sueyoshi (a.k.a sue445)
 
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbGo Sueyoshi (a.k.a sue445)
 

Mais de Go Sueyoshi (a.k.a sue445) (20)

社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
 
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarb
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbitamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
 
社内テストファースト勉強会
社内テストファースト勉強会社内テストファースト勉強会
社内テストファースト勉強会
 
サザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyサザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_history
 
プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08
 
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01
 
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarb
 
Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発
 
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHiroba
 
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarb
 
JavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamuraiJavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamurai
 
First step of Rails Contribute‎ #shibuyarb
First step of Rails Contribute‎ #shibuyarbFirst step of Rails Contribute‎ #shibuyarb
First step of Rails Contribute‎ #shibuyarb
 
勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja
 
RSpec Performance Turning
RSpec Performance TurningRSpec Performance Turning
RSpec Performance Turning
 
アニメ実況実践入門
アニメ実況実践入門アニメ実況実践入門
アニメ実況実践入門
 

Jenkinsを使った複数クラウドへのインフラCI #jenkinsstudy

  • 1. Copyright Drecom Co., Ltd. All Rights Reserved. sue445 2016/08/10 第9回Jenkins勉強会 Jenkinsを使った複数 クラウドへのインフラ CI
  • 2. Copyright Drecom Co., Ltd. All Rights Reserved. 自己紹介 ● Suéyoshi GO a.k.a sue445 ○ トレーナーレベル 21 ● 株式会社ドリコム所属 ○ 社内ライブラリを中心に、サーバサイドをアプリからインフラまで浅く広 く ● Jenkins関連で作ったもの ○ jenkins-backup-script https://github.com/sue445/jenkins-backup-script ○ Jenkinsプラグインのバージョン埋め込みバッジをホスティングするサ イト http://sebastian-badge.info/ ○ 他プラグインいろいろ ● 「ドリコムのプリキュアの人」として社内外で有名
  • 3. Copyright Drecom Co., Ltd. All Rights Reserved. 今期の嫁:はーちゃん
  • 4. Copyright Drecom Co., Ltd. All Rights Reserved. 本妻:キュアピース
  • 5. Copyright Drecom Co., Ltd. All Rights Reserved. Agenda ● 前置き ● インフラCIとは ● 弊社のインフラCIでやってること ● インフラCIの全体像 ● 使ってるツールの紹介 ● ジョブ構成 ● 最後に ● 【おまけ】Jenkins運用
  • 6. Copyright Drecom Co., Ltd. All Rights Reserved. 前置き ● 今回は尺の関係でだいぶ説明を端折ります ● Jenkinsの構成や使い方に絞って書きます
  • 7. Copyright Drecom Co., Ltd. All Rights Reserved. インフラCIとは? ● インフラ環境をCIすること ○ よくある例)PullRequestで検証環境にプロビジョニングを 実行し、問題なければPullRequestをマージ、自動的に本 番環境にも同じプロビジョニングが実行される ● 詳しい資料 ○ インフラの継続的デリバリー - naoyaのはてなダイア リー http://d.hatena.ne.jp/naoya/20140821/1408577976 ○ インフラ系技術の流れ - Gosuke Miyashita http://mizzy.org/blog/2013/10/29/1/ ● 弊社のケースは若干違う(後述)
  • 8. Copyright Drecom Co., Ltd. All Rights Reserved. 弊社のインフラCIでやってること インフラJenkinsの主なジョブは下記の2つです ● PullRequestやmasterブランチをAWSなどにプロビジョニング を実行(開発ビルド) ○ 自動実行 ● masterブランチをAWSなどにプロビジョニングを実行し、イ メージの作成(イメージビルド) ○ インフラチームによる手動実行
  • 9. Copyright Drecom Co., Ltd. All Rights Reserved. インフラCIの全体像(開発ビルド) 社内Jenkinsサーバ ソースをclone JenkinsがVagrantで AWSなどにインスタン スを立てて、itamaeのレ シピとServerspec実行
  • 10. Copyright Drecom Co., Ltd. All Rights Reserved. インフラCIの全体像(イメージビルド) ソースをclone packerでitamaeとServerspecを実行 して、問題なければイメージ( AMIや テンプレート)を作成する 社内Jenkinsサーバ AMI テンプレート
  • 11. Copyright Drecom Co., Ltd. All Rights Reserved. 使っているツールの紹介 ● itamae ○ http://itamae.kitchen/ ○ クックパッドの中の人が作ったプロビジョニングツール ○ Chefの軽量版 ● Serverspec ○ http://serverspec.org/ ○ RSpec(Rubyのテスティングフレームワーク)をベースにし た、インフラ構成をテストするためのツール ○ itamaeで実行したプロビジョニングが本当に設定されてる かどうかの検証をしている
  • 12. Copyright Drecom Co., Ltd. All Rights Reserved. 使っているツールの紹介 ● Vagrant ○ https://www.vagrantup.com/ ○ HashiCorp社が作った仮想環境の構築ツール ○ VirtualBoxやAWSなどを同一インターフェースで扱える ○ プラグイン導入することでいろんな環境で使える ● Packer ○ https://www.packer.io/ ○ HachiCorp社が作った、複数プラットフォームでイメージを 作成するツール ○ プラグイン導入することでいろんな環境で使える
  • 13. Copyright Drecom Co., Ltd. All Rights Reserved. 使っているツールの紹介 ● Vagrantプラグイン ○ https://github.com/schubergphilis/vagrant-cloudstack ○ https://github.com/KariusDx/vagrant-aws (スポットインス タンス対応のfork版) ● IDCFがcloudstackのAPIに対応してるのでvagrantプラグイン もそのまま使えた ● どちらも社内で使うには若干機能足りてなかったり、バグが あったのでPR投げた ○ vagrant-cloudstackはmasterに取り込まれたが現時点で はまだリリースされてない ○ vagrant-awsはPR放置されてる(´・ω・`)
  • 14. Copyright Drecom Co., Ltd. All Rights Reserved. 開発ビルド用のジョブ ● マルチ構成プロジェクトにして、1つのジョブで同時に複数ビル ドが実行できるようにしてる ● pipeline化したいけど、複数のジョブのコンソールログが1ヶ所 になって混ざってしまうので移行はしてない
  • 15. Copyright Drecom Co., Ltd. All Rights Reserved. 開発ビルド用のジョブ 縦の軸はどのクラウドに対してプロビジョニングをするかどうか ● 対応するVagrantプラグインをインストールして ● vagrant up --provider=$PROVIDER みたいな感じで実行 $ P R O V I D E R
  • 16. Copyright Drecom Co., Ltd. All Rights Reserved. 開発ビルド用のジョブ 横の軸は使用するnodeファイル(設定ファイル) ● リポジトリにコミットしてるのはdefault.yml(role全無し)だけだ が、ビルド時にrolesを全部付与したyml(role_all.yml)を生成 してビルドを実行することにより、role全有り、全無しを両方テ ストしてる $NODE
  • 17. Copyright Drecom Co., Ltd. All Rights Reserved. roleについて ● packageは全部インストールするが、role(web, db, job, cacheなどのサーバの役割)に応じてserviceの起動を制御し ている ○ 例)dbサーバでもnginxはインストールするがroleがweb以 外だとserviceは起動しない ○ packageを全部入れてるのはオートスケーリングで起動す る時に1秒でも起動時間を早めたいため ● roleが変わると実行されるレシピと必要なテストも変わるので、 roll全有り、全無し両方実行することにより最低でもC0カバレッ ジ 100%は担保
  • 18. Copyright Drecom Co., Ltd. All Rights Reserved. イメージビルド用のジョブ
  • 19. Copyright Drecom Co., Ltd. All Rights Reserved. イメージビルド用のジョブ ● RUN_FLAG ● masterブランチからのwebhookを受けた時に実行されな いようにするためのフラグ ● チェックを入れて手動実行しないとイメージが作られないよ うにしてる(他に良いやり方あったら知りたい。。。)
  • 20. Copyright Drecom Co., Ltd. All Rights Reserved. イメージビルド用のジョブ ● ACCOUNT ● 弊社だとサービス単位(費用が発生する請求単位)で AWSやIDCFのアカウントが複数分かれているので、作成 先のアカウントを選択できるようにしてる ● API実行のためのトークンが $JENKINS_HOME/accounts/ に保存されていて、アカウ ントファイル(プルダウンの名前)をスクリプト内で読み込ん でいる
  • 21. Copyright Drecom Co., Ltd. All Rights Reserved. イメージビルド用のジョブ ● パラメータが多いけど、Rebuilder Pluginで一度使ったパラ メータを使いまわせるようにしてるので2回目以降はそんなに 大変ではない ○ https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Pl ugin ● イメージ作成に成功したらgitのtagを作り、かつイメージにも tagと同じ名前をつけることにより、イメージからどの時点の ソースコードを元にビルドしたかが特定できるようにしてる
  • 22. Copyright Drecom Co., Ltd. All Rights Reserved. イメージビルド用のジョブ git tags AMI
  • 23. Copyright Drecom Co., Ltd. All Rights Reserved. 最後に ● 複数のクラウドに対するインフラCIの事例はあまり見ないの で、参考になったら幸いです
  • 24. Copyright Drecom Co., Ltd. All Rights Reserved. 【おまけ】Jenkins運用 ● Jenkinsサーバ構築自体もitamaeで行ってる ○ コマンド1つで必要なミドル一式(jenkins, nginx, vagrant, packer, virtualbox辺り)全部入るようになってる ● webから設定する部分(インストールしてるプラグインとか)は 全部社内confluenceにまとめた ● バックアップ ○ 1日1回 https://github.com/sue445/jenkins-backup-script を定期実 行して設定やプラグイン一式をtarに保存 ○ tarを物理的に別の所にあるバックアップサーバに転送 ○ Jenkinsマシンがいつ死んでもすぐに復旧できるようになってる