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.

logo de travis-ci.com 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):

Imagen de Lionel Lecha 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 filtro json_query). Ver requirements.txt.
  • Java 8 (obligatorio)
  • 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

Ver: https://github.com/ansible-ThoTeam

Acerca del proyecto

Nexus Repository Manager 3.x (Sonatype)

Instalar
ansible-galaxy install ansible-ThoTeam.nexus3-oss
Licencia
gpl-3.0
Descargas
1.1M
Propietario
Ansible public collections and roles by ThoTeam. Contributions welcome