wcm_io_devops.conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
此角色将主机设置为控制主机,用于 wcm.io DevOps Ansible 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 文件,控制主机的 Maven 仓库凭据将使用 Maven 主密码加密。
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
.npmrc 文件的路径。
controlhost_nodejs_npmrc_always_auth: true
控制 .npmrc 中的 "always-auth" 参数。
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
配置注册表时,将生成 .npmrc 文件。请注意,目前只能定义一个注册表。需要提供用户名和密码,角色将负责创建身份验证令牌。
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
设置时,.bashrc 中的 ANSIBLE_VAULT_PASSWORD_FILE
环境变量将被设置。
#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_credential_path
。
#controlhost_default_editor: "nano"
设置时,bashrc 将以此值导出 EDITOR。
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
用于配置 ANSIBLE_VAULT_PASSWORD_FILE
和 EDITOR
的 bash/shell 运行命令文件的路径。
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 settings.xml 中配置的 Maven 仓库列表。默认情况下,配置了 Maven 中央仓库和 Adobe 的公共发布仓库。
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # 可选
password: [PASSWORD] # 可选
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:
设置时,此部分将原样呈现为 Maven settings 的
#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 包。使用 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