wcm_io_devops.conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
Este rol configura un host como un controlhost para la Automatización de Ansible DevOps de wcm.io para AEM.
El rol instala las siguientes herramientas:
- JDK
- Maven
- Ansible (incluyendo los paquetes pip necesarios como cffi, jmespath, boto, etc.)
- Terraform
Cuando se proporciona, el rol desplegará tus credenciales
de AWS y el
archivo .vault_pass
.
El rol también te permite configurar el entorno en tu .bashrc si es necesario:
- EDITOR
- ANSIBLE_VAULT_PASSWORD_FILE
Para Maven, se soporta la provisión de settings.yml
y el
settings-security.xml
(opcional).
Además de los paquetes del sistema requeridos para las herramientas, se instalarán los siguientes paquetes para permitir un monitoreo y depuración rápidos:
- nano
- iftop
- htop
- iotop
Requisitos
Este rol requiere Ansible 2.7 o superior.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados.
controlhost_dependency_maven: true
Habilita / deshabilita la dependencia del rol de Maven.
controlhost_dependency_java: true
Habilita / deshabilita la dependencia del rol de Java.
controlhost_dependency_epel: true
Habilita / deshabilita la dependencia del rol de EPEL.
controlhost_dependency_terraform: true
Habilita / deshabilita la dependencia del rol de Terraform.
controlhost_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER) }}"
El usuario en el controlhost.
controlhost_group: "{{ controlhost_user }}"
El grupo del usuario en el controlhost.
controlhost_user_home: "/home/{{ controlhost_user }}"
El directorio principal del usuario.
controlhost_maven_path: "{{ controlhost_user_home }}/.m2"
Ruta al directorio de Maven.
controlhost_maven_settings_path: "{{ controlhost_maven_path }}/settings.xml"
Ruta al settings.xml de Maven.
controlhost_maven_settings_security_path: "{{ controlhost_maven_path }}/settings-security.xml"
Ruta al settings-security.xml de Maven.
controlhost_maven_artifact_threads: 5
Hilos usados por Maven al descargar artefactos. Aumentar esto mejora la velocidad de descarga.
#controlhost_maven_master_password:
Cuando se establece, se creará un settings-security.xml de Maven con la contraseña maestra encriptada, y las credenciales para los controlhost_maven_repositories se encriptarán usando la contraseña maestra de Maven.
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
Ruta al .npmrc.
controlhost_nodejs_npmrc_always_auth: true
Controla el parámetro "always-auth" en .npmrc.
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
Cuando se configuran registros, se aprovisionará el .npmrc. Ten en cuenta que en este momento solo se puede definir un registro. Se deben proporcionar el nombre de usuario y la contraseña en texto plano. El rol se encargará de crear el token de autenticación.
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
Cuando se establece, se configurará la variable de entorno ANSIBLE_VAULT_PASSWORD_FILE
en
.bashrc.
#controlhost_vault_pass_src:
Cuando se establece, el archivo especificado se copiará al controlhost en
controlhost_vault_pass_path
.
controlhost_aws_credentials_path: "{{ controlhost_user_home }}/.aws/credentials"
La ruta del archivo de credenciales de AWS. Funciona junto con: controlhost_aws_credentials_src
.
#controlhost_aws_credentials_src:
Cuando se establece, el archivo especificado se copiará al control en
controlhost_aws_credentials_path
.
#controlhost_default_editor: "nano"
Cuando se establece, el bashrc exportará EDITOR con este valor.
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
Ruta al archivo de comandos de shell/bash para aprovisionar
ANSIBLE_VAULT_PASSWORD_FILE
y EDITOR
.
controlhost_maven_repositories:
- id: central
url: https://repo.maven.apache.org/maven2/
- id: adobe-public-releases
url: https://repo.adobe.com/nexus/content/groups/public
releases:
enabled: "true"
updatePolicy: "never"
snapshots:
enabled: "false"
Lista de repositorios de Maven que se configurarán en settings.xml de Maven. Por defecto, aquí se configura el repositorio central de Maven y el repositorio de lanzamiento público de Adobe.
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # opcional
password: [USERNAME] # opcional
releases: # (opcional)
[KEY]:[VALUE] # se convertirá a <key>value</key>
snapshots: # (opcional)
[KEY]:[VALUE] # se convertirá a <key>value</key>
Lista de opciones de configuración para un repositorio de Maven.
controlhost_maven_mirrors: []
Lista de configuraciones de espejos. Consulta https://maven.apache.org/guides/mini/guide-mirror-settings.html para detalles de configuración.
# Configuración del espejo
# - id: [REPO-ID]
# url: [REPO-URL]
# mirrorOf: *
Ejemplo de configuración de un espejo.
# controlhost_maven_settings_custom:
Cuando se establece, esta parte se renderiza tal cual en el bloque
#controlhost_ansible_version: 2.5.6
Cuando se establece, se instalará la versión de Ansible dada en el controlhost.
controlhost_python_version: 3
Controla si se instalará Python3 o Python2. La versión exacta depende del sistema operativo del host.
controlhost_packages_pip_upgrade: true
Controla si pip se ejecutará utilizando la opción --upgrade.
controlhost_packages_pip_enabled: true
Habilita / deshabilita la instalación de paquetes pip.
controlhost_packages_pip:
- markupsafe
- jmespath
- cffi
- cryptography
- boto
- lxml
- boto3
- rsa
- colorama
- botocore
- s3transfer
- awscli
Paquetes pip a instalar. Definición del paquete pip según el uso de Ansible 2.7+, también puedes especificar versiones como se documenta aquí: https://docs.ansible.com/ansible/latest/modules/pip_module.html.
# controlhost_packages_os: []
Lista de paquetes del sistema a instalar en el controlhost. Específicos del sistema operativo, consulta la definición de variables en la carpeta vars.
controlhost_packages_os_enabled: true
Habilita / deshabilita la instalación de paquetes del sistema.
Dependencias
Este rol depende de los siguientes roles:
- geerlingguy.repo-epel (solo para RedHat OS)
- srsp.oracle-java
- gantsign.maven
- andrewrothstein.terraform
Ejemplo
Configura el localhost como un controlhost con el editor predeterminado NANO
, un
ANSIBLE_VAULT_PASSWORD_FILE
ubicado en .ansible/.vault_pass
y
'masterpassword' como la contraseña maestra de Maven.
- hosts: localhost
vars:
controlhost_default_editor: nano
controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
controlhost_maven_master_password: masterpassword
roles:
- wcm_io_devops.conga_ansible_controlhost
Licencia
Apache 2.0
ansible-galaxy install wcm_io_devops.conga_ansible_controlhost