0
0

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.

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

Last updated at Posted at 2021-07-25

留意事項

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

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

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

概要

前回 からの発展で、次の構成の Jenkins on Docker のセットアップ手順である.

// 私の場合は Slave が 3つあれば間に合うことが多い

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

image.png

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

 

 

手順

1. 前回起動させたコンテナおよびイメージを一掃する

$ docker-compose down --rmi all  --volumes --remove-orphans

このとき、ホスト上から見たデータは次のようになっている

.
|-- PV
|   |-- jenkinsmaster
|   |   `-- jenkins_home
|   |       |-- 以下略
|   `-- jenkinsslave1
|       |-- agent
|       |-- agent.jar
|       |-- remoting
|       `-- secret-file
`-- docker-compose.yml

 

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

1. docker-compose.yml を変更する

前回 のコードに対して、次の変更を加える.

--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -20,3 +20,21 @@ services:
       - /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"'
+  jenkinsslave2:
+    container_name: myjenkinsslave2
+    user: root
+    image: jenkinsci/slave
+    volumes:
+      - ./PV/jenkinsslave2:/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/slave2-local/jenkins-agent.jnlp -secret @/home/jenkins/secret-file -workDir "/home/jenkins"'
+  jenkinsslave3:
+    container_name: myjenkinsslave3
+    user: root
+    image: jenkinsci/slave
+    volumes:
+      - ./PV/jenkinsslave3:/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/slave3-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                                                                              
myjenkinsslave2   /bin/bash -c java -jar /ho ...   Exit 1                                                                       
myjenkinsslave3   /bin/bash -c java -jar /ho ...   Exit 1

 

 

3. WEB-UI で localhost:43080 にログインして「slave2-local」を追加登録する

1. 「slave2-local」を登録する

下記 URL にアクセスして、下図の要領で登録する.

http://localhost:43080/computer/new

image.png

 

2. パラメータを設定する

image.pngimage.png

 

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

image.png

 

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

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

$ cat <<'EOL' | sudo tee PV/jenkinsslave2/secret-file
ca5900b9f1a887405b35d7c52410652326ceb896d4c5b0033c269c43940ba018
EOL

 

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

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

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

 

 

4. WEB-UI で localhost:43080 にログインして「slave3-local」を追加登録する

上記 2 と同じ要領で「slave3-local」を登録する.

 

 

5. コンテナ群を再起動する

$ docker-compose restart
Restarting myjenkinsmaster ... done
Restarting myjenkinsslave1 ... done
Restarting myjenkinsslave3 ... done
Restarting myjenkinsslave2 ... done

次のように表示されていれば OK.

$ 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                                                                             
myjenkinsslave2   /bin/bash -c java -jar /ho ...   Up                                                                             
myjenkinsslave3   /bin/bash -c java -jar /ho ...   Up   

 

 

5. Slave 2台が起動していることを確認する

image.png

 

以上

 

 

参考サイトおよび書籍

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?