xlab_si.nuage_miq_automate

Rol de Ansible: nuage_miq_automate

Este rol accede al Espacio de Trabajo de Automatización de ManageIQ para proporcionarte credenciales de Nuage (variable nuage_auth) y datos de eventos de EMS (variable event).

  • Credenciales de Nuage. El formato es exactamente el requerido por el módulo de Ansible de Nuage para que puedas usarlo directamente:
nuage_auth:
  api_username: usuario
  api_password: contraseña
  api_enterprise: csp
  api_url: https://nuagedemo.net:8443
  api_version: v5_0
  • Datos del evento EMS. Aquí es donde accedes a los detalles del evento y los usas para cualquier callback que quieras ejecutar.
event:
  #
  # ID de EMS para el cual se emitió el evento.
  #
  ems_id: '2'
  #
  # Tipo de evento (mismo que `full_data.type`).
  #
  type: CREAR
  #
  # Tipo de entidad para la cual se generó el evento (mismo que `full_data.entityType`).
  #
  entityType: enterprise
  #
  # Entidad para la cual se generó el evento (mismo que `full_data.entities[0]`).
  # 
  entity:
    entity_type: enterprise
    ID: 07f2726a-7f83-4826-87bd-7f7664803938
    name: DEMO3
    # ... y otros atributos
  #
  # Hash completo del evento tal como se recibió del servidor de Nuage.
  #
  full_data:
    assoicatedEvent: false
    diffMap: 
    enterpriseName: csp
    entities:
    - entityType: enterprise
      ID: 07f2726a-7f83-4826-87bd-7f7664803938
      name: DEMO3
      # ...
    entityType: enterprise
    entityVersion: 
    eventReceivedTime: 1535011120658
    ignoreDiffInMediationEvents: false
    requestID: 62c58aa6-4150-46c7-95fe-ed4051e70864
    sourceEnterpriseID: 07f2726a-7f83-4826-87bd-7f7664803938
    type: CREAR
    updateMechanism: DEFAULT
    userName: xlab

Por favor, consulta esta entrada de blog para entender mejor lo que se supone que hace el rol. También hay un video de YouTube con una demostración completa de su uso.

Requisitos

Necesitas tener definidos los siguientes Atributos en tu Instancia de Automatización que está ejecutando el rol nuage_miq_automate:

  • nuage_username p. ej. usuario
  • nuage_password (encriptada) p. ej. contraseña
  • nuage_enterprise p. ej. csp
  • nuage_url p. ej. https://nuagedemo.net:8443
  • nuage_api_version p. ej. v5_0

El propósito principal de este rol es extraer estos Atributos del Espacio de Trabajo de Automatización.

NOTA: No necesitas especificar realmente los cinco Atributos en cada Instancia de Automatización. En su lugar, puedes simplemente modificar el Esquema y establecer valores predeterminados allí - así, todas las Instancias de una Clase podrán acceder a ellos. De esta manera, si tus credenciales cambian, solo necesitarás actualizar esos valores predeterminados.

Variables del Rol

Variable Predeterminado Descripción
manageiq / Establecido por Automatización.
manageiq_connection / Establecido por Automatización.
manageiq:
  X_MIQ_Group: Acceso a la Compañía de Mi Inquilino
  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: Acceso a la Compañía de Mi Inquilino
  token: 2d5d9031361a6ac570d810406f267cea
  url: 'http://localhost:4000'

No necesitas preocuparte por las entradas del rol porque ManageIQ Automate las proporcionará por ti.

Salidas

Este rol establece las siguientes variables para ti:

Nombre de Estadística Descripción
nuage_auth Hash de autenticación de Nuage. Se puede pasar directamente al módulo nuage_vspk.
event Datos del evento EMS, ver abajo.
object Nombre absoluto de la Instancia de Automatización actual.
event:
  type:        CREAR
  ems_id:      4
  entity_type: subnet
  full_data:   { ... } # datos del evento completo como los emitió el proveedor de Nuage
  entity:      { ... } # event['entities'].first

Dependencias

Este rol requiere los siguientes roles que también están disponibles en Ansible Galaxy:

Ejemplo de Playbook

Supongamos que queremos crear una Plantilla de Dominio cada vez que se crea una nueva Empresa. Simplemente necesitamos conectar un playbook así:

- name: Ejemplo de callback de evento de Nuage
  hosts: localhost
  connection: local
  gather_facts: False
  roles:
  - xlab_si.nuage_miq_automate
  tasks:
  - debug: msg="Soy un playbook ejecutándose como callback de evento y puedo acceder a las credenciales de nuage"
  - debug: var=nuage_auth
  - debug: msg="Así como los detalles del evento que me activó"
  - debug: var=event
  - debug: msg="¡Entonces estoy listo para hacer algún trabajo!"

  - name: Crear Plantilla de Dominio en la Empresa
    delegate_to: localhost
    nuage_vspk:
      auth: "{{ nuage_auth }}"          # observa cómo simplemente pasamos hacia adelante el `nuage_auth`
      type: DomainTemplate
      parentType: Enterprise
      parentId: "{{ event.entity.ID }}" # observa cómo simplemente accedemos a la variable `event`
      state: presente
      properties:
        name: "Plantilla de Dominio Demo"

al evento nuage_enterprise_create. ¡Tadaaa! :)

Licencia

BSD

Acerca del proyecto

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

Instalar
ansible-galaxy install xlab_si.nuage_miq_automate
Licencia
Unknown
Descargas
147
Propietario
Research and development company based in Ljubljana, Slovenia.