「実録!となりのjenkins2.0」 - 第7回大阪 / 第9回(東京)jenkins勉強会...

55
第9回Jenkins勉強会 & 第7回大阪Jenkins勉強会 実録! となりの Ver 2.0

Upload: miura-kazuhito

Post on 06-Jan-2017

9.889 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

第9回Jenkins勉強会 & 第7回大阪Jenkins勉強会

実録!となりの

Ver 2.0

Page 2: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

Part.1

アンタだれ?

Page 3: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

自己紹介

• 通称:みうみう,「なんで来たん?」氏

• Twitter:@kazuhito_m

• Github:kazuhito-m

• 老害度:38歳、独身、意識低い系

• 職業:プログラマ(SIer、ビジネスアプリ属),自動家(オートメータ)

– フリーランス,屋号「みうらさんとこ」

• 好きなもの:自動化,「継続的なんとか」

– CI/CDとか大好物

– 「楽する」ためには「苦労は厭わない」

三浦 一仁(ミウラ カズヒト)

Page 4: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

自己紹介

• 通称:みうみう,「なんで来たん?」氏

• Twitter:@kazuhito_m

• Github:kazuhito-m

• 老害度:38歳、独身、意識低い系

• 職業:プログラマ(SIer、ビジネスアプリ属),自動家(オートメータ)

– フリーランス,屋号「みうらさんとこ」

• 好きなもの:自動化,「継続的なんとか」

– CI/CDとか大好物

– 「楽する」ためには「苦労は厭わない」

三浦 一仁(ミウラ カズヒト)最近は…

「現場のみなさんとともに現場のみなさんの手で

現場とプロダクトを良くしてく」

のお手伝いがしたい

Page 5: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

あれっ?

Page 6: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

自己紹介

• 通称:みうみう,「なんで来たん?」氏

• Twitter:@kazuhito_m

• Github:kazuhito-m

• 老害度:38歳、独身、意識低い系

• 職業:プログラマ(SIer、ビジネスアプリ属),自動家(オートメータ)

– フリーランス,屋号「みうらさんとこ」

• 好きなもの:自動化,「継続的なんとか」

– CI/CDとか大好物

– 「楽する」ためには「苦労は厭わない」

三浦 一仁(ミウラ カズヒト)最近は…

「現場のみなさんとともに現場のみなさんの手で

現場とプロダクトを良くしてく」

のお手伝いがしたい

オレおらんでも成るんじゃね?

Page 7: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

Part.2

ナンデキタン?(本日の目的)

Page 8: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

トツゼンですがアンケートです

Page 9: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

みなさんを知りたい

• みなさんは今日どんな感じですか?

①Jenkinsを今から始める

②Jenkinsは使ってるがJenkins2は触ってない(今回、学びにきた)

③Jenkins2を使ってる

④Jenkins生んだ、あるいは作ってる

Page 10: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

ありがとうございます。

…で、アンタは?

Page 11: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

登壇させて頂いてなんですが…

•不詳みうら、「Jenkins大好き!」は公言しているものの…

Page 12: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

一番下 is オレ

Page 13: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

オレを知ってもらおう

• みなさんは今日どんな感じですか?

①Jenkinsを今から始める

②Jenkinsは使ってるがJenkins2は触ってない(今回、学びにきた)

③Jenkins2を使ってる

④Jenkins生んだ、あるいは作ってる

Page 14: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

なので本日は…

Page 15: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

「こんな感じ」を…

• みなさんは今日どんな感じですか?

①Jenkinsを今から始める

②Jenkinsは使ってるがJenkins2は触ってない(今回、学びにきた)

③Jenkins2を使ってる

④Jenkins生んだ、あるいは作ってる

Page 16: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

「こんな感じ」を…

• みなさんは今日どんな感じですか?

①Jenkinsを今から始める

②Jenkinsは使ってるがJenkins2は触ってない(今回、学びにきた)

③Jenkins2を使ってる

④Jenkins生んだ、あるいは作ってる

オレ式パイプラインをJenkins「1」と「2」で

作るところを観て頂くことで…

みなさま-「となりの人のやり方」オレ-「未だとなりのしばふの2.0」

を見てみましょう!

Page 17: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

ただあくまでも

「オレの知識のみでやる」ので…

「ソレちゃうで!」

あったら後で教えて下さい。

Page 18: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

Part.3

本日やること(かけ足で)

Page 19: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

多分…無茶言うてるな

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

Page 20: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

多分…無茶言うてるな

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

を、

35分でっ!

とか無理なんで動画とか駆使しながら

Page 21: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

Part.4

実Jenkins!

(実技)

Page 22: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔! 4-1.

対象アプリ紹介

対象アプリ紹介

Page 23: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-1.対象アプリ紹介

• ズンドコボタン with DB– http://kazuhito-m.github.io/zundoko-kiyoshi-ts/

–(ちょっと嘘、同機能のサンプルページ)

• 今回使う「すべて」のソースはこちら– https://github.com/exemplary-buildpipeline-projects/jenkins1-2-sample

Page 24: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-1.対象アプリ紹介

DB

ボタン押すたび、JSONで保存命令投げる。(端末ごと)

w

画面初期表示時JSONで以前の状態取得(端末ごと)

Logic

ロジックは、ほぼTypescript(js)で画面側に

サーバ側はSpring-bootでRESTとDBアクセスのなかだちするだけ

The InternetLocal

Page 25: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-1.対象アプリ紹介

DBLogic

The InternetLocal

環境的には… 本番サーバ

zndk.jpn.ph

開発サーバ

zndkdev.jpn.ph

Jenkinsサーバ

jenkins2.jpn.ph

Page 26: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-1.対象アプリ紹介• 予め仕込んであるもの

–Jenkins用サーバ1台、デプロイ用サーバ(開発、本番)の2台を起動済み

•「Amazon Linux」にて構築

• DDNSで名前付け

•全サーバにssh,8080のポート穴あけ

–Jenkinsサーバに以下のパッケージ

• Git,java-1.8.0-openjdk–Jenkinsサーバに「自分->デプロイサーバへ接続の秘密鍵」を/etc/key.pem に配置

–sshコマンドを「確認不要で接続」出来る設定

Page 27: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

4-2.

Jenkinsインストール・設定

Jenkinsインストール・設定

Page 28: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-2.Jenkinsインストール・設定• デモ動画(youtube)

Page 29: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-2.Jenkinsインストール・設定

• インストール–AWS(Amazon Linux)上に本家Jenkinsからrpmにて

•古いのを入れるためあえてrpmをcurl等でDL/Inst

• プラグインインストール–Jenkins-cliでAsCode

• Build Pipeline Plugin• Git Plugin• Clone Workspace SCM Plugin

• ツール設定

–Mavenは「最新をダウンロード」するように

Page 30: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

4-3.軽くパイプライン設計

軽くパイプライン設計

Page 31: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-3.軽くパイプライン設計

テスト ビルド開発環境

っぽいとこにデプロイ

本番にデプロイ

人間の判断前ジョブの

成果物受け継ぎ

前ジョブの成果物

受け継ぎ

GitHubにソース

ソースの変化を検知!

Page 32: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

4-4.Jenkins1で

パイプライン作成Jenkins1で

パイプライン作成

Page 33: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-4.Jenkins1でパイプライン作成• デモ動画(youtube)

Page 34: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-4.Jenkins1でパイプライン作成

• 基本、以下の感じで作る–ジョブを小分けにする

•成果物だけ継ぐ

–「後続ジョブ」としてつなげる

–「Build Pipeline Plugin」でビュー作っておく• (少し前ですが)こことか良くまとまっていい感じ♪

–最期、本番デプロイだけ「人の意思」挟む

•“Build Pipeline Plugin”の”Build other projects (manual step)”を使う

Page 35: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

4-5.Jenkins2へアップグレード

Jenkins2へアップグレード

Page 36: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード• デモ動画(youtube)

Page 37: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード

• このデモでの「アップグレード」方針–RPMをアンインストールして、本家yumリポジトリからインストールし直し

•データの場所は「デフォルト」だから、引きつでいくれる…ハズ

Page 38: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード

• やり方 (以下はすべてrootユーザにて実行)

– RPMをアンインストール

• service jenkins stop• rpm -e jenkins

– Yumリポジトリで「Jenkins本家」を加えインストール

• curl http://pkg.jenkins-ci.org/redhat/jenkins.repo > /etc/yum.repos.d/jenkins.repo

• rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

• yum install -y jenkins• service jenkins start

Page 39: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード

長年使って来た人だけが見ることが出来る

アップデート促し画面(○in10とかとは爪の垢でも煎じて飲m(ry)

Page 40: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード

• 変わる箇所

–「Pipeline」「GitHub Organization」「Multibranch Pipeline」「Folder」などのジョブ種が増える

–「いくつかのプラグインをインストールする」よう促される

–“Jenkinsの管理”画面が整理され、”Global Tool Configuration”など一部画面が独立している

Page 41: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-5.Jenkins2へアップグレード

• 「新規で2.0を立上げた場合」変わる箇所

–一回だけ「サーバ内部からファイルを取ってこい」って言われる

–ログイン必須になる

–「有用プラグイン」は「プリインストールする」よう促される

Page 42: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

対象アプリ紹介

軽くパイプライン設計

Jenkinsインストール・設定

Jenkins1でパイプライン作成

Jenkins2へアップグレード

Jenkins2でパイプライン作成

オレ、ドヤ顔!

4-6.Jenkins2でパイプライン作成 Jenkins2で

パイプライン作成

Page 43: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-6.Jenkins2でパイプライン作成• デモ動画(youtube)

Page 44: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-6.Jenkins2でパイプライン作成• ジョブ種「Pipeline」で、先ほど作ったのと同様のパイプラインを作る!

–元は「Workflow Pluguin」だった機能を2.0で本体に標準装備になったもの

–Groovyライクな「パイプラインを作るためのDSL」を使う

•制限ありGroovyやJavaっぽくは使えない

•正式名称だれか教えて下さい

–ググるの難しい…–個人的には「ジェンキンスクリプト」と呼んでいる

–「パイプラインスクリプト」(Pipeline Script)という呼称

Page 45: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-6.Jenkins2でパイプライン作成

• 「今までPluginでやってたことをDSLで書けるかどうか」確認

–こちらの一覧が使えます

•https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

–「書き方」は各Pluginのサイトで

Page 46: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

One more thing...(この先に進むなら?)

Page 47: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

5.この先に進むなら?

1.gitの複数ブランチ対応

–2.0の新ジョブ種「Multibranch Pipeline」を使う

•リポジトリ一つまるごと監視する

–全リモートブランチのpushに反応

–直下に置いた”Jenkinsfile”を実行

2.デプロイ環境をgitブランチごとに生成

–ここは自力で作る

–仮想OS/コンテナ技術/Cloudなどを用い「開発環境のデプロイ先」を都度生成

• JenkinsはDockerを使う手段が豊富

Page 48: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

Part.6

個人的感想

Page 49: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

.個人的感想

• 2.0の「Pipeline」ジョブ&DSL、いいですね!–AsCodeできて「そのプロダクト側に紐づく」のが超好み•「ジョブ」がAsCode&VCSで管理したいってずっと思ってた。

–みなさん、使ってくれるとうれしいです!•日本語情報的な意味で

Page 50: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

実録!となりの

Jenkins2.0Jenkins2.0リリースリリースおめでとうございます!おめでとうございます!

第9回Jenkins勉強会 & 第7回大阪Jenkins勉強会

Page 51: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

ボツ稿(実際の発表は前のページまで)

ここからは本編外

Page 52: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

トラブル発生!

Page 53: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

4-4.Jenkins2へアップグレード

• そのままじゃ「ちゃんとした2.0に成らなかった」箇所

–※2016/06/18現在

–「いくつかのプラグインをインストールする」するとき「依存性の問題」でインストールがこけた

•Pipline plugin,GitHub Organization–エラーを読む限りでは「structs1.1」というプラグインが足りないぽいので、入れた

•画面上にもないので、サイトからhpiファイルをダウンロードしてインストール

–場合によっては「Plugin全部アップデート」したほうが良い(かも?)

• 1系のインストールからやり直したら、上手く行った

Page 54: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

5-1.gitの複数ブランチ対応

Page 55: 「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy

5-1.gitの複数ブランチ対応• デモ動画(youtube)