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 Cloud Assembly. Vervolgens kunt u Puppet-configuratiebeheer beschikbaar maken voor Cloud Assembly door het aan de juiste blueprints toe te voegen.
De Puppet-provider van de 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.
- Deactiveer requiretty 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.
[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 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 = /path to/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
Cloud Assembly beheert het inventarisbestand voor Ansible, dus u moet ervoor zorgen dat de 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
Defaults:myuser !requiretty
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
- 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 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 deactivate this behavior, set this value to false # isolated_key_generation=true