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

À propos du projet

Ansible role to modify the ManageIQ automate workspace

Installer
ansible-galaxy install manageiq.manageiq_automate
Licence
apache-2.0
Téléchargements
3k
Propriétaire
ManageIQ Open-Source Management Platform