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-galaxy install ManageIQ/ansible-manageiq-automate