manageiq_automate

manageiq.manageiq_automate

https://galaxy.ansible.com/manageiq/manageiq_automate

Роль manageiq_automate позволяет пользователям ManageIQ Automate изменять и добавлять данные в Automate Workspace с помощью Ansible Playbook. Роль включает в себя модуль manageiq_automate, который обеспечивает все необходимые функции для изменения или изменения Automate Workspace.

Требования

ManageIQ должен быть версии Gaprindashvili или выше.

Пример playbook использует модуль manageiq_automate, который также включен в эту роль.

Если вам нужно включить эту роль в Ansible Tower или Embedded Ansible, просто добавьте пустой каталог roles в корень вашего playbook и включите файл requirements.yml со следующим содержимым внутри этого каталога:

---
- source: manageiq.manageiq_automate
  version: v0.1.3

Переменные роли

Авто-коммит: auto_commit по умолчанию установлен в True в defaults/main.yml. Если установлен в False, не будет автоматически сохранять изменения в ManageIQ на каждом вызове метода set_ в модуле manageiq_automate.

Проверка сертификатов: manageiq_validate_certs по умолчанию установлен в True. Если установлен в False в словаре manageiq_connection или передан через extra_vars или присвоен в переменные playbook, тогда будет разрешено использование самоподписанных сертификатов при использовании SSL REST API URL.

ManageIQ: manageiq_connection — это словарь с ключами для подключения по умолчанию. Использование этой информации для подключения необходимо ТОЛЬКО в том случае, если роль используется вне Appliance ManageIQ. Аппаратное обеспечение ManageIQ передает manageiq_connection через extra_vars, поэтому информация о подключении включается автоматически. Не забудьте использовать Ansible Vault для паролей. automate_workspace — это ссылка (slug) и guid, необходимые для взаимодействия с Automate Workspace.

    manageiq_connection:
        url: 'http://localhost:3000'
        username: 'admin'
        password: 'password'
        automate_workspace: 'automate_workspaces/1234'
        manageiq_validate_certs: false

Рабочее пространство: workspace, созданный через tasks/main.yml. Текущая версия рабочего пространства, измененного через методы в модуле manageiq_automate.

Зависимости

Нет

Пример Playbook

Подробный пример с ручными строками, переданными каждому методу модуля manageiq_automate

- name: Изменить Automate Workspace
  hosts: localhost
  connection: local

  gather_facts: False
  vars:
  - auto_commit: True
  # Это нужно только если этот playbook НЕ выполняется на Appliance 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: "Проверить наличие атрибута"
      manageiq_automate:
        workspace: "{{ workspace }}"
        attribute_exists:
          object: "/ManageIQ/System/Request/call_instance"
          attribute: "::miq::parent"

    - name: "Получить атрибут"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_attribute: object: "/ManageIQ/System/Request/call_instance"
          attribute: "::miq::parent"

    - name: "Проверить наличие state_var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        state_var_exists:
          attribute: "task_id"

    - name: "Получить state_var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_state_var:
          attribute: "task_id"

    - name: "Установить State Var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_state_var:
          attribute: "job_id"
          value: "xyz"
      register: workspace

    - name: "Проверить параметр метода"
      manageiq_automate:
        workspace: "{{ workspace }}"
        method_parameter_exists:
          parameter: "task_id"

    - name: "Получить параметр метода"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameter:
          parameter: "invoice"

    - name: "Получить полный список объектов"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_object_names: yes

    - name: "Получить список параметров метода"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameters: yes
      register: method_params

    - name: "Получить список переменных состояния"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_state_var_names: yes

    - name: "Получить полный список имен атрибутов объектов"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_object_attribute_names:
          object: "root"

    - name: "Установить атрибут"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attribute:
          object: "root"
          attribute: "my_name"
          value:  "jim"
      register: workspace

    - name: "Установить атрибуты"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attributes:
          object: "root"
          attributes:
            family_name: "timmer"
            eldest_son: "reed"
            youngest_son: "olaf"
      register: workspace

    - name: Расшифровать атрибут объекта
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_decrypted_attribute:
          object: root
          attribute: fred
      register: decrypted_attribute

    - debug: msg=decrypted_attribute

    - name: Расшифровать метод_параметр объекта
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_decrypted_method_parameter:
          attribute: fred

    - name: Зашифровать атрибут объекта
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_encrypted_attribute:
          object: root
          attribute: freddy
          value: 'smartvm'

    - name: Получить объект vmdb
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_vmdb_object:
          object: root
          attribute: miq_group

Пример использования подстановки переменных для изменения некоторых атрибутов объектов с переданными method_parameters и изменение попытки.

- name: Ввести параметр метода в объект
  hosts: localhost
  connection: local
  vars:
  - auto_commit: True
  - object: root
  - interval: 600
  # Это нужно только если этот playbook НЕ выполняется на Appliance 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: "Получить список параметров метода"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameters: yes
      register: method_params

    - name: "Установить атрибуты"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attributes:
          object: "{{ object }}"
          attributes: "{{ method_params.value }}"

    - name: Установить попытку
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_retry:
          interval: "{{ interval }}"

Лицензия

Apache

О проекте

Ansible role to modify the ManageIQ automate workspace

Установить
ansible-galaxy install ManageIQ/ansible-manageiq-automate
Лицензия
apache-2.0
Загрузки
1281
Владелец
ManageIQ Open-Source Management Platform