geerlingguy.jenkins

Rol de Ansible: Jenkins CI

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.

Instalar
ansible-galaxy install geerlingguy.jenkins
Licencia
mit
Descargas
2.7M
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns