wcm_io_devops.conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
Ta rola konfiguruje hosta jako kontrolera dla wcm.io DevOps Ansible Automation for AEM.
Rola instaluje następujące narzędzia:
- JDK
- Maven
- Ansible (w tym wymagane pakiety pip takie jak cffi, jmespath, boto itp.)
- Terraform
Jeśli zostanie podany, rola wdroży Twoje credentials
AWS oraz
plik .vault_pass
.
Rola umożliwia także konfigurację środowiska w pliku .bashrc, jeśli jest to wymagane.
- EDITOR
- ANSIBLE_VAULT_PASSWORD_FILE
Dla Mavena wspierane jest dostarczanie plików settings.yml
oraz
settings-security.xml
(opcjonalnie).
Oprócz wymaganych pakietów systemowych dla narzędzi zainstalowane zostaną następujące pakiety, które umożliwiają szybkie monitorowanie i debugowanie:
- nano
- iftop
- htop
- iotop
Wymagania
Ta rola wymaga Ansible w wersji 2.7 lub wyższej.
Zmienne roli
Dostępne zmienne są wymienione poniżej, razem z wartościami domyślnymi.
controlhost_dependency_maven: true
Włącza / wyłącza zależność od roli maven.
controlhost_dependency_java: true
Włącza / wyłącza zależność od roli java.
controlhost_dependency_epel: true
Włącza / wyłącza zależność od roli epel.
controlhost_dependency_terraform: true
Włącza / wyłącza zależność od roli terraform.
controlhost_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER) }}"
Użytkownik na kontrolerze.
controlhost_group: "{{ controlhost_user }}"
Grupa użytkowników na kontrolerze.
controlhost_user_home: "/home/{{ controlhost_user }}"
Katalog domowy użytkownika.
controlhost_maven_path: "{{ controlhost_user_home }}/.m2"
Ścieżka do katalogu Maven.
controlhost_maven_settings_path: "{{ controlhost_maven_path }}/settings.xml"
Ścieżka do pliku settings.xml dla Mavena.
controlhost_maven_settings_security_path: "{{ controlhost_maven_path }}/settings-security.xml"
Ścieżka do pliku settings-security.xml dla Mavena.
controlhost_maven_artifact_threads: 5
Wątki używane przez Maven przy pobieraniu artefaktów. Zwiększenie liczby wątków poprawia szybkość pobierania.
#controlhost_maven_master_password:
Jeśli ustalone, zostanie utworzone settings-security.xml dla Mavena z zaszyfrowanym hasłem głównym, a dane logowania dla controlhost_maven_repositories zostaną zaszyfrowane z użyciem hasła głównego Maven.
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
Ścieżka do .npmrc.
controlhost_nodejs_npmrc_always_auth: true
Kontroluje parametr "always-auth" w .npmrc.
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
Gdy rejestry są skonfigurowane, plik .npmrc zostanie przygotowany. Należy pamiętać, że obecnie można zdefiniować tylko jeden rejestr. Nazwa użytkownika i hasło muszą być podane w prostym tekście. Rola zajmie się tworzeniem tokenu uwierzytelniającego.
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
Jeśli ustalone, zmienna środowiskowa ANSIBLE_VAULT_PASSWORD_FILE
w
.bashrc jest ustawiana.
#controlhost_vault_pass_src:
Jeśli ustalone, określony plik zostanie skopiowany na kontroler do
controlhost_vault_pass_path
.
controlhost_aws_credentials_path: "{{ controlhost_user_home }}/.aws/credentials"
Ścieżka do pliku z danymi logowania AWS. Działa razem z: controlhost_aws_credentials_src
.
#controlhost_aws_credentials_src:
Jeśli ustalone, określony plik zostanie skopiowany na kontroler do
controlhost_aws_credential_path
.
#controlhost_default_editor: "nano"
Jeśli ustalone, plik bashrc ustawi EDITOR na tę wartość.
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
Ścieżka do pliku poleceń powłoki do przygotowania
ANSIBLE_VAULT_PASSWORD_FILE
i 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 repozytoriów Mavena do skonfigurowania w pliku settings.xml Mavena. Domyślnie skonfigurowane zostały repozytorium Maven central oraz publiczne repozytorium od Adobe.
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # opcjonalne
password: [USERNAME] # opcjonalne
releases: # (opcjonalnie)
[KLUCZ]:[WARTOŚĆ] # zostanie zamienione na <key>value</key>
snapshots: # (opcjonalnie)
[KLUCZ]:[WARTOŚĆ] # zostanie zamienione na <key>value</key>
Lista opcji konfiguracyjnych dla repozytorium Maven.
controlhost_maven_mirrors: []
Lista konfiguracji lustrzanych. Zobacz https://maven.apache.org/guides/mini/guide-mirror-settings.html dla szczegółów konfiguracji.
# Konfiguracja lustra
# - id: [REPO-ID]
# url: [REPO-URL]
# mirrorOf: *
Przykład konfiguracji lustra.
# controlhost_maven_settings_custom:
Jeśli ustawione, ta część jest renderowana tak, jak jest, w bloku
#controlhost_ansible_version: 2.5.6
Jeśli ustalone, podana wersja Ansible zostanie zainstalowana na kontrolerze.
controlhost_python_version: 3
Kontroluje, czy zostanie zainstalowany Python3 czy Python2. Dokładna wersja zależy od systemu operacyjnego hosta.
controlhost_packages_pip_upgrade: true
Kontroluje, czy pip będzie wykonywany z opcją --upgrade.
controlhost_packages_pip_enabled: true
Włącza / wyłącza instalację pakietów pip.
controlhost_packages_pip:
- markupsafe
- jmespath
- cffi
- cryptography
- boto
- lxml
- boto3
- rsa
- colorama
- botocore
- s3transfer
- awscli
Pakiety pip do zainstalowania. Definicja pakietów pip, od wersji Ansible 2.7+ można również określać wersje, co udokumentowano tutaj: https://docs.ansible.com/ansible/latest/modules/pip_module.html.
# controlhost_packages_os: []
Lista pakietów systemowych do zainstalowania na kontrolerze. Specyficzne dla systemu operacyjnego, zobacz definicję zmiennej w folderze vars.
controlhost_packages_os_enabled: true
Włącza / wyłącza instalację pakietów systemowych.
Zależności
Ta rola zależy od następujących ról:
- geerlingguy.repo-epel (tylko systemy RedHat)
- srsp.oracle-java
- gantsign.maven
- andrewrothstein.terraform
Przykład
Skonfiguruj localhost jako kontrolera z domyślnym edytorem NANO
, plikiem
ANSIBLE_VAULT_PASSWORD_FILE
w .ansible/.vault_pass
oraz hasłem głównym masterpassword
dla Mavena.
- 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
Licencja
Apache 2.0
ansible-galaxy install wcm_io_devops.conga_ansible_controlhost