はじめに
こんにちはSREエンジニアのMakiです。
この記事ではJenkinsのフリースタイルジョブの使い方ついて紹介します。
これからJenkinsを学びたいと考えている方におすすめの内容となっています。
Jenkins フリースタイルジョブを使ってみよう
シナリオ
猫の画像を取得して保存し、ジョブの実行結果をSlackに通知する
1. フリースタイルジョブを作成する
Enter an item name
にジョブ名を入力して ジョブを作成します。
ジョブ名: kitten_image_generator
設定の入力
説明
ジョブの説明分を入力しましょう。
Throttle Concurrent Builds
ジョブの同時実行数を制御できます。ワークスペースのファイルを編集したりする処理が入る場合は同実行可能にしていると処理がカニバることが考えられるので、同時実行数は 1
に制御しておきましょう。それ以外の場合は処理の負荷に応じて制限するようにしましょう。
例えばコンパイルを複数同時に実行したい場合もあるかもしれませんが、マシンのスペックが十分でない場合はJenkinsが故障する恐れもあるので適切にコントロールすることが大切です。
ビルドのパラメータ化
シェルやWindows バッチを実行するときに環境変数としてパラメータを設定することができます。
今回はダウンロードした猫の画像を保存するファイル名を文字列のパラメータとして設定してみます。
名前: KITTEN_IMAGE_FILE_NAME
デフォルト値: kitten-image.jpg
説明: 保存する猫の画像のファイル名
もちろんパラメータを設定しないで運用することも可能です。
古いビルドの破棄
過去のビルド結果は一定期間保持した後破棄し、ビルド結果をローテーションするようにしましょう。
Jenkinsはジョブの実行結果をファイルとして管理しています。
ビルド結果をローテーションしないまま放置するとJenkinsのディスク容量を圧迫する要因となりJenkinsの運用に支障をきたすことがあります。
具体的にはディスク容量がなくなるとジョブが実行できなくなります。
もっとひどくなると画面が開かなくなります。
このようにならないためにもビルド結果のローテーションは極力設定するようにしましょう。
ローテーションは 日数
または ビルドの数
の組み合わせで設定が可能です。
高度な設定を開くと 成果物の保存日数
や 、 成果物の保存最大ビルド数
といった単位でも設定可能です。
今回はビルドの保存最大数を 5
として設定してみます。
実行するノードを制限
Jenkinsのジョブを実行するサーバーをコントロールすることができます。
スレーブが設定されている場合は極力 スレーブに処理を任せるようにしましょう。
マスターはジョブの統合管理をすることが主な役割で、ジョブの実行はスレーブに任せることがJenkinsの基本プラクティスです。
ビルド
ビルド手順の追加
から行いたい処理を設定します。
今回は一番ベーシックな シェルの実行
をやってみます。
サーバーが Windowsの場合は Windows バッチコマンドの実行
を選択することになります。
シェルスクリプト
curl --fail -o ${KITTEN_IMAGE_FILE_NAME} http://www.randomkittengenerator.com/cats/rotator.php
-
ビルド後の処理
-
成果物を保存
保存するファイル名を入力します。
今回はパラメータに保存するファイル名を定義しているので、${KITTEN_IMAGE_FILE_NAME}
と記入します。警告が出ますが、Jenkinsがこの時点だとファイル名を認識できていないだけなので無視してOKです。
- Slack Notifications
-
成果物を保存
ジョブの実行結果をSlackに通知して結果を確認できるようにしてみます。
今回は 成功 と 失敗 の 両方通知してみます。
Slack の通知先は #topic_step_up_jenkins
に設定してみます。
- ワークスペースを削除
Jenkinsのワークスペースはジョブで共通です。作業が終わったら次のジョブ実行時に影響が出ないようにワークスペースはきれいにしておきましょう。
保存
ここまで設定が終わったら 保存
または Apply
を押してください。
- 保存 : 設定を保存して閉じる。
- Apply : 設定の保存のみ
2. フリースタイルジョブを実行してみる
-
ジョブを選択
-
パラメータ付きビルドを選択
- ビルド実行
パラメータをデフォルトから編集する場合はこの画面で編集します。
-
ビルド履歴にキューが入る
ジョブを実行するとビルド履歴にジョブが入ります。もしJenkinsの実行サーバーが込み合っている場合、もしくは同時実行数の制限を超えている場合は実行待ちとなります。
-
Slackに通知が飛ぶ
実行結果がSlackに通知されます。
Open
がジョブへのリンクとなっておりJenkinsの実行結果に飛ぶことができます。
-
ジョブの実行結果確認
Open
から開いた先はブルーオーシャンの画面またはクラシックUIのどちらかにジャンプします。
昔から使っているJenkinsだとクラシックの画面に移動すると思います。-
ブルーオーシャン
→
からクラシックUIに戻れる。
-
クラシックUI
-
ブルーオーシャン
-
成果物の確認
kitten-image.jpg
と書かれたファイルが成果物として保存されいるのでクリックしてみましょう。
無事に猫の画像を取得することができました。
おまけ
http://www.randomkittengenerator.com/
今回猫の画像生成に利用したのはこちらのサイトです。
こちらにアクセスすると子猫の画像がランダムで表示されます。
関連ページ
- Jenkinsって何ができるの?
https://tielec.blog/index.php/sre/ci-cd/what-is-jenkins/
おすすめ書籍
[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
初めてJenkinsを学ぶ方におすすめです。
Jenkins
Jenkinsでできることについてもう少し詳しく学びたい方におすすめです。
コメント