# 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
おなじDocker上のコンテナは、--linkとかを使わない限り、基本的には他のコンテナを参照できないし、また、おなじDocker上のコンテナを追加してもスケールアウトにならないので、ココでは別Docker上のコンテナをMasterに追加してみます。
# 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
起動完了です。
認証情報 >> System >> グローバルドメイン >> 認証情報の追加
で表示される認証情報の設定画面で下記の通りに設定します。
つぎに
Jenkinsの管理 >> ノードの管理 >> 新規ノード作成
で表示されるノード設定画面で下記の通りに設定します
この記事は
現在のアクセス:5149