##この記事を読む前に
前回の記事の続き:
##連携の流れ
連携の設定自体はシンプルです。
・Jenkinsの設定画面でAPIトークンの発行。
・GithubのWebhookの設定欄に先ほど発行したJenkinsの[API_TOKEN],[TOKEN_NAME]や[JENKINSのホスト名]、[ジョブの名前]などをURLとして指定するだけです。
##環境
macOS Big Sur バージョン11.2.2
##参考にしたサイト
(jenkins webhook github 連携 で検索)
より詳しく知りたい方はこちらのサイトを参考にされた方が良いです。
##連携の前に(前回の記事を参考にした方へ)
・Ansibleはcloudformationの後に実行して欲しいので、Ansibleジョブの設定で「他プロジェクトの後にビルド」にcloudformationフォルダを選択
(不安定でも起動でOK)
・Jenkinsのcloudformationビルドへ移動
シェルスクリプトを変更
(同じスタック名でcloudformationは実行できないので、今作ったやつを削除するような処理を追加する)
↑本当は更新処理のが良いらしい。今回は手っ取り早く削除してるだけ。
例)
aws cloudformation delete-stack \
--stack-name jenkins
aws cloudformation wait stack-delete-complete \
--stack-name jenkins
aws cloudformation deploy \
--stack-name jenkins \
--template-file new.yml \
--parameter-overrides $(cat new_dev.cfg) \
--capabilities CAPABILITY_NAMED_IAM
aws cloudformation wait stack-create-complete \
--stack-name jenkins
・保存
##JenkinsとGithubの連携の設定
・再びcloudformationビルドへ
ビルドのパラメータ化をチェック
パラメータの追加からテキストを選ぶ
名前に「payload」と入力。保存。
・Jenkins⇨設定⇨APIトークンの「トークン新規追加」⇨発行されたトークンと名前をメモする⇨Apply、保存
*次の設定で[API_TOKEN], [TOKEN_NAME]としてそれぞれ使います。
・Githubにあるcloudformationのフォルダを選択し「Settings」,「webhooks」「Add webhook」
・(求められたら)パスワード入力
・PayloadURL入力(Webhookの連携先)
書き方
http://[USER_ID]:[API_TOKEN]@[JENKINS_HOST]/job/[JOB_NAME]/[build|buildWithParameters]?token=[TOKEN_NAME]
例)
http://admin:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@jenkins.example.com/job/webhook_job/buildWithParameters?token=hogehoge
実際に設定した例)
http://test:1168c1852c2cfb7fb5ed63105fd49fa5aa@52.194.253.12:8080/job/cloudformation_pf/buildWithParameters?token=jenkins_token
・これで連携成功
Githubのファイルが変更されると、Jenkinsが自動で動いてくれるようになる
CI/CDツールとして本領発揮する
完了