vRealize Automation Cloud Assembly ondersteunt integratie met Puppet Enterprise, Ansible Open Source en Ansible Tower, zodat u implementaties voor configuraties en afwijkingen kunt beheren.

Puppet-integratie

Om Puppet-gebaseerd configuratiebeheer te integreren, moet u een geldige instantie van Puppet Enterprise hebben geïnstalleerd in een publieke of privécloud met een vSphere-workload. U moet een verbinding tot stand brengen tussen dit externe systeem en uw instantie van vRealize Automation Cloud Assembly. Vervolgens kunt u Puppet-configuratiebeheer beschikbaar maken voor vRealize Automation Cloud Assembly door het aan de juiste blueprints toe te voegen.

De Puppet-provider van de vRealize Automation Cloud Assembly-blueprintservice installeert, configureert en start de Puppet-agent op een geïmplementeerde berekeningsresource. De Puppet-provider ondersteunt zowel SSH- als WinRM-verbindingen met de volgende vereisten:

  • SSH-verbindingen:
    • De gebruikersnaam moet een supergebruiker of een gebruiker met sudo-rechten zijn om opdrachten met NOPASSWD uit te voeren.
    • Schakel requiretty uit voor de opgegeven gebruiker.
    • cURL moet beschikbaar zijn op de berekeningsresource van de implementatie.
  • WinRM-verbindingen:
    • PowerShell 2.0 moet beschikbaar zijn op de berekeningsresource van de implementatie.
    • Configureer de Windows-sjabloon zoals beschreven in de documentatie voor vRealize Orchestrator.

De DevOps-beheerder is verantwoordelijk voor het beheer van de verbindingen met een Puppet-master en voor het toepassen van Puppet-rollen, of configuratieregels, voor specifieke implementaties. Na de implementatie worden virtuele machines die zijn geconfigureerd om configuratiebeheer te ondersteunen, geregistreerd met de aangewezen Puppet-master.

Wanneer virtuele machines worden geïmplementeerd, kunnen gebruikers een Puppet-master als extern systeem toevoegen of verwijderen of projecten bijwerken die aan de Puppet-master zijn toegewezen. Ten slotte kunnen de juiste gebruikers de geïmplementeerde virtuele machines uit de Puppet-master verwijderen wanneer de machines buiten gebruik worden gesteld.

Ansible Open Source-integratie

Wanneer u een Ansible-integratie instelt, installeert u Ansible Open Source in overeenstemming met de installatie-instructies voor Ansible. Zie de documentatie voor Ansible voor meer informatie over de installatie.

Ansible schakelt standaard de controle van de hostsleutel in. Als een host opnieuw wordt geïnstalleerd met een andere sleutel in het bestand known_hosts, treedt er een fout op. Als een host niet wordt weergegeven in het bestand known_hosts, moet u de sleutel opgeven bij het opstarten. U kunt de controle van de hostsleutel uitschakelen met de volgende instelling in het bestand /etc/ansible/ansible.cfg of ~/.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

Als u fouten in de hostsleutelcontrole wilt vermijden, stelt u host_key_checking en record_host_keys u in op False, inclusief het toevoegen van een extra optie UserKnownHostsFile=/dev/null die is ingesteld in ssh_args. Als de inventaris in eerste instantie leeg is, waarschuwt Ansible dat de hostlijst leeg is. Dit zorgt ervoor dat de Playbook-syntaxiscontrole mislukt.

De Ansible-kluis stelt u in staat gevoelige informatie, zoals wachtwoorden of sleutels, op te slaan in versleutelde bestanden in plaats van als platte tekst. De kluis is versleuteld met een wachtwoord. In vRealize Automation Cloud Assembly gebruikt Ansible de kluis om gegevens zoals SSH-wachtwoorden voor hostcomputers te versleutelen. Hierbij wordt ervan uitgegaan dat het pad naar het kluiswachtwoord is ingesteld.

U kunt het bestand ansible.cfg wijzigen om de locatie van het wachtwoordbestand op te geven in de volgende indeling.

vault_password_file = /pad naar/file.txt

U kunt ook de omgevingsvariabele ANSIBLE_VAULT_PASSWORD_FILE instellen, zodat Ansible automatisch naar het wachtwoord zoekt. Bijvoorbeeld: ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt.

vRealize Automation Cloud Assembly beheert het inventarisbestand voor Ansible, dus u moet ervoor zorgen dat de vRealize Automation Cloud Assembly-gebruiker rwx-toegang tot het inventarisbestand heeft.

cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Als u een niet-rootgebruiker met opensource-integratie van vRealize Automation Cloud Assembly wilt gebruiken, hebben de gebruikers een set rechten nodig om de opdrachten uit te voeren die door de opensourceprovider vRealize Automation Cloud Assembly worden gebruikt. De volgende opdrachten moeten worden ingesteld in het sudoers-bestand van de gebruiker.
Defaults:myuser !requiretty
Als de gebruiker geen deel uitmaakt van een beheerdersgroep waarvoor geen askpass-applicatie is opgegeven, stelt u de volgende opdracht in het sudoers-bestand van de gebruiker in.
myuser ALL=(ALL) NOPASSWD: ALL

Als u fouten of andere problemen ondervindt bij het instellen van de Ansible-integratie, raadpleegt u het bestand log.txt bij 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/' op de Ansible-controlemachine.

Ansible Tower-integratie

Ondersteunde typen besturingssystemen
  • Red Hat Enterprise Linux 8.0 of hoger 64-bits (x86) ondersteunt alleen Ansible Tower 3.5 en hoger.
  • Red Hat Enterprise Linux 7.4 of hoger 64-bits (x86).
  • CentOS 7.4 of hoger 64-bits (x86).

Het volgende is een voorbeeld van een inventarisbestand, dat wordt gegenereerd tijdens een Ansible Tower-installatie. Mogelijk moet u dit wijzigen voor het gebruik van vRealize Automation Cloud Assembly-integratie.

[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