ansible-ThoTeam.nexus3-oss
Rol de Ansible: Nexus 3 OSS
Este rol instala y configura Nexus Repository Manager OSS versión 3.x.
Toda la configuración se puede actualizar volviendo a ejecutar el rol, excepto los ajustes relacionados con los blobstores, que son inmutables en Nexus.
La CI de este rol usa orgullosamente los créditos de OSS asignados por https://travis.com
Tabla de Contenidos
Nota: Los enlaces de la tabla de contenido no funcionarán correctamente al verlo desde el sitio de ansible galaxy. Verlo en GitHub
(Creado con gh-md-toc)
Historia / Créditos
Este rol es una bifurcación de ansible-nexus3-oss por @savoirfairelinux después de que anunciaron el fin del mantenimiento.
Queremos agradecer a los autores originales por su trabajo realizado.
En Memoria de [Lionel Lecha] (nota del autor principal):
![]() |
Este trabajo nunca habría llegado a la comunidad como un proyecto de Código Abierto sin la confianza incondicional de Lionel Lecha, director de SMAP APPUI @La Poste cuando comencé a automatizar el despliegue de Nexus para su unidad en 2018 como contratista externo. Lionel falleció demasiado pronto el 17 de febrero de 2023 a los 60 años. Gracias por tu siempre igual buen humor y tu confianza. |
Requisitos
- Versión actualizada de Ansible. Seguimos las versiones de Ansible durante el mantenimiento/desarrollo y aprovecharemos las nuevas funciones si es necesario (y actualizaremos meta/main.yml para la versión mínima).
- OS compatible. Este rol se prueba a través de moléculas en travis CI para CentOS 8, Ubuntu Bionic (18.04) y Debian Buster. Otros escenarios de moléculas se pueden ejecutar localmente para CentOS 7, Ubuntu Xenial (16.04) y Debian Stretch.
- Rsync debe estar instalado en la máquina de destino (no es necesario en el host que ejecuta Ansible si es diferente).
- La biblioteca
jmespath
debe estar instalada en el host que ejecuta el libro de jugadas (necesaria para el filtrojson_query
). Verrequirements.txt
. - Java 8 (obligatorio)
- Oracle anunció Java 8 EOL. Sonatype ahora recomienda openjdk8.
- Para más información vea requisitos del sistema de nexus3.
- Apache HTTPD (opcional)
- Usado para configurar un proxy inverso SSL.
- Los siguientes módulos deben estar habilitados en tu configuración: mod_ssl, mod_rewrite, mod_proxy, mod_proxy_http, mod_headers.
(vea la sección Dependencias más abajo para coincidencias de roles en galaxy)
Variables del Rol
Variables de Ansible, junto con los valores predeterminados (ver default/main.yml
):
Variables generales
nexus_version: ''
nexus_timezone: 'UTC'
nexus_download_url: "http://download.sonatype.com/nexus/3"
El rol instalará la última versión de Nexus disponible por defecto. Puede fijar la versión configurando la variable nexus_version
. Ver versiones disponibles en https://www.sonatype.com/download-oss-sonatype.
Si fija la versión y la cambia a una diferente, el rol intentará actualizar su instalación. Asegúrese de cambiar a una versión posterior en el historial de lanzamientos. La degradación fallará (a menos que reinstale desde cero usando la nexus_purge
variable especial).
Directorio de descarga para el paquete de nexus
nexus_download_dir: '/tmp'
Directorio en el objetivo donde se descargará el paquete de nexus.
Nota importante: si tiene la intención de ejecutar el rol periódicamente para mantener/provisionar su instalación de nexus, debe asegurarse de que los archivos descargados persistan entre ejecuciones. En RHEL/Centos específicamente, debe cambiar este directorio a una ubicación que no se limpie automáticamente.
Configuración del Proxy inverso
httpd_setup_enable: false
httpd_server_name: "{{ nexus_public_hostname }}"
httpd_default_admin_email: "[email protected]"
httpd_ssl_certificate_file: 'files/nexus.vm.crt'
httpd_ssl_certificate_key_file: 'files/nexus.vm.key'
httpd_copy_ssl_files: true
Configura un Proxy inverso SSL. Esto necesita que httpd esté instalado.
Configuración LDAP
Las conexiones LDAP y el reino de seguridad están deshabilitados por defecto:
nexus_ldap_realm: false
ldap_connections: []
Configuración de conexiones LDAP, cada elemento sigue la siguiente estructura:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'My Company LDAP'
ldap_protocol: 'ldaps'
ldap_hostname: 'ldap.mycompany.com'
ldap_port: 636
Tareas programadas
Estos son ejemplos rápidos y la instrucción para configurar tareas programadas. Para obtener información más detallada sobre los tipos de tareas disponibles y los tipos de programación, consulte la sección específica en la wiki del repositorio.
nexus_scheduled_tasks: []
# Ejemplo de tarea para compactar el blobstore:
# - name: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
Ejemplo de Libro de Jugadas
---
- name: Nexus
hosts: nexus
become: yes
vars:
nexus_timezone: 'Canada/Eastern'
nexus_admin_password: "{{ vault_nexus_admin_password }}"
nexus_public_hostname: 'nexus.vm'
httpd_setup_enable: true
ldap_connections:
- ldap_name: 'Company LDAP'
ldap_protocol: 'ldaps'
ldap_hostname: 'ldap.company.com'
ldap_port: 636
roles:
- { role: geerlingguy.java }
- { role: geerlingguy.apache }
- { role: ansible-thoteam.nexus3-oss }
Licencia
GNU GPLv3
Información del Autor
Nexus Repository Manager 3.x (Sonatype)
ansible-galaxy install ansible-ThoTeam.nexus3-oss