Top / Docker / Jenkins

Masterサーバの構築。

# mkdir -p /docker/hostvolumes/jenkins && chown 1000:1000 /docker/hostvolumes/jenkins
# docker run --name jenkins \
 -d  \
 -p 8080:8080  \
 -p 50000:50000 \
 -v /docker/hostvolumes/jenkins:/var/jenkins_home \
 -e JENKINS_OPTS="--prefix=/jenkins" \
 jenkins  --logfile=/var/jenkins_home/jenkins.log

Slaveの追加。

おなじDocker上のコンテナは、--linkとかを使わない限り、基本的には他のコンテナを参照できないし、また、おなじDocker上のコンテナを追加してもスケールアウトにならないので、ココでは別Docker上のコンテナをMasterに追加してみます。

Slave用Linuxコンテナを準備。

# cat Dockerfile
FROM ubuntu

MAINTAINER masatomix

RUN apt-get update
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y openssh-server

ADD dot_ssh /root/.ssh
RUN mkdir -p /var/run/sshd

RUN apt-get install -y gcc graphviz ruby

RUN mkdir -p /jenkins/workspace

CMD ["/usr/sbin/sshd","-D"]

MasterがSlaveにSSHでログインする時に使用するキーペアのうち公開鍵を置いておきます。このファイルはDockerがビルドされる時にイメージ内にコピーされます。

# ls -lrt dot_ssh/authorized_keys
-rw------- 1 root root 745 May 27 11:24 dot_ssh/authorized_keys

ちなみにこの公開鍵と秘密鍵のキーペアは、コマンドで

# ssh-keygen -t rsa -b 4096 -C "masatomix@ki-no.org"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
... 割愛
# cat ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys

などとして作成します。公開鍵が id_rsa.pub 、秘密鍵が id_rsa ですね。くわしくは こちら?

別サーバのDockerでビルドして、そしてコンテナを起動します。

# docker build --no-cache -t  jenkins-slave .
# mkdir /docker/hostvolumes/jenkins-slave01 && chown 1000:1000 /docker/hostvolumes/jenkins-slave01
# docker run --name \
   "jenkins-slave01" \
   -d  \
   -p 10022:22 \
   -v /docker/hostvolumes/jenkins-slave01:/jenkins/workspace jenkins-slave
# docker ps
CONTAINER ID        IMAGE               COMMAND                 略    PORTS                            NAMES
xxxxxxxxxxxxxx         jenkins-slave       "/usr/sbin/sshd -D"           0.0.0.0:10022->22/tcp      jenkins-slave01

起動完了です。

MasterのJenkinsのUIで、Slaveノードを追加。

認証情報 >> System >> グローバルドメイン >> 認証情報の追加

で表示される認証情報の設定画面で下記の通りに設定します。

key_add.png

つぎに

Jenkinsの管理 >> ノードの管理 >> 新規ノード作成

で表示されるノード設定画面で下記の通りに設定します

slave_add.png

関連リンク


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Docker / Jenkins

現在のアクセス:4772


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS