Configuración de Jenkins CI Master-Slave con ventana acoplable para servidor esclavo

Configuración de Jenkins CI Master-Slave con ventana acoplable para servidor esclavo

Así que configuré dos instancias de Ubuntu AWS (una pequeña t2.medium y una grande r3.large). t2.medium tiene instalado Jenkins CI y r3.large tiene instalado el motor Docker. La intención aquí es tener un servidor Maestro (t2.medium) y un servidor Esclavo (r3.large); donde el servidor maestro puede delegar contenedores acoplables para trabajos (active los contenedores acoplables jenkins según sea necesario).

Mi problema es que estoy un poco perdido con este. He estado investigando pero casi todo lo que hago me falla.

Mi situación actual es: como mencioné anteriormente, tengo jenkins ejecutándose exitosamente en una instancia y el motor Docker ejecutándose exitosamente en la otra. También tengo el complemento Docker, encontradoaquí, instalado en jenkins y he seguido hasta los dientes las instrucciones que hay en esa página. Sin embargo, cuando agrego una nube y agrego credenciales, lo único que se muestra es "-ninguno-"; sin embargo, esas mismas credenciales aparecen en la parte inferior.

Aquí hay una captura de pantalla de lo que estoy hablando: ingrese la descripción de la imagen aquí

El problema con esto es que cada vez que pruebo la conexión me sale el siguiente error:

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

¡Cualquier ayuda sería muy apreciada! ¡He estado haciendo esto por más de una semana! Y simplemente no puedo entender esto.

EDITAR: Si lo hago de manera incorrecta, guíeme sobre cómo lograr la configuración deseada.

EDITAR2: Todos los puertos están abiertos entre esas dos instancias.

Aquí hay una captura de pantalla del grupo de seguridad: ingrese la descripción de la imagen aquí

EDITAR3: Aquí están mis imágenes de la ventana acoplable:

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

Respuesta1

Ok, esto no satisface completamente mi problema, sin embargo, es una respuesta viable alshaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused problema. Mi problema fue que no agregué el siguiente código a /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

yo también puse1.8.1 para Docker Versioncuál es la versión del cliente. En su lugar, debería ser la versión API que existe actualmente 1.20.

Espero que esto ayude a cualquier principiante como yo. :)

EDITAR: El archivo Docker conf ha cambiado un poco desde que publiqué esto, así es como se ve mi docker.conf ahora:

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

Entonces lo único que hay que hacer ahora es simplemente agregar-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock agregarDOCKER_OPTS

información relacionada