CI/CD環境を構築
本連載は、「CI/CDを実践してみたい」という超初心者向けの内容となっています
enterpriseレベルやproductionレベルの導入に際して、「CI/CDとは?」という感覚をつかむものとなれば幸いです。
利用するツール等はこちらで選定していますので、別のツールを利用する場合は、適宜お調べください。
大まかな内容としては、以下のようなフローとなります
- 環境構築
- CI/CDツールの構築<-今回はここを説明
- 開発プロジェクトの準備
- GitHubにプロジェクトデータを登録
- Jenkins Pluginのインストール
- 手動ビルド
- CI/CDツールとその他ツールの併用例
- VCSとの協調
- テストツールとの協調
- インスペクションツールとの協調
- pipelineの実現
概要
- Jenkinsコンテナの実行
- Jenkins初期設定
- gmailを用いてビルド結果を自動通知
- JDK/Ant/Mavenの自動インストール
CI/CDツールの構築
CI/CDツールには、以下のようなものがある
- Jenkins
- Drone
- CircleCI
- AWS CodeBuild
- Tekton
今回はJenkins
を導入する
Jenkinsコンテナの実行
Jenkinsの公式を参考にJenkinsコンテナを実行し、初期設定を行う
最初にnetworkおよびvolumeの設定を行う
$ docker network create jenkins
$ docker volume create jenkins-docker-certs //Dockerデーモンに接続するために必要なDockerクライアントのTLS証明書を共有
$ docker volume create jenkins-data //データ永続化に利用
$ docker network ls //新規作成されたbridge network及びdefaultの3つのnetworkがある
$ docker volume ls
続いて、jenkinsコンテナとしてjenkinsci/blueocean
を実行
$ docker container run --name jenkins-blueocean --rm --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--publish 8080:8080 --publish 50000:50000 jenkinsci/blueocean
これで、jenkinsが実行される
jenkins dashboardへの初回ログイン
jenkinsのdashboardに入るためには、ブラウザ上でhttp://localhost:8080/
と入力
passwordとして、コンテナを実行した際の値を入力
もしくは、下記コマンドを実行し初期パスワードを確認
$ docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword
続いて、pluginのインストールとユーザの作成を行う
Customizing Jenkins with pluginsにて以下のどちらかを選択
Install suggested plugins
(基本的にこちら)
Select plugins to install
ユーザの作成では、以下のようにadmin権限を持った新規ユーザを作成
これで初回ログイン時の設定は終了
jenkinsの初期設定
初期設定では、以下の2点に関して設定を行う
- ビルド結果のメール通知
- CI実現に必須なツールのインストール
初めに、「ビルド結果のメール通知」を設定
dashboard > 左ペインのJenkinsの管理
> 中央ペインのシステムの設定
>
Jenkins LocationにてJenkins URL
,System Admin e-mail address
を入力
System Admin e-mail address
は通知メールの差出人
E-mail Notificationにて以下のように設定
test mailの宛先を入力した後、Test configuration
をクリック
クリック後にEmail was successfully sent
と表示されればメールが届いている
もし、Failed to send out e-mail
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials q14sm9594426pjp.43 - gsmtp
~~
と表示された場合、Googleアカウントの「安全性の低いアプリのアクセス」が無効
(defaultは無効)
有効にする場合は、こちらを参考にしてください
続いて、「CI実現に必須なツールのインストール」を設定
dashboard > 左ペインのJenkinsの管理
> 中央ペインのGlobal Tools Configuration
>
以下の通り入力しsave
JDKのインストールに当たって、Oracleアカウントが必須なため、リンク先からユーザ名とパスワードを入力(入力前は"I agree to the Java SE ~~"付近にエラーが表示されている)
もしアカウントを持っていない場合、そこからアカウント作成が可能