U kunt Ansible Tower met Cloud Assembly integreren om het configuratiebeheer van geïmplementeerde resources te ondersteunen. Nadat u de integratie hebt geconfigureerd, kunt u Ansible Tower-onderdelen toevoegen aan nieuwe of bestaande implementaties vanuit de cloudsjablooneditor.
Voorwaarden
- Geef gebruikers die geen beheerder zijn de juiste rechten om toegang tot Ansible Tower te krijgen. Er zijn twee opties die kunnen worden gebruikt voor de meeste configuraties. Kies de optie die het meest geschikt is voor uw configuratie.
- Geef gebruikers de rollen Inventarisbeheerder en Taaksjabloonbeheerder op organisatieniveau.
- Geef gebruikers Beheerdersrechten voor een bepaalde inventaris en de rol Uitvoeren voor alle taaksjablonen die worden gebruikt voor inrichting.
-
U moet de juiste verificatiegegevens en sjablonen in Ansible Tower configureren voor gebruik met uw implementaties. Sjablonen kunnen opdrachtsjablonen of werkstroomsjablonen zijn. Opdrachtsjablonen definiëren de inventaris en het playbook voor gebruik met een implementatie. Er is een 1:1-toewijzing tussen een taaksjabloon en een playbook. Playbooks gebruiken een YAML-achtige syntaxis om taken te definiëren die aan de sjabloon zijn gekoppeld. Voor de meeste gangbare implementaties gebruikt u verificatiegegevens voor de machine voor verificatie.
Met werkstroomsjablonen kunnen gebruikers reeksen maken die bestaan uit een willekeurige combinatie van opdrachtsjablonen, projectsynchronisaties en inventarissynchronisaties die aan elkaar zijn gekoppeld, zodat u ze als één afzonderlijke eenheid kunt uitvoeren. De Ansible Tower Workflow Visualizer helpt gebruikers bij het ontwerpen van werkstroomsjablonen. Voor de meeste gangbare implementaties kunt u verificatiegegevens voor de machine gebruiken voor verificatie.
- Meld u aan bij Ansible Tower en navigeer naar de sectie Sjablonen.
- Selecteer Een nieuwe taaksjabloon toevoegen.
- Selecteer de verificatiegegevens die u al hebt gemaakt. Dit zijn de verificatiegegevens van de machine die moet worden beheerd door Ansible Tower. Voor elke taaksjabloon kan er één verificatiegegevensobject zijn.
- Selecteer Vragen bij starten voor de limietselectie. Hiermee zorgt u ervoor dat de taaksjabloon wordt uitgevoerd op het knooppunt dat wordt ingericht of waarvan de inrichting is opgeheven vanuit Cloud Assembly. Als deze optie niet is geselecteerd, wordt er een fout Geen limiet ingesteld weergegeven wanneer de blueprint die de taaksjabloon bevat, wordt geïmplementeerd.
- Selecteer Een nieuwe werkstroomsjabloon toevoegen.
- Selecteer de verificatiegegevens die u al hebt gemaakt en definieer vervolgens de inventaris. Ontwerp de werkstroomsjabloon met Workflow Visualizer.
Voor het vak Limiet van werkstroom of ©sjablonen kunt u doorgaans Vragen bij starten selecteren. Hiermee zorgt u ervoor dat de opdracht- of werkstroomsjabloon wordt uitgevoerd op het knooppunt dat wordt ingericht of waarvan de inrichting is opgeheven vanuit Cloud Assembly.
- U kunt de uitvoering van de opdrachtsjablonen of werkstroomsjablonen weergeven die worden aangeroepen via Cloud Assembly op het tabblad Ansible Tower-opdrachten.
Procedure
resultaten
Ansible Tower kan worden gebruikt in cloudsjablonen.
Volgende stappen
Voeg Ansible Tower-onderdelen toe aan de gewenste cloudsjablonen. Zorg ervoor dat u de juiste opdrachtsjabloon opgeeft met uitvoeringsrechten voor de gebruiker die zijn opgegeven in het integratie-account.
- Selecteer Ansible op de canvaspagina van de cloudsjabloon onder de kop Configuratiebeheer in het menu met blueprintopties en sleep het Ansible Tower-onderdeel naar het canvas.
- Gebruik het paneel aan de rechterkant om de geschikte Ansible Tower-eigenschappen zoals opdrachtsjablonen te configureren.
Wanneer u een Ansible Tower-tegel aan een cloudsjabloon toevoegt, maakt vRealize Automation de hostvermelding voor de gekoppelde virtuele machine in de Ansible Tower. Standaard gebruikt vRealize Automation de resourcenaam van de virtuele machine om de hostvermelding te maken, maar u kunt elke naam opgeven met behulp van de eigenschap hostName
in de blueprint-YAML. Om te communiceren met de machine, maakt vRealize Automation de hostvariabele ansible_host: IP Address
voor de hostvermelding. U kunt het standaardgedrag overschrijven om communicatie met FQDN te configureren, door het trefwoord ansible_host
onder hostVariables
op te geven en FQDN als bijbehorende waarde op te geven. In het volgende YAML-codefragment ziet u een voorbeeld van hoe hostnaam en FQDN-communicatie kunnen worden geconfigureerd:
Cloud_Ansible_Tower_1: type: Cloud Ansible Tower properties: host: name of host account: name of account hostName: resource name hostVariables: ansible_host:Host FQDN
In dit voorbeeld overschrijft u de standaardwaarde van ansible_host
door de FQDN op te geven. Dit kan handig zijn voor gebruikers die willen dat Ansible Tower via de FQDN verbinding met de hostmachine maakt.
De standaardwaarde van hostVariables
in de YAML zal ansible_host:IP_address
zijn en het IP-adres wordt gebruikt om met de server te communiceren.
Als de YAML-eigenschap count groter is dan 1 voor Ansible Tower, kan de hostnaam worden toegewezen aan een van de respectieve eigenschappen van de virtuele machine. In het volgende voorbeeld ziet u de toewijzing van een VM-resource met de naam Ubuntu-VM als wij willen dat de adreseigenschap ervan wordt toegewezen aan de hostnaam.
hostname: '${resource.Ubuntu-VM.address[count.index]}'
Wanneer u een Ansible Tower-onderdeel toevoegt aan een cloudsjabloon, kunt u de taaksjabloon opgeven om de YAML van de cloudsjabloon aan te roepen. U kunt ook werkstroomsjablonen of een combinatie van taaksjablonen en werkstroomsjablonen opgeven. Als u het sjabloontype niet opgeeft, gaat vRealize Automation ervan uit dat u een taaksjabloon aanroept.
In het volgende YAML-fragment ziet u een voorbeeld van hoe u een combinatie van opdracht- en werkstroomsjablonen kunt aanroepen in een Ansible Tower-cloudsjabloon.
Cloud_Ansible_1: type: Cloud.Ansible.Tower properties: host: ‘${resource.CentOS_Machine.*}’ account: maxConnectionRetries: 2 maxJobRetries: 2 templates: provision: - name: My workflow type: workflow - name: My job template
We hebben de maxConnectionsRetries
en maxJobRetries
toegevoegd om Ansible-gerelateerde fouten te behandelen. De cloudsjablonen accepteren de aangepaste waarde en, als er geen waarde wordt opgegeven, wordt de standaardwaarde gebruikt. Voor maxConnectionRetries
is de standaardwaarde 10 en voor maxJobRetries
is de standaardwaarde 3.
Cloud Assembly-cloudsjablonen voor Ansible Tower-integraties bevatten de eigenschap useDefaultLimit
met waarde waar of onwaar om te definiëren waar Ansible-sjablonen worden uitgevoerd. Ansible-sjablonen kunnen opdrachtsjablonen of werkstroomsjablonen zijn. Als deze waarde op waar is ingesteld, worden de opgegeven sjablonen uitgevoerd op basis van de machine die is opgegeven in het vak Limiet op de pagina Ansible-sjablonen. Als de waarde op onwaar is ingesteld, worden de sjablonen uitgevoerd op de ingerichte machine. Gebruikers moeten echter het selectievakje Vragen bij starten inschakelen op de pagina Ansible Tower-sjablonen. De standaardwaarde van deze eigenschap is onwaar. In het volgende YAML-voorbeeld ziet u hoe de eigenschap useDefaultLimit
in cloudsjablonen wordt weergegeven.
templates: provision: - name: ping aws_credentials type: job useDefaultLimit: false extraVars: '{"rubiconSurveyJob" : "checkSurvey"}'
Bovendien kunt u, zoals in het vorige voorbeeld, de eigenschap extraVars
gebruiken om extra variabelen of enquêtevariabelen op te geven. Deze mogelijkheid kan handig zijn voor het uitvoeren van sjablonen waarvoor invoer is vereist. Als een gebruiker de enquêtevariabele heeft behouden, moet u de variabele doorgeven in de sectie extraVars
van de cloudsjabloon om fouten te voorkomen.