Kitematicでネットワークの設定ができるようになっていたので、Docker上にJenkins+ssh-slave(ノード、エージェント)環境を構築してみた。
もっとも、非Docker環境での構築を行ったことはないので非Docker環境以外で通用する内容もあるかも。
#環境について
Docker 17.12.0-ce-win47
Kitematic 0.17.2
#使用したDockerのイメージ
jenkins
https://hub.docker.com/_/jenkins/
jenkinsci/ssh-slave
https://hub.docker.com/r/jenkinsci/ssh-slave/
#手順
Jenkinsコンテナの設定
Kitematicの「+NEW」からjenkinsを選択し「create」
Setting - Networkタブで「bridge」をチェックしておく。
networkは「bridge」以外のものを作成して使ってもOK。docker networkコマンドで作成できるはず。
#Jenkinsの起動、初期設定
(割愛)
##sshのキーペアの作成
Jenkinsコンテナのコンソールを開き、キーペアを作成する。
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/var/jenkins_home/.ssh/id_rsa):[Enter or 任意のパス]
Enter passphrase (empty for no passphrase):[秘密鍵のパスワード]
Enter same passphrase again:[秘密鍵のパスワード]
Your identification has been saved in /var/jenkins_home/.ssh/id_rsa.
Your public key has been saved in /var/jenkins_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXX jenkins@XXXXXXXXXXXX
The key's randomart image is:
/var/jenkins_home/.ssh/id_rsa.pub
の内容を控えておく。
#ssh‐slaveコンテナの設定
Kitematicの「+NEW」からjenkinsを選択し「create」
Setting - Networkタブで「bridge」をチェックしておく
Setting - GeneralタブでEnvironment Variablesに追加。1
JENKINS_SLAVE_SSH_PUBKEY=(控えておいたid_rsa.pubの内容)
-
https://hub.docker.com/r/jenkinsci/ssh-slave/ のHow to use this image with Docker Plugin参照 ↩