Jenkins CI 主从设置与 docker 用于从服务器

Fad*_*adi 5 containers amazon-web-services jenkins docker

所以我设置了两个 Ubuntu AWS 实例(一个小的 t2.medium 和一个大的 r3.large)。t2.medium 上安装了 Jenkins CI,而 r3.large 上安装了 docker 引擎。这里的意图是有一个主(t2.medium)服务器和一个从(r3.large)服务器;主服务器可以为作业委派 docker 容器(根据需要启动 jenkins docker 容器)。

我的问题是我对这个有点不知所措。我一直在研究,但几乎我做的任何事情都失败了。

我目前的情况是:就像我上面提到的那样,我在一个实例上成功运行了 jenkins,在另一个实例上成功运行了 docker 引擎。我也有docker插件,在这里找到,安装在 jenkins 上,我已经按照该页面上的说明进行操作。但是,当我添加云并添加凭据时,唯一显示的是“-none-”;但是,相同的凭据显示在底部。

这是我正在谈论的内容的屏幕截图: 在此处输入图片说明

问题是每次我测试连接时都会收到以下错误:

shaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused.

任何帮助将非常感激!我已经做了一个多星期了!我只是无法解决这个问题。

编辑:如果我以错误的方式进行操作,请指导我如何实现预期的设置。

EDIT2:在这两个实例之间打开所有端口。

这是安全组的屏幕截图: 在此处输入图片说明

EDIT3:这是我的泊坞窗图像:

ubuntu@ip-10-96-24-240:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ubuntu@ip-10-96-24-240:~$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
jenkins-1              latest              9de6ee8eeebc        3 days ago          816.3 MB
ubuntu                 latest              8251da35e7a7        2 weeks ago         188.4 MB
jenkins                latest              0c79d0a394dc        3 weeks ago         888 MB
evarga/jenkins-slave   latest              8880612971b0        8 months ago        610.8 MB
Run Code Online (Sandbox Code Playgroud)

Fad*_*adi 2

好吧,这并不能完全满足我的问题,但它是shaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused问题的可行答案。我的问题是我没有添加以下代码/etc/init/docker.conf

description     "Docker daemon"

start on filesystem and started lxc-net
stop on runlevel [!2345]

respawn

script
    /usr/bin/docker -H tcp://127.0.0.1:4243 -d
end script
Run Code Online (Sandbox Code Playgroud)

我还设置了1.8.1客户Docker Version端版本。相反,它应该是当前的 API 版本1.20

我希望这对像我这样的初学者有所帮助。:)

编辑:自从我发布这篇文章以来,Docker conf 文件已经发生了一些变化,这是我的 docker.conf 现在的样子:

pre-start script
        # see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
        if grep -v '^#' /etc/fstab | grep -q cgroup \
                || [ ! -e /proc/cgroups ] \
                || [ ! -d /sys/fs/cgroup ]; then
                exit 0
        fi
        if ! mountpoint -q /sys/fs/cgroup; then
                mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
        fi
        (
                cd /sys/fs/cgroup
                for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
                        mkdir -p $sys
                        if ! mountpoint -q $sys; then
                                if ! mount -n -t cgroup -o $sys cgroup $sys; then
                                        rmdir $sys || true
                                fi
                        fi
                done
        )
end script

script
        # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
        DOCKER=/usr/bin/$UPSTART_JOB
        DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
        if [ -f /etc/default/$UPSTART_JOB ]; then
                . /etc/default/$UPSTART_JOB
        fi
        exec "$DOCKER" daemon $DOCKER_OPTS
end script

# Don't emit "started" event until docker.sock is ready.
# See https://github.com/docker/docker/issues/6647
post-start script
        DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
        if [ -f /etc/default/$UPSTART_JOB ]; then
                . /etc/default/$UPSTART_JOB
        fi
        if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
                while ! [ -e /var/run/docker.sock ]; do
                        initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
                        echo "Waiting for /var/run/docker.sock"
                        sleep 0.1
                done
                echo "/var/run/docker.sock is up"
        fi
end script
Run Code Online (Sandbox Code Playgroud)

所以现在唯一需要做的就是-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock添加DOCKER_OPTS