Vous pouvez intégrer Ansible Tower à Cloud Assembly pour prendre en charge la gestion de la configuration des ressources déployées. Après avoir configuré l'intégration, vous pouvez ajouter des composants virtuels Ansible Tower à des déploiements nouveaux ou existants à partir de l'éditeur de modèle de cloud.
Conditions préalables
- Accordez aux utilisateurs non-administrateurs les autorisations appropriées pour accéder à Ansible Tower. Deux options fonctionnent pour la plupart des configurations. Choisissez celle qui convient le mieux à votre configuration.
- Accordez les rôles d'administrateur d'inventaire et d'administrateur de modèle de travail au niveau de l'organisation.
- Accordez aux utilisateurs l'autorisation Administrateur pour un inventaire particulier et le rôle Exécuter pour tous les modèles de tâches utilisés pour le provisionnement.
-
Vous devez configurer les informations d'identification et les modèles appropriés dans Ansible Tower à utiliser avec vos déploiements. Les modèles peuvent être des modèles de tâche ou des modèles de workflow. Les modèles de tâches définissent l'inventaire et la règle à utiliser avec un déploiement. Il existe un mappage 1:1 entre un modèle de tâche et une règle. Les règles utilisent une syntaxe de type YAML pour définir les tâches associées au modèle. Pour la plupart des déploiements typiques, utilisez les informations d'identification de la machine pour l'authentification.
Les modèles de workflow permettent aux utilisateurs de créer des séquences composées de n'importe quelle combinaison de modèles de tâches, de synchronisations de projet et de synchronisations d'inventaire qui sont liés entre eux afin de pouvoir les exécuter en tant qu'unité unique. Le visualiseur de workflow Ansible Tower aide les utilisateurs à concevoir des modèles de workflow. Pour la plupart des déploiements classiques, vous pouvez utiliser les informations d'identification de la machine pour l'authentification.
- Connectez-vous à Ansible Tower et accédez à la section Modèles.
- Sélectionnez Ajout d'un nouveau modèle de tâche.
- Sélectionnez les informations d'identification que vous avez créées précédemment. Il s'agit des informations d'identification de la machine destinées à être gérées par Ansible Tower. Pour chaque modèle de tâche, il peut y avoir un objet d'informations d'identification.
- Pour la sélection Limite, sélectionnez Invite au démarrage. Cela garantit que le modèle de tâche s'exécute sur le nœud en cours de provisionnement ou d'annulation de provisionnement depuis Cloud Assembly. Si cette option n'est pas sélectionnée, une erreur « Limite non définie » s'affiche lorsque le Blueprint qui contient le modèle de tâche est déployé.
- Sélectionnez Ajout d'un nouveau modèle de workflow.
- Sélectionnez les informations d'identification que vous avez déjà créées, puis définissez l'inventaire. À l'aide du visualiseur de workflow, concevez le modèle de workflow.
Dans la zone Limite des modèles de workflows ou de tâches, vous pouvez généralement sélectionner Invite au démarrage. Cette sélection garantit que le modèle de la tâche ou de workflow s'exécute sur le nœud en cours de provisionnement ou d'annulation de provisionnement depuis Cloud Assembly.
- Vous pouvez afficher l'exécution des modèles de tâche ou de workflow appelés depuis Cloud Assembly dans l'onglet Tâches d'Ansible Tower.
Procédure
Résultats
Ansible Tower est disponible pour une utilisation avec des modèles de cloud.
Que faire ensuite
Ajoutez des composants Ansible Tower aux modèles de cloud souhaités. Vous devez spécifier le modèle de tâche applicable avec l'autorisation d'exécution pour l'utilisateur spécifié dans le compte d'intégration.
- Sur la page de canevas de modèle de cloud, sélectionnez Ansible sous l'en-tête Gestion de la configuration du menu Options de Blueprint, et faites glisser le composant Ansible Tower vers le canevas.
- Utilisez le panneau de droite pour configurer les propriétés Ansible Tower appropriées, telles que les modèles de travail.
Lorsque vous ajoutez une vignette Ansible Tower à un modèle de cloud, vRealize Automation crée l'entrée d'hôte pour la machine virtuelle associée dans l'instance de Ansible Tower. Par défaut, vRealize Automation utilise le nom de ressource de la machine virtuelle pour créer l'entrée de l'hôte, mais vous pouvez spécifier n'importe quel nom à l'aide de la propriété hostName
dans le YAML du Blueprint. Afin de communiquer avec la machine, vRealize Automation crée la variable d'hôte ansible_host: IP Address
pour l'entrée de l'hôte. Vous pouvez remplacer le comportement par défaut pour configurer la communication à l'aide du nom de domaine complet (FQDN) en spécifiant le mot clé ansible_host
sous hostVariables
et en fournissant le nom de domaine complet comme valeur. L'extrait de code YAML suivant montre un exemple de configuration de la communication du nom d'hôte et du nom de domaine complet :
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
Dans cet exemple, vous remplacez la valeur ansible_host
par défaut en fournissant le nom de domaine complet. Cela peut être utile aux utilisateurs qui souhaitent qu'Ansible Tower se connecte à la machine hôte à l'aide du nom de domaine complet.
La valeur par défaut hostVariables
dans le code YAML est ansible_host:IP_address
et l'adresse IP est utilisée pour communiquer avec le serveur.
Si la propriété de comptage YAML est supérieure à 1 pour Ansible Tower, le nom d'hôte peut être mappé à l'une des propriétés de la machine virtuelle respective. L'exemple suivant montre le mappage d'une ressource de machine virtuelle nommée Ubuntu-VM si sa propriété d'adresse doit être mappée au nom d'hôte.
hostname: '${resource.Ubuntu-VM.address[count.index]}'
Lorsque vous ajoutez un composant Ansible Tower à un modèle de cloud, vous pouvez spécifier le modèle de tâche à appeler dans le fichier YAML du modèle de cloud. Vous pouvez également spécifier des modèles de workflow ou une combinaison de modèles de travail et de modèles de workflow. Si vous ne spécifiez pas le type de modèle, vRealize Automation considère par défaut que vous appelez un modèle de tâche.
L'extrait de code YAML suivant illustre comment une combinaison de modèles de tâche et de workflow peut être appelée dans un modèle de cloud Ansible Tower.
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
Nous avons ajouté maxConnectionsRetries
et maxJobRetries
pour gérer les pannes liées à Ansible. Les modèles de cloud acceptent la valeur personnalisée et, si aucune valeur n'est fournie, ils utilisent la valeur par défaut. Pour maxConnectionRetries
, la valeur par défaut est 10, pour maxJobRetries
elle est 3.
Les modèles de cloud Cloud Assembly pour les intégrations d'Ansible Tower incluent la propriété useDefaultLimit
avec une valeur true ou false pour définir où les modèles Ansible sont exécutés. Les modèles Ansible peuvent être des modèles de travail ou des modèles de workflow. Si cette valeur est définie sur true, les modèles spécifiés sont exécutés sur la machine spécifiée dans la zone Limite sur la page Modèles Ansible. Si la valeur est définie sur false, les modèles sont exécutés sur la machine provisionnée, mais les utilisateurs doivent cocher la case Invite au démarrage sur la page Modèles Ansible Tower. Par défaut, la valeur de cette propriété est false. L'exemple de YAML suivant montre comment la propriété useDefaultLimit
s'affiche dans les modèles de cloud.
templates: provision: - name: ping aws_credentials type: job useDefaultLimit: false extraVars: '{"rubiconSurveyJob" : "checkSurvey"}'
En outre, comme le montre l'exemple précédent, vous pouvez utiliser la propriété extraVars
pour spécifier des variables supplémentaires ou des variables d'enquête. Cette capacité peut être utile pour l'exécution de modèles qui nécessitent une entrée. Si un utilisateur a conservé la variable d'enquête, vous devez la transmettre dans la section extraVars
du modèle de cloud pour éviter les erreurs.