manageiq.manageiq_automate
manageiq.manageiq_automate
https://galaxy.ansible.com/manageiq/manageiq_automate
El rol manageiq_automate
permite a los usuarios de ManageIQ Automate modificar y añadir a la Workspace de Automate a través de un Playbook de Ansible. El rol incluye un módulo manageiq_automate
que realiza todo el trabajo pesado necesario para modificar o cambiar la Workspace de Automate.
Requisitos
ManageIQ debe ser Gaprindashvili o una versión superior.
El ejemplo de playbook utiliza el módulo manageiq_automate
, que también está incluido como parte de este rol.
Si necesitas incluir este rol en Ansible Tower o Embedded Ansible, simplemente agrega un directorio roles
vacío en la raíz de tu playbook e incluye un archivo requirements.yml
con el siguiente contenido dentro de ese directorio:
---
- source: manageiq.manageiq_automate
version: v0.1.3
Variables del Rol
Auto Commit:
auto_commit
tiene un valor predeterminado de True
en defaults/main.yml
. Si se establece en False
, no se realizará un auto commit a ManageIQ cada vez que se llame a un método set_
en el módulo manageiq_automate
.
Validar Certificados:
manageiq_validate_certs
tiene un valor predeterminado de True
. Si se establece en False
en el diccionario manageiq_connection
o se pasa a través de extra_vars
o se asigna en las variables del playbook, entonces la búsqueda permitirá el uso de certificados autofirmados al utilizar URLs de conexión de la API REST con SSL.
ManageIQ:
manageiq_connection
es un diccionario con claves de conexión predeterminadas. Esta información de conexión SOLO es necesaria si el rol se utiliza fuera de un appliance de ManageIQ. Un appliance de ManageIQ pasa manageiq_connection
a través de extra_vars
, por lo que la información de conexión se incluye automáticamente. Recuerda usar Ansible Vault para contraseñas. automate_workspace
es el href slug y guid necesarios para comunicarse con la Workspace de Automate.
manageiq_connection:
url: 'http://localhost:3000'
username: 'admin'
password: 'password'
automate_workspace: 'automate_workspaces/1234'
manageiq_validate_certs: false
Workspace:
workspace
se instancia a través de tasks/main.yml
. Es la versión actual de la workspace mientras se modifica a través de métodos en el módulo manageiq_automate
.
Dependencias
Ninguna
Ejemplo de Playbook
Un ejemplo detallado con cadenas manuales pasadas a cada método del módulo manageiq_automate
.
- name: Modificar la Workspace de Automate
hosts: localhost
connection: local
gather_facts: False
vars:
- auto_commit: True
# Solo necesario si este playbook NO se ejecuta en un Appliance de ManageIQ
- manageiq_connection:
url: 'https://localhost:3000'
username: 'admin'
password: 'password'
automate_workspace: 'automate_workspaces/1234'
manageiq_validate_certs: false
roles:
- manageiq.manageiq_automate
tasks:
- name: "Verificar un atributo"
manageiq_automate:
workspace: "{{ workspace }}"
attribute_exists:
object: "/ManageIQ/System/Request/call_instance"
attribute: "::miq::parent"
- name: "Obtener un atributo"
manageiq_automate:
workspace: "{{ workspace }}"
get_attribute:
object: "/ManageIQ/System/Request/call_instance"
attribute: "::miq::parent"
- name: "Verificar un state_var"
manageiq_automate:
workspace: "{{ workspace }}"
state_var_exists:
attribute: "task_id"
- name: "Obtener un state_var"
manageiq_automate:
workspace: "{{ workspace }}"
get_state_var:
attribute: "task_id"
- name: "Establecer un State Var"
manageiq_automate:
workspace: "{{ workspace }}"
set_state_var:
attribute: "job_id"
value: "xyz"
register: workspace
- name: "Verificar un parámetro de método"
manageiq_automate:
workspace: "{{ workspace }}"
method_parameter_exists:
parameter: "task_id"
- name: "Obtener un parámetro de método"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameter:
parameter: "invoice"
- name: "Obtener la lista completa de Objetos"
manageiq_automate:
workspace: "{{ workspace }}"
get_object_names: yes
- name: "Obtener la lista de Parámetros de Método"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameters: yes
register: method_params
- name: "Obtener la lista de State Vars"
manageiq_automate:
workspace: "{{ workspace }}"
get_state_var_names: yes
- name: "Obtener la lista completa de Nombres de Atributos de Objeto"
manageiq_automate:
workspace: "{{ workspace }}"
get_object_attribute_names:
object: "root"
- name: "Establecer un atributo"
manageiq_automate:
workspace: "{{ workspace }}"
set_attribute:
object: "root"
attribute: "my_name"
value: "jim"
register: workspace
- name: "Establecer atributos"
manageiq_automate:
workspace: "{{ workspace }}"
set_attributes:
object: "root"
attributes:
family_name: "timmer"
eldest_son: "reed"
youngest_son: "olaf"
register: workspace
- name: Desencriptar un atributo de un objeto
manageiq_automate:
workspace: "{{ workspace }}"
get_decrypted_attribute:
object: root
attribute: fred
register: decrypted_attribute
- debug: msg=decrypted_attribute
- name: Desencriptar un parámetro de método de un objeto
manageiq_automate:
workspace: "{{ workspace }}"
get_decrypted_method_parameter:
attribute: fred
- name: Encriptar un atributo de objeto
manageiq_automate:
workspace: "{{ workspace }}"
set_encrypted_attribute:
object: root
attribute: freddy
value: 'smartvm'
- name: Obtener un objeto vmdb
manageiq_automate:
workspace: "{{ workspace }}"
get_vmdb_object:
object: root
attribute: miq_group
Un ejemplo que utiliza la sustitución de variables para modificar algunos atributos de objeto con method_parameters
pasados y cambiar el reintento.
- name: Transferir Parámetros de Método a un objeto
hosts: localhost
connection: local
vars:
- auto_commit: True
- object: root
- interval: 600
# Solo necesario si este playbook NO se ejecuta en un Appliance de ManageIQ
- manageiq_connection:
url: 'http://localhost:3000'
username: 'admin'
password: 'password'
automate_workspace: 'automate_workspaces/1234'
manageiq_validate_certs: false
gather_facts: False
roles:
- manageiq.manageiq_automate
tasks:
- name: "Obtener la lista de Parámetros de Método"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameters: yes
register: method_params
- name: "Establecer atributos"
manageiq_automate:
workspace: "{{ workspace }}"
set_attributes:
object: "{{ object }}"
attributes: "{{ method_params.value }}"
- name: Establecer Reintento
manageiq_automate:
workspace: "{{ workspace }}"
set_retry:
interval: "{{ interval }}"
Licencia
Apache
Ansible role to modify the ManageIQ automate workspace
ansible-galaxy install manageiq.manageiq_automate