Cuando descarga y configura Jenkins usando Docker, debe usar el comando manual para administrar el proceso. Se vuelve bastante inseguro y complicado. Entonces, lo administraremos usando systemd. En realidad, es el administrador de sistemas y servicios para los sistemas operativos Linux. Cuenta con inicio, habilitación, reinicio y detención bajo demanda de demonios, registro, etc.
En este artículo, voy a descargar el paquete de Jenkins desde el repositorio del concentrador docker y lo administraré con systemd manager. He usado Ubuntu Linux, pero puedes hacerlo en centos, Debian, Redhat, etc., que son compatibles con systemd.
Requisitos
- Última versión de docker instalada
- Conexión a Internet para descargar la imagen de Jenkins
Configuración
Para ejecutar un proceso necesitamos usuarios. Entonces, creamos un grupo de sistema, agregamos un usuario del sistema al grupo. Como no necesita iniciar sesión, no proporcionamos un shell de inicio de sesión. He dado aquí el nombre 'devops', puede dar su elección.
$ sudo groupadd --system devops
$ sudo useradd -s /sbin/nologin --system -g devops devops
Durante la instalación de la ventana acoplable, se agregó una ventana acoplable de usuario de forma predeterminada. Entonces, para ejecutar nuestro proceso dentro de la ventana acoplable, agreguemos el usuario 'devops' y su usuario de inicio de sesión actual al grupo de la ventana acoplable.
$ sudo usermod -aG docker devops
$ sudo usermod -aG docker $USER
Necesitamos un directorio para asignar el volumen del contenedor al host. Entonces, creemos un directorio y otorguemos la propiedad del usuario actual en el directorio.
$ sudo mkdir -p /data/jenkins
$ chown -R $USER:$USER /data/jenkins
Ahora puede verificar los 'devops' del usuario usando el siguiente comando. Su salida debe ser similar a la siguiente.
$ id devops
Ahora es el momento de crear un servicio. Los archivos de servicio se almacenan dentro de /etc/systemd/system/ Entonces, cree un archivo que termine con .service como se muestra a continuación.
$ vim /etc/systemd/system/docker-jenkins.service
Agregue el siguiente contenido en el archivo. La siguiente configuración creará un nombre de servicio docker-jenkins. Simplemente extraerá la última versión de la imagen de jenkins del centro acoplable y ejecutará el contenedor. También asignará los puertos 8080 y 50000 en el servidor host, que son necesarios para acceder al servicio jenkins. Como se define en la sección Unidad a continuación, requiere que docker.service se ejecute correctamente. Si tiene diferentes usuarios, los puntos de montaje cambian en consecuencia.
[Unit] Description=My Jenkins Server Documentation=https://jenkins.io/doc/ After=docker.service Requires=docker.service [Service] Type=simple User=devops Group=devops TimeoutStartSec=0 Restart=on-failure RestartSec=30s ExecStartPre=-/usr/bin/docker kill jenkins-server ExecStartPre=-/usr/bin/docker rm jenkins-server ExecStartPre=/usr/bin/docker pull jenkins/jenkins ExecStart=/usr/bin/docker run \ --name jenkins-server \ --publish 8080:8080 \ --publish 50000:50000 \ --volume /data/jenkins:/var/jenkins_home \ jenkins/jenkins SyslogIdentifier=jenkin ExecStop=/usr/bin/docker stop jenkins-server [Install] WantedBy=multi-user.target
Vuelva a cargar el archivo de servicio en el demonio systemd, usando el siguiente comando.
$ sudo systemctl daemon-reload
Inicie el servicio docker usando el siguiente comando.
$ sudo systemctl start docker-jenkins
Systemd también proporciona un servicio de registro predeterminado en syslog. Puede ver el registro en la siguiente ubicación.
$ sudo tail -f /var/log/syslog
Ahora, puede iniciar el servicio después de que el servidor se reinicie usando la función de 'habilitación' del administrador systemd.
$ sudo systemctl enable docker-jenkins
Además, compruebe reiniciando el servicio.
$ sudo systemctl restart docker-jenkins
Configuración de Jenkins
Para configurar jenkins, primero visite http://yourserverip:8080 Luego, debe ingresar la contraseña de administrador inicial, que se establece en la siguiente ruta. Copie el resultado y péguelo en "Contraseña de administrador". Luego haga clic en continuar.
$ cat /data/jenkins/secrets/initialAdminPassword
Puede instalar el complemento necesario y continuar.
Conclusión
En este artículo, aprendió cómo instalar la última versión de Jenkins usando Docker y configurar el servicio para usarlo. Administrar Jenkins con systemd simplifica el trabajo. Gracias por leer.