Cloud Assembly admite la integración con Puppet Enterprise, el código abierto de Ansible y Ansible Tower para que se puedan administrar las implementaciones con fines de configuración y desplazamiento.

Integración de Puppet

Para integrar la administración de configuración basada en Puppet, debe tener una instancia válida de Puppet Enterprise instalada en una nube privada o pública con una carga de trabajo de vSphere. Debe establecer una conexión entre el sistema externo y la instancia de Cloud Assembly. A continuación, puede agregar la administración de configuración de Puppet a los blueprints correspondientes para que esté disponible en Cloud Assembly.

El proveedor de Puppet de servicio de blueprint de Cloud Assembly instala, configura y ejecuta al agente de Puppet en un recurso informático implementado. El proveedor de Puppet es compatible con las conexiones SSH y WinRM, y tiene los siguientes requisitos previos:

  • Conexiones SSH:
    • El nombre de usuario debe ser un superusuario o un usuario con permisos sudo para ejecutar comandos con NOPASSWD.
    • Desactive requiretty para el usuario dado.
    • La cURL debe estar disponible en el recurso informático de implementación.
  • Conexiones WinRM:
    • PowerShell 2.0 debe estar disponible en el recurso informático de implementación.
    • Configure la plantilla de Windows como se describe en la documentación de vRealize Orchestrator.

El administrador de DevOps es responsable de administrar las conexiones con una instancia principal de Puppet y de aplicar las funciones de Puppets, o las reglas de configuración, en las implementaciones específicas. Después de la implementación, las máquinas virtuales configuradas para admitir la administración de configuración están registradas con la instancia principal de Puppet designada.

Cuando se implementan máquinas virtuales, los usuarios pueden agregar o eliminar una instancia principal de Puppet como un sistema externo o actualizar los proyectos asignados a la instancia principal de Puppet. Por último, los usuarios apropiados pueden anular el registro de las máquinas virtuales implementadas desde la instancia principal de Puppet cuando las máquinas se retiran de servicio.

Integración de código abierto de Ansible

Al configurar una integración de Ansible, instale el código abierto de Ansible de acuerdo con las instrucciones de instalación de Ansible. Consulte la documentación de Ansible para obtener más información sobre la instalación.

Ansible habilita la comprobación de claves de host de forma predeterminada. Si se vuelve a instalar un host con una clave diferente en el archivo known_hosts, aparecerá un mensaje de error. Si un host no aparece en el archivo known_hosts, deberá proporcionar la clave en el inicio. Puede desactivar la comprobación de claves de host con la siguiente opción en el archivo /etc/ansible/ansible.cfg o ~/.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

Para evitar errores de comprobación de claves de host, establezca host_key_checking y record_host_keys como False y también agregue una opción adicional UserKnownHostsFile=/dev/null configurada como ssh_args. Asimismo, si el inventario está vacío inicialmente, Ansible advierte que la lista de hosts está vacía. Esto genera errores en la comprobación de sintaxis de cuadernos de estrategias.

Ansible Vault permite almacenar información confidencial, como contraseñas o claves, en archivos cifrados en lugar de texto sin formato. Vault se cifra con una contraseña. En Cloud Assembly, Ansible utiliza Vault para cifrar datos, como las contraseñas SSH de los equipos host. Supone que se estableció la ruta de acceso a la contraseña de Vault.

Puede modificar el archivo ansible.cfg para especificar la ubicación del archivo de contraseñas con el siguiente formato.

vault_password_file = /path to/file.txt

También puede establecer la variable de entorno ANSIBLE_VAULT_PASSWORD_FILE para que Ansible busque automáticamente la contraseña. Por ejemplo, ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Cloud Assembly administra el archivo de inventario de Ansible, por lo que debe asegurarse de que el usuario Cloud Assembly tenga acceso rwx al archivo de inventario.

cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Si desea utilizar un usuario que no es raíz con la integración de código abierto de Cloud Assembly, los usuarios requieren un conjunto de permisos para ejecutar los comandos utilizados por el proveedor de código abierto de Cloud Assembly. Los siguientes comandos deben estar configurados en el archivo sudoers del usuario.
Defaults:myuser !requiretty
Si el usuario no forma parte de un grupo de administradores que no tiene una aplicación askpass especificada, ejecute el siguiente comando en el archivo sudoers del usuario.
myuser ALL=(ALL) NOPASSWD: ALL

Si detecta errores u otros problemas al configurar la integración de Ansible, consulte el archivo log.txt ubicado en '~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/' en la máquina de control de Ansible.

Integración de Ansible Tower

Tipos de sistemas operativos compatibles
  • Red Hat Enterprise Linux 8.0 o posterior de 64 bits (x86), compatible solo con Ansible Tower 3.5 y posterior
  • Red Hat Enterprise Linux 7.4 o posterior de 64 bits (x86)
  • CentOS 7.4 o posterior de 64 bits (x86)

El siguiente es un archivo de inventario de ejemplo, que se genera durante una instalación de Ansible Tower. Es posible que deba modificarlo para la integración de 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 deactivate this behavior, set this value to false
 
# isolated_key_generation=true