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

Acerca del proyecto

Ansible role to modify the ManageIQ automate workspace

Instalar
ansible-galaxy install manageiq.manageiq_automate
Licencia
apache-2.0
Descargas
3k
Propietario
ManageIQ Open-Source Management Platform