0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[01] docker-composeを活用して即座にJenkinsを立てて使ってみる ... 1マスタ、1スレーブ構成

Last updated at Posted at 2021-07-25

留意事項

本手順を実施する場合は、次のように読み替えること.

・アカウント名の「robozushi10」を各ユーザのアカウントにする

・ホストIP「192.168.10.115」を各ユーザの IP やホスト名にする
 

概要

次の構成の Jenkins on Docker のセットアップ手順である.

一度構築すれば、他のホスト上でも一部書き換えるだけ※ でセットアップができる.
(※ ホストIP の書き換えのみ)

image.png

役割 ホスト側ポート コンテナ側ポート 補足
Jenkins Master 43080 43080
Jenkins Slave(1) - - Docker on Docker 可能である

 

 

手順

1. 素の Jenkins on Docker を起動させる

1. docker-compose.yml を作成する.

version: "3"
services:
  jenkinsmaster:
    container_name: myjenkinsmaster
    user: root
    image: jenkins/jenkins:latest
    environment:
      - JENKINS_OPTS="--httpPort=43080"
    ports:
      - 43080:43080
      - 43000:43000
    volumes:
      - ./PV/jenkinsmaster/jenkins_home:/var/jenkins_home
  jenkinsslave1:
    container_name: myjenkinsslave1
    user: root
    image: jenkinsci/slave
    volumes:
      - ./PV/jenkinsslave1:/home/jenkins
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker:ro
    command: /bin/bash -c 'java -jar /home/jenkins/agent.jar -jnlpUrl http://jenkinsmaster:43080/computer/slave1-local/jenkins-agent.jnlp -secret @/home/jenkins/secret-file -workDir "/home/jenkins"'

 

2. docker-compose up -d を実行する

$ docker-compose ps
     Name                    Command               State                                    Ports                                 
----------------------------------------------------------------------------------------------------------------------------------
myjenkinsmaster   /sbin/tini -- /usr/local/b ...   Up      0.0.0.0:43000->43000/tcp, 0.0.0.0:43080->43080/tcp, 50000/tcp, 8080/tcp
myjenkinsslave1   /bin/bash -c java -jar /ho ...   Up  

 

 

2. WEB-UI で localhost:43080 にログインする

1. 初期ログインパスワードを入手する

$ docker-compose exec jenkinsmaster bash -c 'cat /var/jenkins_home/secrets/initialAdminPassword'
87e4804b07124cbf934d3c9346378de2

 

2. 推奨プラグインをインストールする

300MB ほどディスクを喰うが仕方ない.

 

3. 管理者アカウントを作成する

「Create First Admin User」で管理者アカウントを作る.
今回は次のアカウントを作成した.

アカウント ... root
パスワード ... rootroot

 

 

3. 開発用アカウントを作成する

1. アカウント作成

http://localhost:43080/securityRealm/addUser にアクセスして開発用アカウントを作成する.
今回は次のアカウントを作成した.

アカウント ... robozushi10
パスワード ... robozushi10

 

2. APIキーを作成する

下記にアクセスして「APIトークン」を「生成」してから「保存」する.

http://localhost:43080/user/robozushi10/configure

image.png

「APIトークン」生成したら控えておくこと.

115055bf04f7f0508abacc987625165188

 

 

4. Jenkins Master の設定をする

1. Jenkins URL を設定する

Jenkinsの管理」→「システムの設定」より、
ホストの IPアドレス「192.168.10.115」を設定する.

image.png

 

 

5. 新規ノード「slave1-local」を立ち上げる

1. 「slave1-local」を作成する

http://localhost:43080/computer/new にアクセスして、ノード名で「slave1-local」でノードを作成する.

このとき次のようにする.

項目 補足
リモートFSルート 「/home/jenkins」と入力する docker-compose.yml での volumes と合わせている
ラベル 「slave1」と入力する
用途 「このマシンを特定ジョブ専用にする」を選択する
起動方法 「Launch agent by connecting it to the master」を選択する

 

2. 「slave1-local」のパラメータを控えておく

作成したノード「slave1-local」の状態確認ページ(下記) を開いて起動パラメータを控える.

http://localhost:43080/computer/slave1-local/

次のような情報が表示されているので控えておく.

echo 93d7204e5036a10274696a371cb5531747056ec637d50b1aa7691217e8a5ee9b > secret-file
java -jar agent.jar -jnlpUrl http://localhost:43080/computer/slave1-local/jenkins-agent.jnlp -secret @secret-file -workDir "/home/jenkins"

 

3. Agents のポート番号を 43080 へと変更する

下記「グローバルセキュリティの設定」より、
Agents」のポート番号を「50000」から「43000」へと変更する.

http://localhost:43080/configureSecurity/

image.png

 

4. ホストで次を実行する

上記 2 で表示されたシークレットを、./PV/jenkinsslave1/secret-file として書き出す.

$ cat <<'EOL' | sudo tee PV/jenkinsslave1/secret-file
93d7204e5036a10274696a371cb5531747056ec637d50b1aa7691217e8a5ee9b
EOL

 

 

5. Slave上に agent.jar を配置する

ホストで次の操作をして ./PV/jenkinsslave1/agent.jar として配置する.

$ sudo wget http://localhost:43080/jnlpJars/agent.jar -O PV/jenkinsslave1/agent.jar

 

 

6. Jenkins を再起動させる

$ sudo docker-compose restart

 

以上.

 

 

デバッグ

Master と Slave が繋がらない場合

ホストで次のように実行して接続可能かチェックをすれば良い.

$ java -jar PV/jenkinsslave1/agent.jar -jnlpUrl http://localhost:43080/computer/slave1-local/jenkins-agent.jnlp -secret 93d7204e5036a10274696a371cb5531747056ec637d50b1aa7691217e8a5ee9b

 

参考サイト

URL
https://www.slideshare.net/miyajan/jenkins-61133952
https://qiita.com/sugiyasu-qr/items/85a1bedb6458d4573407
[改訂第3版]Jenkins実践入門
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?