conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
Эта роль настраивает хост как контролирующий хост для wcm.io DevOps Ansible Automation для AEM.
Роль устанавливает следующие инструменты:
- JDK
- Maven
- Ansible (включая необходимые пакеты pip, такие как cffi, jmespath, boto и др.)
- Terraform
При наличии она развернет ваши AWS credentials
и
файл .vault_pass
.
Роль также позволяет вам настроить окружение в вашем файле .bashrc при необходимости:
- EDITOR
- ANSIBLE_VAULT_PASSWORD_FILE
Для Maven поддерживается настройка settings.yml
и
settings-security.xml
(по желанию).
Кроме регулярных пакетов ОС для инструментов, будут установлены следующие пакеты для быстрого мониторинга и отладки:
- nano
- iftop
- htop
- iotop
Требования
Эта роль требует Ansible версии 2.7 или выше.
Переменные роли
Доступные переменные перечислены ниже с значениями по умолчанию.
controlhost_dependency_maven: true
Включает / отключает зависимость от роли Maven.
controlhost_dependency_java: true
Включает / отключает зависимость от роли Java.
controlhost_dependency_epel: true
Включает / отключает зависимость от роли EPEL.
controlhost_dependency_terraform: true
Включает / отключает зависимость от роли Terraform.
controlhost_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER) }}"
Пользователь на контролирующем хосте.
controlhost_group: "{{ controlhost_user }}"
Группа пользователя на контролирующем хосте.
controlhost_user_home: "/home/{{ controlhost_user }}"
Домашний каталог пользователя.
controlhost_maven_path: "{{ controlhost_user_home }}/.m2"
Путь к директории Maven.
controlhost_maven_settings_path: "{{ controlhost_maven_path }}/settings.xml"
Путь к файлу настроек Maven settings.xml.
controlhost_maven_settings_security_path: "{{ controlhost_maven_path }}/settings-security.xml"
Путь к файлу настроек безопасности Maven settings-security.xml.
controlhost_maven_artifact_threads: 5
Потоки, используемые Maven при загрузке артефактов. Увеличение этого значения улучшает скорость загрузки.
#controlhost_maven_master_password:
Если задано, будет создан файл настроек безопасности Maven settings-security.xml с зашифрованным мастер-паролем, а учетные данные для controlhost_maven_repositories будут зашифрованы с использованием мастер-пароля Maven.
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
Путь к .npmrc.
controlhost_nodejs_npmrc_always_auth: true
Управляет параметром "always-auth" в .npmrc.
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
При настройке реестров .npmrc будет создан. Обратите внимание, что в данный момент можно определить только один реестр. Имя пользователя и пароль должны быть указаны в явном виде. Роль позаботится о создании токена аутентификации.
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
Если указано, переменная окружения ANSIBLE_VAULT_PASSWORD_FILE
в
.bashrc будет установлена.
#controlhost_vault_pass_src:
Если указано, указанный файл будет скопирован на контролирующий хост в
controlhost_vault_pass_path
.
controlhost_aws_credentials_path: "{{ controlhost_user_home }}/.aws/credentials"
Путь к файлу учетных данных AWS. Работает вместе с: controlhost_aws_credentials_src
.
#controlhost_aws_credentials_src:
Если указано, указанный файл будет скопирован на контролирующий хост в
controlhost_aws_credentials_path
.
#controlhost_default_editor: "nano"
Если указано, bashrc будет экспортировать EDITOR с этим значением.
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
Путь к файлу команд оболочки для настройки
ANSIBLE_VAULT_PASSWORD_FILE
и 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"
Список репозиториев Maven, которые будут настроены в файле настроек Maven settings.xml. По умолчанию здесь настроены maven central и публичный репозиторий от Adobe.
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # опционально
password: [USERNAME] # опционально
releases: # (опционально)
[KEY]:[VALUE] # будет преобразовано в <key>value</key>
snapshots: # (опционально)
[KEY]:[VALUE] # будет преобразовано в <key>value</key>
Список конфигурационных параметров для репозитория Maven.
controlhost_maven_mirrors: []
Список конфигураций зеркал. См. https://maven.apache.org/guides/mini/guide-mirror-settings.html для подробностей конфигурации.
# Конфигурация зеркала
# - id: [REPO-ID]
# url: [REPO-URL]
# mirrorOf: *
Пример конфигурации зеркала.
# controlhost_maven_settings_custom:
Если указано, эта часть будет отображаться как есть в блоке
#controlhost_ansible_version: 2.5.6
Если указано, указанная версия Ansible будет установлена на контролирующем хосте.
controlhost_python_version: 3
Управляет установкой Python3 или Python2. Конкретная версия зависит от ОС хоста.
controlhost_packages_pip_upgrade: true
Управляет выполнением pip с параметром --upgrade.
controlhost_packages_pip_enabled: true
Включает / отключает установку пакетов pip.
controlhost_packages_pip:
- markupsafe
- jmespath
- cffi
- cryptography
- boto
- lxml
- boto3
- rsa
- colorama
- botocore
- s3transfer
- awscli
Пакеты pip для установки. Определение пакетов pip при использовании Ansible версии 2.7+ также может указывать версии, как описано здесь: https://docs.ansible.com/ansible/latest/modules/pip_module.html.
# controlhost_packages_os: []
Список пакетов ОС для установки на контролирующем хосте. Специфично для ОС, см. определение переменной в папке vars.
controlhost_packages_os_enabled: true
Включает / отключает установку пакетов ОС.
Зависимости
Эта роль зависит от следующих ролей:
- geerlingguy.repo-epel (только для RedHat ОС)
- srsp.oracle-java
- gantsign.maven
- andrewrothstein.terraform
Пример
Настройте локальный хост как контролирующий хост с редактором по умолчанию NANO
,
файлом ANSIBLE_VAULT_PASSWORD_FILE
, расположенным в .ansible/.vault_pass
, и
мастер-паролем masterpassword
для 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
Лицензия
Apache 2.0
ansible-galaxy install wcm-io-devops/ansible-conga-ansible-controlhost