mircomasa.jenkins
Rol de Ansible: Jenkins CI
Instala Jenkins CI en servidores RHEL/CentOS y Debian/Ubuntu.
Requisitos
Se requiere que curl
esté instalado en el servidor. Además, las versiones más recientes de Jenkins requieren Java 8 o superior (consultar los libros de pruebas dentro del directorio molecule/default
para un ejemplo de cómo usar versiones más recientes de Java para tu sistema operativo).
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (consultar defaults/main.yml
):
jenkins_package_state: presente
El estado de la instalación del paquete jenkins
. Por defecto, este rol instala Jenkins, pero no lo actualiza (cuando se utilizan instalaciones basadas en paquetes). Si deseas actualizar siempre a la última versión, cambia esto a latest
(último).
jenkins_hostname: localhost
El nombre del sistema; generalmente localhost
funciona bien. Esto se utilizará durante la configuración para comunicarse con la instancia de Jenkins en funcionamiento a través de solicitudes HTTP.
jenkins_home: /var/lib/jenkins
El directorio principal de Jenkins que, entre otras cosas, se utiliza para almacenar artefactos, espacios de trabajo y complementos. Esta variable te permite sobrescribir la ubicación predeterminada /var/lib/jenkins
.
jenkins_http_port: 8080
El puerto HTTP para la interfaz web de Jenkins.
jenkins_admin_username: admin
jenkins_admin_password: admin
Credenciales de la cuenta de administrador predeterminada que se crearán la primera vez que se instale Jenkins.
jenkins_admin_password_file: ""
Archivo de contraseña de administrador predeterminado que se creará la primera vez que se instale Jenkins como /var/lib/jenkins/secrets/initialAdminPassword.
jenkins_jar_location: /opt/jenkins-cli.jar
La ubicación donde se mantendrá el archivo jenkins-cli.jar
. Esto se utiliza para comunicarse con Jenkins a través de la CLI.
jenkins_plugins:
- blueocean
- name: influxdb
version: "1.12.1"
Complementos de Jenkins que se instalarán automáticamente durante la provisión. Por defecto, la lista está vacía ([]
). Los elementos pueden usar nombre o un diccionario con claves name
y version
para fijar una versión específica de un complemento.
jenkins_plugins_install_dependencies: true
Si los complementos de Jenkins que se instalarán también deben instalar las dependencias de cualquier complemento.
jenkins_plugins_state: presente
Usa latest
para asegurar que todos los complementos estén ejecutando la versión más actualizada. Para cualquier complemento que tenga una versión específica establecida en la lista jenkins_plugins
, se utilizará el estado present
en lugar del valor de jenkins_plugins_state
.
jenkins_plugin_updates_expiration: 86400
Número de segundos después del cual se descarga una nueva copia del archivo update-center.json. Establece en 0 si no se debe usar ningún archivo de caché.
jenkins_updates_url: "https://updates.jenkins.io"
La URL que se utilizará para las actualizaciones de complementos de Jenkins y la información del centro de actualizaciones.
jenkins_plugin_timeout: 30
El tiempo de espera de conexión al servidor, en segundos, al instalar complementos de Jenkins.
jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"
(Opcional) La versión de Jenkins se puede fijar a cualquier versión disponible en http://pkg.jenkins-ci.org/debian/
(Debian/Ubuntu) o http://pkg.jenkins-ci.org/redhat/
(RHEL/CentOS). Si la versión de Jenkins que necesitas no está disponible en las URL de paquetes predeterminadas, puedes sobrescribir la URL con la tuya; establece jenkins_pkg_url
(Nota: el rol depende de la misma convención de nombres que usa http://pkg.jenkins-ci.org/
).
jenkins_url_prefix: ""
Utilizado para establecer un prefijo de URL para tu instalación de Jenkins. La opción se agrega como --prefix={{ jenkins_url_prefix }}
a la invocación java
de inicialización de Jenkins, por lo que puedes acceder a la instalación en una ruta como http://www.example.com{{ jenkins_url_prefix }}
. Asegúrate de comenzar el prefijo con una /
(por ejemplo, /jenkins
).
jenkins_connection_delay: 5
jenkins_connection_retries: 60
Cantidad de tiempo y número de veces que esperar al conectarse a Jenkins después del arranque inicial, para verificar que Jenkins está en funcionamiento. El tiempo total de espera = delay
* retries
, así que por defecto este rol esperará hasta 300 segundos antes de agotar el tiempo.
jenkins_prefer_lts: false
Por defecto, este rol instalará la última versión de Jenkins utilizando los repositorios oficiales según la plataforma. Puedes instalar la versión LTS actual en su lugar configurando esto como false
.
Los repositorios predeterminados (enumerados a continuación) también se pueden sobrescribir.
# Para RedHat/CentOS:
jenkins_repo_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.repo
jenkins_repo_key_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key
# Para Debian/Ubuntu:
jenkins_repo_url: deb https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }} binary/
jenkins_repo_key_url: https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key
También es posible evitar que se agregue el archivo repo estableciendo jenkins_repo_url: ''
. Esto es útil si, por ejemplo, firmar tus propios paquetes o ejecutar gestión de paquetes interna (por ejemplo, Spacewalk).
jenkins_options: ""
Opciones adicionales (por ejemplo, establecer el tiempo de espera de mantenimiento de HTTP) que se pasarán a Jenkins al inicio a través de JENKINS_OPTS
en el archivo systemd override.conf se pueden configurar utilizando la variable jenkins_options
. Por defecto, no se especifican opciones.
jenkins_java_options: "-Djenkins.install.runSetupWizard=false"
Opciones adicionales de Java para el comando de lanzamiento de Jenkins configuradas a través de JENKINS_JAVA_OPTS
en el archivo systemd override.conf se pueden establecer con la variable jenkins_java_options
. Por ejemplo, si deseas configurar la zona horaria que utiliza Jenkins, agrega -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York
. Por defecto, se agrega la opción para deshabilitar el asistente de configuración de Jenkins 2.0.
jenkins_init_changes:
- option: "JENKINS_OPTS"
value: "{{ jenkins_options }}"
- option: "JAVA_OPTS"
value: "{{ jenkins_java_options }}"
- option: "JENKINS_HOME"
value: "{{ jenkins_home }}"
- option: "JENKINS_PREFIX"
value: "{{ jenkins_url_prefix }}"
- option: "JENKINS_PORT"
value: "{{ jenkins_http_port }}"
Cambios realizados en el archivo systemd override.conf de Jenkins; el conjunto predeterminado de cambios establece el prefijo de URL configurado, el directorio principal de Jenkins, el puerto de Jenkins y agrega las opciones de Jenkins y Java configuradas para el inicio de Jenkins. Puedes agregar otros pares opción/valor si necesitas establecer otras opciones para el archivo systemd override.conf de Jenkins.
jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
- "127.0.0.1"
- "localhost"
Si estás ejecutando Jenkins detrás de un servidor proxy, configura estas opciones de manera apropiada. De lo contrario, Jenkins se configurará con una conexión directa a Internet.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: jenkins
become: true
vars:
jenkins_hostname: jenkins.example.com
java_packages:
- openjdk-8-jdk
roles:
- role: geerlingguy.java
- role: geerlingguy.jenkins
Ten en cuenta que java_packages
puede necesitar versiones diferentes según tu distribución (por ejemplo, openjdk-11-jdk
para Debian 10, o java-1.8.0-openjdk
para RHEL 7 u 8).
Licencia
MIT (Expat) / BSD
Información del Autor
Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.
ansible-galaxy install mircomasa.jenkins