manageiq.manageiq_automate
manageiq.manageiq_automate
https://galaxy.ansible.com/manageiq/manageiq_automate
Le rôle manageiq_automate
permet aux utilisateurs de ManageIQ Automate de modifier et d'ajouter au Workspace Automate via un Playbook Ansible. Ce rôle inclut un module manageiq_automate
qui s'occupe de toutes les opérations nécessaires pour modifier ou changer le Workspace Automate.
Exigences
ManageIQ doit être la version Gaprindashvili ou supérieure.
L'exemple de Playbook utilise le module manageiq_automate
, qui est également inclus dans ce rôle.
Si vous avez besoin d'inclure ce Rôle dans Ansible Tower ou Embedded Ansible, il suffit d'ajouter un répertoire roles
vide à la racine de votre Playbook et d'inclure un fichier requirements.yml
avec les contenus suivants dans ce répertoire :
---
- source: manageiq.manageiq_automate
version: v0.1.3
Variables de Rôle
Auto Commit :
auto_commit
est par défaut True
dans defaults/main.yml
. S'il est défini sur False
, il ne s'engagera pas automatiquement à ManageIQ à chaque appel d'une méthode set_
dans le module manageiq_automate
.
Validation des Certificats :
manageiq_validate_certs
est par défaut True
. S'il est défini sur False
dans le dictionnaire manageiq_connection
ou passé via extra_vars
ou assigné dans les variables du Playbook, alors la recherche permettra d'utiliser des certificats auto-signés lors de la connexion via des URLs REST API SSL.
ManageIQ :
manageiq_connection
est un dictionnaire avec les clés par défaut de connexion. Utiliser ces informations de connexion est UNIQUEMENT nécessaire si le rôle est utilisé en dehors d'un appareil ManageIQ. Un appareil ManageIQ passe manageiq_connection
via extra_vars
, donc les informations de connexion sont incluses automatiquement. N'oubliez pas d'utiliser Ansible Vault pour les mots de passe. automate_workspace
est le slug href et le guid requis pour communiquer avec le Workspace Automate.
manageiq_connection:
url: 'http://localhost:3000'
username: 'admin'
password: 'password'
automate_workspace: 'automate_workspaces/1234'
manageiq_validate_certs: false
Workspace :
workspace
est instancié via tasks/main.yml
. La version actuelle du workspace est modifiée via les méthodes dans le module manageiq_automate
.
Dépendances
Aucune
Exemple de Playbook
Un exemple détaillé avec des chaînes manuelles passées à chaque méthode du module manageiq_automate
.
- name: Modifier le Workspace Automate
hosts: localhost
connection: local
gather_facts: False
vars:
- auto_commit: True
# Nécessaire uniquement si ce Playbook N'EST PAS exécuté sur un appareil 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: "Vérifier un attribut"
manageiq_automate:
workspace: "{{ workspace }}"
attribute_exists:
object: "/ManageIQ/System/Request/call_instance"
attribute: "::miq::parent"
- name: "Obtenir un attribut"
manageiq_automate:
workspace: "{{ workspace }}"
get_attribute:
object: "/ManageIQ/System/Request/call_instance"
attribute: "::miq::parent"
- name: "Vérifier une variable d'état"
manageiq_automate:
workspace: "{{ workspace }}"
state_var_exists:
attribute: "task_id"
- name: "Obtenir une variable d'état"
manageiq_automate:
workspace: "{{ workspace }}"
get_state_var:
attribute: "task_id"
- name: "Définir une variable d'état"
manageiq_automate:
workspace: "{{ workspace }}"
set_state_var:
attribute: "job_id"
value: "xyz"
register: workspace
- name: "Vérifier un paramètre de méthode"
manageiq_automate:
workspace: "{{ workspace }}"
method_parameter_exists:
parameter: "task_id"
- name: "Obtenir un paramètre de méthode"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameter:
parameter: "invoice"
- name: "Obtenir la liste complète des objets"
manageiq_automate:
workspace: "{{ workspace }}"
get_object_names: yes
- name: "Obtenir la liste des paramètres de méthode"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameters: yes
register: method_params
- name: "Obtenir la liste des variables d'état"
manageiq_automate:
workspace: "{{ workspace }}"
get_state_var_names: yes
- name: "Obtenir la liste complète des noms d'attributs d'objet"
manageiq_automate:
workspace: "{{ workspace }}"
get_object_attribute_names:
object: "root"
- name: "Définir un attribut"
manageiq_automate:
workspace: "{{ workspace }}"
set_attribute:
object: "root"
attribute: "my_name"
value: "jim"
register: workspace
- name: "Définir des attributs"
manageiq_automate:
workspace: "{{ workspace }}"
set_attributes:
object: "root"
attributes:
family_name: "timmer"
eldest_son: "reed"
youngest_son: "olaf"
register: workspace
- name: Décrypter un attribut d'un objet
manageiq_automate:
workspace: "{{ workspace }}"
get_decrypted_attribute:
object: root
attribute: fred
register: decrypted_attribute
- debug: msg=decrypted_attribute
- name: Décrypter un paramètre_de_méthode d'un objet
manageiq_automate:
workspace: "{{ workspace }}"
get_decrypted_method_parameter:
attribute: fred
- name: Chiffrer un attribut d'objet
manageiq_automate:
workspace: "{{ workspace }}"
set_encrypted_attribute:
object: root
attribute: freddy
value: 'smartvm'
- name: Obtenir un objet vmdb
manageiq_automate:
workspace: "{{ workspace }}"
get_vmdb_object:
object: root
attribute: miq_group
Un exemple utilisant la substitution de variables pour modifier certains attributs d'objet avec les method_parameters
passés et changer le retry.
- name: Siphonner les Paramètres de Méthode dans un objet
hosts: localhost
connection: local
vars:
- auto_commit: True
- object: root
- interval: 600
# Nécessaire uniquement si ce Playbook N'EST PAS exécuté sur un appareil 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: "Obtenir la liste des paramètres de méthode"
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameters: yes
register: method_params
- name: "Définir des attributs"
manageiq_automate:
workspace: "{{ workspace }}"
set_attributes:
object: "{{ object }}"
attributes: "{{ method_params.value }}"
- name: Définir le Retry
manageiq_automate:
workspace: "{{ workspace }}"
set_retry:
interval: "{{ interval }}"
Licence
Apache
Ansible role to modify the ManageIQ automate workspace
ansible-galaxy install manageiq.manageiq_automate