Cloud Assembly unterstützt die Integration mit Puppet Enterprise, Ansible Open Source und Ansible Tower, wodurch Bereitstellungen für Konfigurationsabweichungen verwaltet werden können.
Puppet-Integration
Zur Integration der Puppet-basierten Konfigurationsverwaltung muss eine gültige Instanz von Puppet Enterprise in einer Public oder Private Cloud mit einer vSphere-Arbeitslast installiert sein. Sie müssen eine Verbindung zwischen diesem externen System und der Cloud Assembly-Instanz erstellen. Anschließend können Sie die Puppet-Konfigurationsverwaltung in Cloud Assembly zur Verfügung stellen, indem Sie sie zu entsprechenden Blueprints hinzufügen.
Der Puppet-Anbieter des Cloud Assembly-Blueprint-Diensts installiert, konfiguriert und führt den Puppet-Agent in einer bereitgestellten Computing-Ressource aus. Der Puppet-Anbieter unterstützt sowohl SSH- als auch WinRM-Verbindungen mit den folgenden Voraussetzungen:
- SSH-Verbindungen:
- Zur Ausführung von Befehlen mit NOPASSWD muss als Benutzername ein Superuser oder ein Benutzer mit sudo-Berechtigungen angegeben werden.
- Deaktivieren Sie requiretty für den angegebenen Benutzer.
- cURL muss in der Computing-Ressource der Bereitstellung verfügbar sein.
- WinRM-Verbindungen:
- PowerShell 2.0 muss in der Computing-Ressource der Bereitstellung verfügbar sein.
- Konfigurieren Sie die Windows-Vorlage gemäß der Beschreibung in der vRealize Orchestrator-Dokumentation.
Der DevOps-Administrator ist für die Verwaltung der Verbindungen mit einem Puppet Master und für die Anwendung von Puppet-Rollen oder Konfigurationsregeln auf bestimmte Bereitstellungen zuständig. Nach der Bereitstellung werden virtuelle Maschinen, die zur Unterstützung der Konfigurationsverwaltung konfiguriert wurden, beim zugewiesenen Puppet-Master registriert.
Wenn virtuelle Maschinen bereitgestellt werden, können Benutzer einen Puppet-Master als externes System hinzufügen bzw. löschen oder Projekte aktualisieren, die dem Puppet-Master zugewiesen sind. Schließlich können entsprechende Benutzer die Registrierung bereitgestellter virtueller Maschinen mithilfe des Puppet-Masters aufheben, wenn die Maschinen außer Betrieb genommen werden.
Ansible Open Source-Integration
Beim Einrichten einer Ansible-Integration installieren Sie Ansible Open Source gemäß den Installationsanweisungen für Ansible. Weitere Informationen zur Installation finden Sie in der Ansible-Dokumentation.
[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
Um Fehler bei der Überprüfung der Hostschlüssel zu vermeiden, legen Sie host_key_checking
und record_host_keys
auf „False“ fest und fügen eine zusätzliche Option UserKnownHostsFile=/dev/null
hinzu, die in ssh_args
festgelegt wird. Wenn die Bestandsliste anfänglich leer ist, warnt Ansible außerdem, dass die Hostliste leer ist. Dies führt dazu, dass die Überprüfung der Playbook-Syntax fehlschlägt.
Im Ansible-Tresor können Sie vertrauliche Informationen, wie z. B. Kennwörter oder Schlüssel, in verschlüsselten Dateien statt in Form von Klartext speichern. Der Tresor ist mit einem Kennwort verschlüsselt. In Cloud Assembly werden Daten von Ansible wie SSH-Kennwörter für Host-Maschinen im Tresor verschlüsselt. Ansible setzt dabei voraus, dass der Pfad zum Tresor-Kennwort festgelegt wurde.
Sie können die Datei ansible.cfg ändern, um den Speicherort der Kennwortdatei anzugeben. Verwenden Sie folgendes Format.
vault_password_file = /path to/file.txt
Außerdem können Sie die Umgebungsvariable ANSIBLE_VAULT_PASSWORD_FILE
so festlegen, dass Ansible automatisch nach dem Kennwort sucht. Beispiel: ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
.
Da die Ansible-Bestandslistendatei von Cloud Assembly verwaltet wird, müssen Sie sicherstellen, dass der Cloud Assembly-Benutzer über rwx-Zugriff auf die Bestandslistendatei verfügt.
cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Defaults:myuser !requiretty
myuser ALL=(ALL) NOPASSWD: ALL
Wenn Sie beim Einrichten der Ansible-Integration auf Fehler oder andere Probleme stoßen, finden Sie weitere Informationen in der log.txt-Datei auf der Ansible-Steuerungsmaschine. Diese Datei befindet sich im Verzeichnis 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/'.
Ansible Tower-Integration
- Red Hat Enterprise Linux 8.0 oder höher 64-Bit (x86), unterstützt nur Ansible Tower 3.5 und höher.
- Red Hat Enterprise Linux 7.4 oder höher 64-Bit (x86).
- CentOS 7.4 oder höher 64-Bit (x86).
Im Folgenden finden Sie eine Beispiel-Bestandslistendatei, die bei der Installation von Ansible Tower generiert wird. Möglicherweise müssen Sie sie für Cloud Assembly-Integrationszwecke ändern.
[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