xlab_si.nuage_miq_automate

Ansibleロール: nuage_miq_automate

このロールはManageIQの自動化ワークスペースにアクセスし、Nuageの認証情報(変数 nuage_auth)とEMSイベントデータ(変数 event)を提供します。

nuage_auth:
  api_username: user
  api_password: pass
  api_enterprise: csp
  api_url: https://nuagedemo.net:8443
  api_version: v5_0
  • EMSイベントデータ。ここではイベントの詳細にアクセスし、実行したいコールバックに使用します。
event:
  #
  # イベントが発生したEMS ID。
  #
  ems_id: '2'
  #
  # イベントタイプ(`full_data.type`と同じ)。
  #
  type: CREATE
  #
  # イベントが発生したエンティティのタイプ(`full_data.entityType`と同じ)。
  #
  entityType: enterprise
  #
  # イベントが発生したエンティティ(`full_data.entities[0]`と同じ)。
  # 
  entity:
    entity_type: enterprise
    ID: 07f2726a-7f83-4826-87bd-7f7664803938
    name: DEMO3
    # ... その他の属性
  #
  # Nuageサーバーから受け取った全イベントデータ。
  #
  full_data:
    assoicatedEvent: false
    diffMap: 
    enterpriseName: csp
    entities:
    - entityType: enterprise
      ID: 07f2726a-7f83-4826-87bd-7f7664803938
      name: DEMO3
      # ...
    entityType: enterprise
    entityVersion: 
    eventReceivedTime: 1535011120658
    ignoreDiffInMediationEvents: false
    requestID: 62c58aa6-4150-46c7-95fe-ed4051e70864
    sourceEnterpriseID: 07f2726a-7f83-4826-87bd-7f7664803938
    type: CREATE
    updateMechanism: DEFAULT
    userName: xlab

このロールの目的をよりよく理解するには、このブログ記事をご覧ください。また、その使用方法の完全なデモがあるYouTubeビデオもあります。

要件

nuage_miq_automateロールを実行しているあなたの自動化インスタンスに以下の属性を定義する必要があります:

  • nuage_username 例: user
  • nuage_password(暗号化)例: pass
  • nuage_enterprise 例: csp
  • nuage_url 例: https://nuagedemo.net:8443
  • nuage_api_version 例: v5_0

このロールの主な目的は、自動化ワークスペースからこれらの属性を抽出することです。

注: すべての自動化インスタンスでこれらの5つの属性を指定する必要はありません。代わりに、スキーマを修正してデフォルト値を設定することができるため、すべてのクラスのインスタンスがそれらにアクセスできます。この方法では、認証情報が変更された場合、デフォルト値だけを更新すればよいのです。

ロール変数

変数 デフォルト 説明
manageiq / 自動化によって設定されます。
manageiq_connection / 自動化によって設定されます。
manageiq:
  X_MIQ_Group: テナントマイ会社のアクセス
  api_token: 2d5d9031361a6ac570d810406f267cea
  api_url: 'http://localhost:4000'
  automate_workspace: automate_workspaces/82632486-7529-45c6-8fa7-fc53ebbb157d
  group: groups/1
  user: users/1
manageiq_connection:
  X_MIQ_Group: テナントマイ会社のアクセス
  token: 2d5d9031361a6ac570d810406f267cea
  url: 'http://localhost:4000'

ロールの入力について心配する必要はありません。ManageIQの自動化がそれらを提供します。

出力

このロールは次の変数を設定します:

スタット名 説明
nuage_auth Nuageの認証ハッシュ。nuage_vspkモジュールに直接渡すことができます。
event EMSイベントデータ、下記参照。
object 現在の自動化インスタンスの絶対名。
event:
  type:        CREATE
  ems_id:      4
  entity_type: subnet
  full_data:   { ... } # Nuageプロバイダから発信された全イベントデータ
  entity:      { ... } # event['entities'].first

依存関係

このロールは、Ansible Galaxyで利用可能な以下のロールが必要です:

例プレイブック

新しいエンタープライズが作成されるたびにDomainTemplateを作成したいとします。そのためには、次のようにプレイブックをフックすれば簡単です。

- name: Nuageイベントコールバックの例
  hosts: localhost
  connection: local
  gather_facts: False
  roles:
  - xlab_si.nuage_miq_automate
  tasks:
  - debug: msg="私はイベントコールバックとして実行されているプレイブックで、Nuageの認証情報にアクセスできます"
  - debug: var=nuage_auth
  - debug: msg="トリガーされたイベントの詳細にもアクセスできます"
  - debug: var=event
  - debug: msg="これでいくつかの作業を行う準備が整いました!"
  
  - name: エンタープライズ上でドメインテンプレートを作成
    delegate_to: localhost
    nuage_vspk:
      auth: "{{ nuage_auth }}"          # `nuage_auth`をそのまま渡す
      type: DomainTemplate
      parentType: Enterprise
      parentId: "{{ event.entity.ID }}" # `event`変数にアクセス
      state: present
      properties:
        name: "デモドメインテンプレート"

nuage_enterprise_createイベントに対して。タダァ :)

ライセンス

BSD

プロジェクトについて

This role accesses ManageIQ Automation Workspace for you to provide you with Nuage credentials and EMS event data.

インストール
ansible-galaxy install xlab_si.nuage_miq_automate
ライセンス
Unknown
ダウンロード
147
所有者
Research and development company based in Ljubljana, Slovenia.