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.

    1. Connectez-vous à Ansible Tower et accédez à la section Modèles.
    2. 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é.
    3. 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

  1. Sélectionnez Infrastructure > Connexions > Intégrations et cliquez sur Ajouter une intégration.
  2. Cliquez sur Ansible Tower.
    La page de configuration Ansible s'affiche.
  3. Entrez le Nom d'hôte (qui peut être une adresse IP) et les autres informations requises pour l'instance d'Ansible Tower.
  4. Entrez le Nom d'utilisateur et le Mot de passe de l'authentification basée sur l'interface utilisateur pour l'instance d'Ansible Tower correspondante.
  5. Cliquez sur Valider pour vérifier l'intégration.
  6. Saisissez un Nom et une Description appropriés pour l'intégration.
  7. Cliquez sur Ajouter.

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.

  1. 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.
  2. 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.

Note : Les versions antérieures de vRealize Automation prenaient en charge l'exécution des modèles de tâche uniquement en utilisant le schéma jobTemplate dans le modèle de cloud. jobTemplate est devenu obsolète et pourrait être supprimé dans les prochaines versions. Pour le moment, l'utilisation de la propriété jobTemplate continue à fonctionner comme prévu. Pour exécuter des modèles de workflow et utiliser des fonctionnalités supplémentaires, il est recommandé d'utiliser le schéma de modèles.

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.