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 utilisateur
  • nuage_password (chiffré) par exemple motdepasse
  • nuage_enterprise par exemple csp
  • nuage_url par exemple https://nuagedemo.net:8443
  • nuage_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

À propos du projet

This role accesses ManageIQ Automation Workspace for you to provide you with Nuage credentials and EMS event data.

Installer
ansible-galaxy install xlab_si.nuage_miq_automate
Licence
Unknown
Téléchargements
147
Propriétaire
Research and development company based in Ljubljana, Slovenia.