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. usuarionuage_password
(encriptada) p. ej. contraseñanuage_enterprise
p. ej. cspnuage_url
p. ej. https://nuagedemo.net:8443nuage_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
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