Cómo instalar el servidor Jenkins en CentOS 7/RHEL 7
¿Cómo puedo instalar Jenkins Server en CentOS 7/RHEL 7? Jenkins es un servidor de automatización de código abierto escrito en Java que fue diseñado para automatizar tareas repetitivas que a menudo se encuentran en la integración y entrega continua de software. Jenkins normalmente se ejecuta como una aplicación independiente en su propio proceso con el contenedor de servlet/servidor de aplicaciones Java integrado (Jetty).
Requisitos mínimos de hardware:
- 256 MB de RAM, 1 GB+ recomendado
- 1 GB de espacio en disco (aunque 10 GB es el mínimo recomendado si se ejecuta Jenkins como contenedor Docker)
Para Ubuntu, consulte: Cómo instalar Jenkins en Ubuntu
Para Arch Linux: Cómo instalar y configurar Jenkins en Arch Linux
Para Docker Container: ejecutar Jenkins Server en Docker Container con Systemd
Paso 1: Instale Java OpenJDK
Jenkins requiere Java para ejecutarse, pero CentOS 7 no lo incluye de forma predeterminada. Para instalar Open Java Development Kit (OpenJDK), ejecute lo siguiente:
sudo yum -y install epel-release
sudo yum -y install java-11-openjdk
Asegúrese de tener Java instalado ejecutando:
$ java -version
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS, mixed mode, sharing)
Paso 2: instale el servidor Jenkins
Comience importando la clave del repositorio desde Jenkins:
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Después de importar la clave, agregue el repositorio al sistema:
sudo yum -y install wget
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Luego instale el paquete Jenkins usando yum
:
sudo yum -y install jenkins
Ahora puede iniciar el servicio Jenkins usando:
$ sudo systemctl start jenkins
$ sudo systemctl enable jenkins
jenkins.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig jenkins on
Una verificación del estado debería devolver el estado de ejecución
$ systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-10-29 22:08:46 UTC; 19s ago
Main PID: 1977 (java)
CGroup: /system.slice/jenkins.service
└─1977 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
Oct 29 22:08:30 cent7.mylab.io jenkins[1977]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
Oct 29 22:08:30 cent7.mylab.io jenkins[1977]: *************************************************************
Oct 29 22:08:30 cent7.mylab.io jenkins[1977]: *************************************************************
Oct 29 22:08:30 cent7.mylab.io jenkins[1977]: *************************************************************
Oct 29 22:08:46 cent7.mylab.io jenkins[1977]: 2022-10-29 22:08:46.888+0000 [id=31] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
Oct 29 22:08:46 cent7.mylab.io systemd[1]: Started Jenkins Continuous Integration Server.
Oct 29 22:08:46 cent7.mylab.io jenkins[1977]: 2022-10-29 22:08:46.904+0000 [id=22] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
Oct 29 22:08:47 cent7.mylab.io jenkins[1977]: 2022-10-29 22:08:47.357+0000 [id=46] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson...avenInstaller
Oct 29 22:08:47 cent7.mylab.io jenkins[1977]: 2022-10-29 22:08:47.357+0000 [id=46] INFO hudson.util.Retrier#start: Performed the action check updates server successfull...he attempt #1
Oct 29 22:08:47 cent7.mylab.io jenkins[1977]: 2022-10-29 22:08:47.360+0000 [id=46] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 18,071 ms
Habilite el puerto 8080/tcp
en el firewall:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
El servicio debería estar escuchando en el puerto 8080
$ sudo ss -tunelp | grep 8080
tcp LISTEN 0 50 [::]:8080 [::]:* users:(("java",pid=1977,fd=8)) uid:997 ino:19397 sk:ffff8dc177691080 v6only:0 <->
Paso 3: desbloquear el servidor Jenkins
Busque la URL para acceder al asistente de instalación web.
http://[serverip_or_hostname]:8080
Cuando accede por primera vez a una nueva instancia de Jenkins, se le solicita que la desbloquee mediante una contraseña generada automáticamente.
Obtener la contraseña de
$ cat /var/lib/jenkins/secrets/initialAdminPassword
75a6155d70b7435c9b382197c823aa35
Copie y pegue la contraseña alfanumérica generada automáticamente en el campo Contraseña de administrador y haga clic en Continuar.
Lo siguiente es crear una cuenta de usuario administrador utilizada para administrar el servidor Jenkins.
Seleccione los complementos para instalar en la página siguiente.
Paso 4: configurar Nginx y SSL (opcional)
Se recomienda acceder a Jenkins Server detrás de un servidor Proxy protegido con un certificado SSL. Consulte la guía a continuación.
- Configure Jenkins detrás del proxy inverso Nginx y Let's Encrypt SSL
Paso 5: configurar roles de usuario en Jenkins
De forma predeterminada, la política de usuario de Jenkins permite a los usuarios registrados acceder a cualquier cosa. Este no debería ser el caso y es necesario establecer políticas de usuario adecuadas. Consulte nuestra política de Jenkins y guía de administración de usuarios a continuación.
- Cómo administrar usuarios y roles en Jenkins
Permita que otros usuarios inicien sesión con sus credenciales y asígneles roles que definan lo que pueden hacer en el servidor Jenkins.
Conclusión
Disfrute automatizando sus trabajos con Jenkins. Para obtener más información, consulte la documentación oficial. Publicaremos más artículos sobre Jenkins y CI/CD.
Consulte también:
Cómo administrar usuarios y roles en Jenkins
Configure Jenkins detrás del proxy inverso Nginx y Let's Encrypt SSL
Cómo configurar la autenticación LDAP de Jenkins FreeIPA
Ejecutando Jenkins Server en Docker Container con Systemd
Instalar y configurar el servidor Hashicorp Vault en Ubuntu/CentOS/Debian
Cómo instalar Terraform en Ubuntu/CentOS