SSH
docker

Docker Jenkinsでssh-slaveを使う(Kitematic)

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の内容)


  1. https://hub.docker.com/r/jenkinsci/ssh-slave/ のHow to use this image with Docker Plugin参照