geerlingguy.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 (vea los libros de jugadas de prueba dentro del directorio molecule/default
para un ejemplo de cómo usar versiones más nuevas de Java para su sistema operativo).
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con valores predeterminados (vea defaults/main.yml
):
jenkins_package_state: presente
El estado de la instalación del paquete jenkins
. Por defecto, este rol instala Jenkins pero no actualizará Jenkins (cuando se utilizan instalaciones basadas en paquetes). Si desea actualizar siempre a la última versión, cambie esto a latest
.
jenkins_hostname: localhost
El nombre de host del sistema; normalmente localhost
funciona bien. Esto se utilizará durante la configuración para comunicarse con la instancia de Jenkins en ejecución a través de solicitudes HTTP.
jenkins_home: /var/lib/jenkins
El directorio principal de Jenkins que, entre otros, se utiliza para almacenar artefactos, espacios de trabajo y complementos. Esta variable le permite anular 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 predeterminadas 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 en la que 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 el aprovisionamiento. Por defecto, es una lista vacía ([]
). Los elementos pueden usar el nombre o un diccionario con las 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 cualquier dependencia de complementos.
jenkins_plugins_state: presente
Use latest
para asegurar que todos los complementos tengan la versión más actualizada. Para cualquier complemento que tenga una versión específica establecida en la lista jenkins_plugins
, el estado presente
se usará 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. Establezca en 0 si no se debe usar un archivo de caché.
jenkins_updates_url: "https://updates.jenkins.io"
La URL que se usará para actualizaciones de complementos de Jenkins e información del centro de actualizaciones.
jenkins_plugin_timeout: 30
El tiempo de espera de conexión del servidor, en segundos, al instalar complementos de Jenkins.
jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"
(Optional) 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 necesita no está disponible en las URL de paquetes predeterminadas, puede anular la URL con la suya; establezca jenkins_pkg_url
(Nota: el rol depende de la misma convención de nombres que usa http://pkg.jenkins-ci.org/
).
jenkins_url_prefix: ""
Se utiliza para establecer un prefijo de URL para su instalación de Jenkins. La opción se agrega como --prefix={{ jenkins_url_prefix }}
a la invocación de inicialización java
de Jenkins, por lo que podrá acceder a la instalación en una ruta como http://www.example.com{{ jenkins_url_prefix }}
. Asegúrese de que el prefijo comience 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 inicio inicial, para verificar que Jenkins está en funcionamiento. El tiempo total de espera = delay
* retries
, por lo que por defecto, este rol esperará hasta 300 segundos antes de que se agote el tiempo.
jenkins_prefer_lts: false
Por defecto, este rol instalará la versión más reciente de Jenkins utilizando los repositorios oficiales según la plataforma. Puede instalar la versión LTS actual en su lugar estableciendo esto en false
.
Los repositorios predeterminados (enumerados a continuación) también se pueden anular.
# 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 del repositorio estableciendo jenkins_repo_url: ''
. Esto es útil si, por ejemplo, firma sus propios paquetes o ejecuta gestión interna de paquetes (p. ej., Spacewalk).
jenkins_options: ""
Opciones adicionales (por ejemplo, establecer el tiempo de espera de mantenimiento HTTP) que se pasan a Jenkins al inicio a través de JENKINS_OPTS
en el archivo override.conf de systemd se pueden configurar utilizando la variable jenkins_options
. Por defecto, no se especifica ninguna opción.
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 override.conf de systemd se pueden establecer con la variable jenkins_java_options
. Por ejemplo, si desea configurar la zona horaria que utiliza Jenkins, agregue -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York
. Por defecto, se añade 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 override.conf de systemd 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. Puede agregar otros pares opción/valor si necesita establecer otras opciones para el archivo override.conf de systemd de Jenkins.
jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
- "127.0.0.1"
- "localhost"
Si ejecuta Jenkins detrás de un servidor proxy, configure estas opciones adecuadamente. De lo contrario, Jenkins se configurará con una conexión a Internet directa.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: jenkins
become: true
vars:
jenkins_hostname: jenkins.ejemplo.com
java_packages:
- openjdk-8-jdk
roles:
- role: geerlingguy.java
- role: geerlingguy.jenkins
Tenga en cuenta que java_packages
puede necesitar diferentes versiones según su 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 geerlingguy.jenkins