manageiq.manageiq_automate

manageiq.manageiq_automate

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

Rola manageiq_automate pozwala użytkownikom ManageIQ Automate na modyfikowanie i dodawanie do Automate Workspace za pomocą playbooka Ansible. Rola ta zawiera moduł manageiq_automate, który wykonuje wszystkie niezbędne operacje potrzebne do modyfikacji lub zmiany Automate Workspace.

Wymagania

ManageIQ musi być w wersji Gaprindashvili lub wyższej.

Przykładowy playbook korzysta z modułu manageiq_automate, który jest również częścią tej roli.

Jeśli chcesz użyć tej roli w Ansible Tower lub Embedded Ansible, wystarczy dodać pusty katalog roles w głównym folderze swojego playbooka oraz dołączyć plik requirements.yml z następującą zawartością:

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

Zmienne Roli

Auto Commit:

  • auto_commit domyślnie ma wartość True w defaults/main.yml.
  • Jeśli ustawisz ją na False, nie będzie automatycznie zatwierdzać zmian do ManageIQ przy każdym wywołaniu metody set_ w module manageiq_automate.

Weryfikacja Certyfikatów:

  • manageiq_validate_certs domyślnie ma wartość True.
  • Jeśli ustawisz ją na False w słowniku manageiq_connection lub przekażesz przez extra_vars, wtedy operacje API przy użyciu SSL będą mogły korzystać z certyfikatów samopodpisanych.

ManageIQ:

  • manageiq_connection to słownik z domyślnymi kluczami połączenia.
  • Informacje o połączeniu są potrzebne tylko wtedy, gdy rola jest używana poza urządzeniem ManageIQ.
  • W urządzeniu ManageIQ, manageiq_connection jest przekazywane przez extra_vars, więc informacje o połączeniu są dodawane automatycznie.
  • Pamiętaj, aby używać Ansible Vault do haseł.
  • automate_workspace to adres URL slug i GUID potrzebny do komunikacji z Automate Workspace.
    manageiq_connection:
        url: 'http://localhost:3000'
        username: 'admin'
        password: 'password'
        automate_workspace: 'automate_workspaces/1234'
        manageiq_validate_certs: false

Workspace:

  • workspace jest tworzony w tasks/main.yml.
  • Obecna wersja workspace jest zmieniana przy użyciu metod w module manageiq_automate.

Zależności

Brak

Przykładowy Playbook

Rozbudowany przykład z ręcznie wprowadzonymi danymi do każdej metody modułu manageiq_automate.

- name: Modyfikuj Automate Workspace
  hosts: localhost
  connection: local

  gather_facts: False
  vars:
  - auto_commit: True
  # Tylko gdy ten playbook NIE jest uruchamiany na urządzeniu 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: "Sprawdź atrybut"
      manageiq_automate:
        workspace: "{{ workspace }}"
        attribute_exists:
          object: "/ManageIQ/System/Request/call_instance"
          attribute: "::miq::parent"

    - name: "Pobierz atrybut"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_attribute: object: "/ManageIQ/System/Request/call_instance"
          attribute: "::miq::parent"

    - name: "Sprawdź state_var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        state_var_exists:
          attribute: "task_id"

    - name: "Pobierz state_var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_state_var:
          attribute: "task_id"

    - name: "Ustaw state_var"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_state_var:
          attribute: "job_id"
          value: "xyz"
      register: workspace

    - name: "Sprawdź parametr metody"
      manageiq_automate:
        workspace: "{{ workspace }}"
        method_parameter_exists:
          parameter: "task_id"

    - name: "Pobierz parametr metody"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameter:
          parameter: "invoice"

    - name: "Pobierz pełną listę obiektów"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_object_names: yes

    - name: "Pobierz listę parametrów metody"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameters: yes
      register: method_params

    - name: "Pobierz listę state_vars"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_state_var_names: yes

    - name: "Pobierz pełną listę nazw atrybutów obiektu"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_object_attribute_names:
          object: "root"

    - name: "Ustaw atrybut"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attribute:
          object: "root"
          attribute: "my_name"
          value: "jim"
      register: workspace

    - name: "Ustaw atrybuty"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attributes:
          object: "root"
          attributes:
            family_name: "timmer"
            eldest_son: "reed"
            youngest_son: "olaf"
      register: workspace

    - name: "Odszyfruj atrybut z obiektu"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_decrypted_attribute:
          object: root
          attribute: fred
      register: decrypted_attribute

    - debug: msg=decrypted_attribute

    - name: "Odszyfruj parametr metody z obiektu"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_decrypted_method_parameter:
          attribute: fred

    - name: "Szyfruj atrybut obiektu"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_encrypted_attribute:
          object: root
          attribute: freddy
          value: 'smartvm'

    - name: "Pobierz obiekt vmdb"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_vmdb_object:
          object: root
          attribute: miq_group

Przykład używający substytucji zmiennych do modyfikacji niektórych atrybutów obiektu oraz zmiany interwału.

- name: Przenieś parametry metody do obiektu
  hosts: localhost
  connection: local
  vars:
  - auto_commit: True
  - object: root
  - interval: 600
  # Tylko gdy ten playbook NIE jest uruchamiany na urządzeniu 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: "Pobierz listę parametrów metody"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameters: yes
      register: method_params

    - name: "Ustaw atrybuty"
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_attributes:
          object: "{{ object }}"
          attributes: "{{ method_params.value }}"

    - name: Ustaw Retry
      manageiq_automate:
        workspace: "{{ workspace }}"
        set_retry:
          interval: "{{ interval }}"

Licencja

Apache

O projekcie

Ansible role to modify the ManageIQ automate workspace

Zainstaluj
ansible-galaxy install manageiq.manageiq_automate
Licencja
apache-2.0
Pobrania
3k
Właściciel
ManageIQ Open-Source Management Platform