xlab_si.nuage_miq_automate
Rôle Ansible : nuage_miq_automate
Ce rôle accède à l'espace de travail d'automatisation ManageIQ pour vous fournir les informations d'identification Nuage (variable nuage_auth
) et les données d'événement EMS (variable event
).
- Informations d'identification Nuage. Le format est exactement celui requis par le module Nuage Ansible afin que vous puissiez l'utiliser directement :
nuage_auth:
api_username: utilisateur
api_password: motdepasse
api_enterprise: csp
api_url: https://nuagedemo.net:8443
api_version: v5_0
- Données d'événement EMS. C'est ici que vous accédez aux détails de l'événement et les utilisez pour tout appel que vous souhaitez exécuter.
event:
#
# Identifiant EMS pour lequel l'événement a été émis.
#
ems_id: '2'
#
# Type d'événement (identique à `full_data.type`).
#
type: CREATE
#
# Type d'entité pour lequel l'événement a été généré (identique à `full_data.entityType`).
#
entityType: entreprise
#
# Entité pour laquelle l'événement a été généré (identique à `full_data.entities[0]`).
#
entity:
entity_type: entreprise
ID: 07f2726a-7f83-4826-87bd-7f7664803938
name: DEMO3
# ... et d'autres attributs
#
# L'ensemble des données de l'événement tel que reçu du serveur Nuage.
#
full_data:
assoicatedEvent: faux
diffMap:
enterpriseName: csp
entities:
- entityType: entreprise
ID: 07f2726a-7f83-4826-87bd-7f7664803938
name: DEMO3
# ...
entityType: entreprise
entityVersion:
eventReceivedTime: 1535011120658
ignoreDiffInMediationEvents: faux
requestID: 62c58aa6-4150-46c7-95fe-ed4051e70864
sourceEnterpriseID: 07f2726a-7f83-4826-87bd-7f7664803938
type: CREATE
updateMechanism: DEFAULT
userName: xlab
Veuillez consulter ce blog pour mieux comprendre ce que le rôle est censé faire. Il y a également une vidéo YouTube avec une démonstration complète de son utilisation.
Exigences
Vous devez avoir les attributs suivants définis sur votre instance Automate qui exécute le rôle nuage_miq_automate :
nuage_username
par exemple utilisateurnuage_password
(chiffré) par exemple motdepassenuage_enterprise
par exemple cspnuage_url
par exemple https://nuagedemo.net:8443nuage_api_version
par exemple v5_0
Le principal objectif de ce rôle est d'extraire ces attributs de l'espace de travail d'automatisation.
NOTE : Vous n'avez pas besoin de spécifier ces cinq attributs sur chaque instance Automate. Au lieu de cela, vous pouvez simplement modifier le schéma et définir des valeurs par défaut - ensuite, toutes les instances d'une classe pourront y accéder. Ainsi, si vos identifiants changent, vous n'aurez qu'à mettre à jour ces valeurs par défaut.
Variables de rôle
Variable | Par défaut | Description |
---|---|---|
manageiq | / | Déterminé par Automate. |
manageiq_connection | / | Déterminé par Automate. |
manageiq:
X_MIQ_Group: Accès locataire Mon Entreprise
api_token: 2d5d9031361a6ac570d810406f267cea
api_url: 'http://localhost:4000'
automate_workspace: automate_workspaces/82632486-7529-45c6-8fa7-fc53ebbb157d
group: groups/1
user: users/1
manageiq_connection:
X_MIQ_Group: Accès locataire Mon Entreprise
token: 2d5d9031361a6ac570d810406f267cea
url: 'http://localhost:4000'
Vous ne devriez pas avoir à vous soucier des entrées du rôle, car ManageIQ Automate les fournira pour vous.
Sorties
Ce rôle définit les variables suivantes pour vous :
Nom de la statistique | Description |
---|---|
nuage_auth | Hash d'authentification Nuage. Peut être passé directement au module nuage_vspk. |
event | Données de l'événement EMS, voir ci-dessous. |
object | Nom absolu de l'instance Automate en cours. |
event:
type: CREATE
ems_id: 4
entity_type: subnet
full_data: { ... } # toutes les données de l'événement émises par le fournisseur Nuage
entity: { ... } # event['entities'].first
Dépendances
Ce rôle nécessite les rôles suivants qui sont également disponibles sur Ansible Galaxy :
Exemple de playbook
Supposons que nous voulions créer un DomainTemplate chaque fois qu'une nouvelle Entreprise est créée. Nous devons simplement relier ce playbook :
- name: Exemple de rappel d'événement Nuage
hosts: localhost
connection: local
gather_facts: False
roles:
- xlab_si.nuage_miq_automate
tasks:
- debug: msg="Je suis un playbook exécuté en tant que rappel d'événement et je peux accéder aux informations d'identification nuage"
- debug: var=nuage_auth
- debug: msg="Ainsi que les détails de l'événement qui m'a déclenché"
- debug: var=event
- debug: msg="Je suis donc prêt à faire du travail !"
- name: Créer un modèle de domaine sur l'entreprise
delegate_to: localhost
nuage_vspk:
auth: "{{ nuage_auth }}" # remarquez comment nous transmettons simplement le `nuage_auth`
type: DomainTemplate
parentType: Enterprise
parentId: "{{ event.entity.ID }}" # remarquez comment nous accédons simplement à la variable `event`
state: present
properties:
name: "Modèle de Domaine Démo"
à l'événement nuage_enterprise_create
. Tadaaa :)
Licence
BSD
This role accesses ManageIQ Automation Workspace for you to provide you with Nuage credentials and EMS event data.
ansible-galaxy install xlab_si.nuage_miq_automate