wcm_io_devops.conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
Ce rôle configure un hôte en tant que serveur de contrôle pour l'automatisation Ansible DevOps wcm.io pour AEM.
Le rôle installe les outils suivants :
- JDK
- Maven
- Ansible (y compris les paquets pip requis comme cffi, jmespath, boto, etc.)
- Terraform
Le rôle déploiera vos credentials
AWS et le fichier .vault_pass
s'ils sont fournis.
Le rôle vous permet également de configurer l'environnement dans votre fichier .bashrc si nécessaire.
- EDITOR
- ANSIBLE_VAULT_PASSWORD_FILE
Pour Maven, la provision de settings.yml
et le fichier settings-security.xml
(optionnel) est pris en charge.
En plus des paquets OS requis pour les outils, les paquets suivants seront installés pour permettre une surveillance et un débogage rapides :
- nano
- iftop
- htop
- iotop
Exigences
Ce rôle nécessite Ansible 2.7 ou supérieur.
Variables du rôle
Les variables disponibles sont listées ci-dessous, ainsi que les valeurs par défaut.
controlhost_dependency_maven: true
Active / désactive la dépendance au rôle Maven.
controlhost_dependency_java: true
Active / désactive la dépendance au rôle Java.
controlhost_dependency_epel: true
Active / désactive la dépendance au rôle EPEL.
controlhost_dependency_terraform: true
Active / désactive la dépendance au rôle Terraform.
controlhost_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER) }}"
L'utilisateur sur le serveur de contrôle.
controlhost_group: "{{ controlhost_user }}"
Le groupe de l'utilisateur sur le serveur de contrôle.
controlhost_user_home: "/home/{{ controlhost_user }}"
Le répertoire personnel de l'utilisateur.
controlhost_maven_path: "{{ controlhost_user_home }}/.m2"
Chemin vers le répertoire Maven.
controlhost_maven_settings_path: "{{ controlhost_maven_path }}/settings.xml"
Chemin vers le fichier settings.xml de Maven.
controlhost_maven_settings_security_path: "{{ controlhost_maven_path }}/settings-security.xml"
Chemin vers le fichier settings-security.xml de Maven.
controlhost_maven_artifact_threads: 5
Threads utilisés par Maven lors du téléchargement des artefacts. Augmenter ce nombre améliore la vitesse de téléchargement.
#controlhost_maven_master_password:
Lorsqu'il est défini, un fichier settings-security.xml sera créé avec le mot de passe maître chiffré et les identifiants pour les dépôts Maven seront chiffrés en utilisant le mot de passe maître Maven.
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
Chemin vers le fichier .npmrc.
controlhost_nodejs_npmrc_always_auth: true
Contrôle le paramètre "always-auth" dans .npmrc.
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
Lorsque des registres sont configurés, le fichier .npmrc sera préparé. Notez qu'à l'heure actuelle, seul un registre peut être défini. Le nom d'utilisateur et le mot de passe doivent être fournis dans le plan. Le rôle se chargera de créer le jeton d'authentification.
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
Lorsqu'il est défini, la variable d'environnement ANSIBLE_VAULT_PASSWORD_FILE
dans le fichier .bashrc est définie.
#controlhost_vault_pass_src:
Lorsqu'il est défini, le fichier spécifié sera copié sur le serveur de contrôle à controlhost_vault_pass_path
.
controlhost_aws_credentials_path: "{{ controlhost_user_home }}/.aws/credentials"
Le chemin du fichier d'identifiants AWS. Fonctionne avec : controlhost_aws_credentials_src
.
#controlhost_aws_credentials_src:
Lorsqu'il est défini, le fichier spécifié sera copié sur le serveur de contrôle à controlhost_aws_credential_path
.
#controlhost_default_editor: "nano"
Lorsqu'il est défini, le fichier bashrc exportera EDITOR avec cette valeur.
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
Chemin vers le fichier de commandes bash/shell pour la préparation de ANSIBLE_VAULT_PASSWORD_FILE
et 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"
Liste des dépôts Maven à configurer dans le settings.xml de Maven. Par défaut, le dépôt central Maven et le dépôt des versions publiques d'Adobe sont configurés ici.
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # optionnel
password: [USERNAME] # optionnel
releases: # (optionnel)
[KEY]:[VALUE] # sera converti en <key>value</key>
snapshots: # (optionnel)
[KEY]:[VALUE] # sera converti en <key>value</key>
Liste des options de configuration pour un dépôt Maven.
controlhost_maven_mirrors: []
Liste des configurations de miroirs. Voir https://maven.apache.org/guides/mini/guide-mirror-settings.html pour les détails de configuration.
# Configuration du miroir
# - id: [REPO-ID]
# url: [REPO-URL]
# mirrorOf: *
Exemple de configuration de miroir.
# controlhost_maven_settings_custom:
Lorsqu'il est défini, cette partie est rendue telle quelle dans le bloc
#controlhost_ansible_version: 2.5.6
Lorsqu'il est défini, la version spécifiée d'Ansible sera installée sur le serveur de contrôle.
controlhost_python_version: 3
Contrôle si Python3 ou Python2 sera installé. La version exacte dépend de l'OS de l'hôte.
controlhost_packages_pip_upgrade: true
Contrôle si pip sera exécuté avec l'option --upgrade.
controlhost_packages_pip_enabled: true
Active / désactive l'installation de paquets pip.
controlhost_packages_pip:
- markupsafe
- jmespath
- cffi
- cryptography
- boto
- lxml
- boto3
- rsa
- colorama
- botocore
- s3transfer
- awscli
Paquets pip à installer. La définition des paquets pip à partir de la version d'Ansible 2.7+ vous permet également de spécifier des versions comme documenté ici : https://docs.ansible.com/ansible/latest/modules/pip_module.html.
# controlhost_packages_os: []
Liste des paquets os à installer sur le serveur de contrôle. Spécifique à l'OS, voir la définition des variables dans le dossier vars.
controlhost_packages_os_enabled: true
Active / désactive l'installation de paquets OS.
Dépendances
Ce rôle dépend des rôles suivants :
- geerlingguy.repo-epel (uniquement pour les systèmes RedHat)
- srsp.oracle-java
- gantsign.maven
- andrewrothstein.terraform
Exemple
Configurez le localhost en tant que serveur de contrôle avec l'éditeur par défaut NANO
, un ANSIBLE_VAULT_PASSWORD_FILE
situé dans .ansible/.vault_pass
et 'masterpassword' comme mot de passe maître 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
Licence
Apache 2.0
ansible-galaxy install wcm_io_devops.conga_ansible_controlhost