Búsqueda de sitios web

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
  • 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

Artículos relacionados: