Cloud Assembly 支持与 Puppet Enterprise、Ansible 开源和 Ansible Tower 集成,以便您可以根据配置和偏差管理部署。

Puppet 集成

要集成基于 Puppet 的配置管理,必须在具有 vSphere 工作负载的公共或私有云上安装一个有效的 Puppet Enterprise 实例。必须在此外部系统与 Cloud Assembly 实例之间建立连接。然后,可以通过将 Puppet 配置管理添加到相应的蓝图,使其供 Cloud Assembly 使用。

Cloud Assembly 蓝图服务 Puppet 提供程序在已部署的计算资源上安装、配置和运行 Puppet 代理。Puppet 提供程序同时支持 SSH 和 WinRM 连接,并具备以下必备条件:

  • SSH 连接:
    • 要运行具有 NOPASSWD 的命令,用户名必须是超级用户或具有 sudo 权限的用户。
    • 针对给定用户禁用 requiretty
    • cURL 必须在部署计算资源上可用。
  • WinRM 连接:
    • PowerShell 2.0 必须在部署计算资源上可用。
    • 按照 vRealize Orchestrator 文档中的说明配置 Windows 模板。

DevOps 管理员负责管理与 Puppet Master 的连接,并将 Puppet 角色或配置规则应用于特定部署。执行以下部署后,配置为支持配置管理的虚拟机将注册到指定的 Puppet Master。

部署虚拟机时,用户可以添加或删除作为外部系统的 Puppet Master 或更新分配给 Puppet Master 的项目。最后,当虚拟机取消配置时,相应的用户可以从 Puppet Master 取消注册已部署的虚拟机。

Ansible 开源集成

设置 Ansible 集成时,请按照 Ansible 安装说明安装 Ansible 开源。有关安装的更多信息,请参见 Ansible 文档。

默认情况下,Ansible 启用主机密钥检查。如果重新安装 known_hosts 文件中的主机时使用不同的密钥,则会出现错误消息。如果主机未列在 known_hosts 文件中,则您必须在启动时提供密钥。您可以通过 /etc/ansible/ansible.cfg~/.ansible.cfg 文件中的以下设置禁用主机密钥检查:
[defaults]
host_key_checking = False
localhost_warning = False
 
[paramiko_connection]
record_host_keys = False
 
[ssh_connection]
#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
ssh_args = -o UserKnownHostsFile=/dev/null

要避免主机密钥检查错误,请将 host_key_checkingrecord_host_keys 设置为 False,包括添加在 ssh_args 中设置的额外选项 UserKnownHostsFile=/dev/null。此外,如果清单最初为空,Ansible 会警告主机列表为空。这会导致 Playbook 语法检查失败。

通过 Ansible 保管库,可以加密文件而非纯文本形式存储敏感信息(如密码或密钥)。保管库使用密码进行加密。在 Cloud Assembly 中,Ansible 使用保管库对主机的 ssh 密码等数据进行加密。它会假设已设置保管库密码的路径。

可以修改 ansible.cfg 文件,使用以下格式指定密码文件的位置。

vault_password_file = /path to/file.txt

还可以设置 ANSIBLE_VAULT_PASSWORD_FILE 环境变量,以便 Ansible 自动搜索密码。例如,ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Cloud Assembly 管理 Ansible 清单文件,因此必须确保 Cloud Assembly 用户对清单文件具有 rwx 访问权限。

cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
如果要使用具有 Cloud Assembly 开源集成的非 root 用户,则用户需要一组权限来运行 Cloud Assembly 开源提供程序所使用的命令。必须在用户的 sudoers 文件中设置以下命令。
Defaults:myuser !requiretty
如果用户不属于未指定 askpass 应用程序的管理员组,请在用户的 sudoers 文件中设置以下命令。
myuser ALL=(ALL) NOPASSWD: ALL

如果在设置 Ansible 集成时遇到错误或其他问题,请参阅位于 Ansible 控制计算机上的 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/’ 中的 log.txt 文件。

Ansible Tower 集成

支持的操作系统类型
  • Red Hat Enterprise Linux 8.0 或更高版本 64 位 (x86) 仅支持 Ansible Tower 3.5 及更高版本。
  • Red Hat Enterprise Linux 7.4 或更高版本 64 位 (x86)。
  • CentOS 7.4 或更高版本 64-位 (x86)。

以下是在 Ansible Tower 安装期间生成的示例清单文件。您可能需要对其进行修改,以便 Cloud Assembly 集成使用。

[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# pwd
 
/root/ansible-tower-install/ansible-tower-setup-bundle-3.5.2-1.el8
 
[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# cat inventory
 
[tower]
 
localhost ansible_connection=local
 
 
 
 
[database]
 
 
 
 
[all:vars]
 
admin_password='VMware1!'
 
 
 
 
pg_host=''
 
pg_port=''
 
 
 
 
pg_database='awx'
 
pg_username='awx'
 
pg_password='VMware1!'
 
 
 
 
rabbitmq_port=5672
 
rabbitmq_vhost=tower
 
rabbitmq_username=tower
 
rabbitmq_password='VMware1!'
 
rabbitmq_cookie=cookiemonster
 
 
 
 
# Needs to be true for fqdns and ip addresses
 
rabbitmq_use_long_name=false
 
 
 
 
# Isolated Tower nodes automatically generate an RSA key for authentication;
 
# To disable this behavior, set this value to false
 
# isolated_key_generation=true