第3章 自動化管理プロバイダー

Red Hat CloudForms における自動化管理プロバイダーは、CloudForms を統合してリソースの自動化操作を簡素化する管理ツールです。本章は、Red Hat CloudForms で利用可能な自動管理プロバイダーとその連携方法について説明します。

Red Hat CloudForms は、以下により自動化管理機能を提供します。

自動化 では、リアルタイムの双方向のプロセス統合が可能です。自動化では、管理イベントや管理または運用アクティビティー向けの適応型の自動化を実装する手段を提供します。

Ansible の統合により、カスタマイズすることなく、Ansible Playbook を使用してサービス、アラート、ポリシーアクションをバックアップするサポートが追加されました。既存の Playbook のリポジトリーと CloudForms を同期して、プロバイダーにアクセスするための認証情報を追加し、仮想マシンの作成やリタイア、セキュリティーソフトウェアの更新、容量が少なくなった場合のさらなるディスクの追加などのアクション向けのサービスカタログアイテムを作成します。

Ansible Tower は、CloudForms に統合された管理ツールで、お使いのインベントリーで、既存の Ansible Tower プロバイダーを使用してインフラストラクチャーの運用を自動化するために設計されています。CloudForms では、サービスカタログや自動化を使用して Ansible Tower のジョブを実行できます。Ansible Tower を使用すると、Ansible Playbook の実行のスケジュールや、現在または過去の結果の監視が可能で、問題が発生する前に問題のトラブルシューティングや特定が可能になります。

3.1. Ansible

Ansible が Red Hat CloudForms に統合され、Playbook を使用することでサービス、ポリシー、警告アクションの自動化ソリューションが提供されるようになりました。Ansible Playbook は、イベントリーと呼ばれるホスト全体での自動化を定義する一連の プレイ またはタスクで構成されています。

単純なタスクから複雑なタスクまで、Ansible Playbook でクラウド管理をサポートできます。

  • サービス: Playbook で CloudForms のサービスカタログアイテムをバックアップできるようにします。
  • コントロールアクション: CloudForms ポリシーは、プロバイダーからのイベントをベースにしたアクションとして Playbook を実行できます。
  • コントロールアラート: CloudForms アラートの指示できるように Playbook を設定します。

Ansible は、インストールの必要がないように CloudForms に組み込まれています。Red Hat CloudForms で Ansible を使用する際の基本的なワークフローは以下のとおりです。

  1. Embedded Ansible サーバーロールを有効化すること
  2. Playbook が含まれるソースのコントロールリポジトリーを追加すること
  3. インベントリーとの認証情報を確立すること
  4. 利用可能な Playbook を使用して、サービス、アラート、ポリシーをバックアップすること

3.1.1. Embedded Ansible サーバーロールの有効化

Red Hat CloudForms では、Embedded Ansible ロールはデフォルトで無効になっています。Ansible Automation Inside を使用するには、このサーバーロールを有効化します。

注記

CloudForms アプライアンスネットワークのアイデンティティー (ホスト名/IP アドレス) を設定してから、Embedded Ansible サーバーロールを有効にします。ホスト名や IP アドレスに変更を加えてから、有効化した Embedded Ansible サーバーロールを使用して、 アプライアンス上の evmserverd サービスを再起動します。

  1. 設定メニューから 構成設定 を選択します。
  2. ゾーン で任意のサーバーを選択します。
  3. Embedded AnsibleサーバーロールOn に設定します。

3.1.2. Embedded Ansible ワーカーの状態の確認

Embedded Ansible ワーカーが起動してその機能を使用していることを確認します。

  1. 設定メニューから 構成診断 を選択して、任意のサーバーをクリックします。
  2. ワーカー タブをクリックします。

全ワーカーおよび現在の状況の表が表示され、埋め込み Ansible ワーカーの状況を確認できます。

3.1.3. Playbook のリポジトリーの追加

Red Hat CloudForms が Playbook を検出して公開できるようにリポジトリーを追加します。

  1. 自動化Ansibleリポジトリー の順に移動します。
  2. 追加 をクリックします。
  3. 名前 フィールドにリポジトリー名を指定します。
  4. 説明 フィールドにリポジトリーの説明を入力します。
  5. ドロップダウンメニューから SCM タイプ を選択します。
  6. リポジトリーの URL または IP アドレスを追加します。
  7. ドロップダウンメニューから適切な 認証情報 (SCM) を選択します。
  8. SCM ブランチ フィールドでブランチ名を指定します。
  9. SCM Update Options の適切なボックスにチェックを入れます。
  10. 追加 をクリックします。

リポジトリーを同期すると、Playbook は CloudForms で利用できるようになります。

3.1.4. リポジトリーの更新

Red Hat CloudForms は、対象となる Playbook のリポジトリーまたは、インベントリー内の全リポジトリーを更新して、Playbook を最新の状態に保つことができます。

対象のリポジトリーを更新します。

  1. 自動化Ansibleリポジトリー の順に移動します。
  2. リポジトリーをクリックします。
  3. Configuration (構成) をクリックしてから、 Refresh this Repository (Refresh this Repository) をクリックします。

または、一覧からのリポジトリーのすべてまたは一部を更新することができます。

  1. 自動化Ansibleリポジトリー の順に移動します。
  2. 更新するこれらのリポジトリーを確認します。すべてを選択 をクリックして全リポジトリーを選択します。
  3. Configuration (構成)、 Refresh Selected Ansible Repositories (Refresh Selected Ansible Repositories) の順に選択します。

3.1.5. 認証情報の追加

Red Hat CloudForms は、Playbook で使用する認証情報を保存できます。CloudForms に保存されている認証情報は、実行時に Playbook と照合され、実行されます。

重要

CloudForms と VMware プロバイダーが同じ IPv6 のみのネットワークに配置されている場合は、vCenter Host フィールドの VMware プロバイダーに DNS 解決可能なホスト名を使用して、認証情報の追加してください。

  1. 自動化Ansible認証情報 の順に移動します。
  2. Configuration (設定) から Add a New Credential (新規認証情報の追加) をクリックします。
  3. 認証情報に 名前 を指定します。
  4. Credential Type を選択します。選択したタイプによっては、追加のフィールドが表示されます。
  5. 追加 をクリックします。

3.1.6. 認証情報

Red Hat CloudForms は、マシンに対する Ansible Playbook の実行、インベントリーソースとの同期、バージョン管理システムからのプロジェクトコンテンツのインポート時に認証情報を使用して認証します。

3.1.6.1. 認証情報の追加

Red Hat CloudForms は、Playbook で使用する認証情報を保存できます。CloudForms に保存されている認証情報は、実行時に Playbook と照合され、実行されます。

重要

CloudForms と VMware プロバイダーが同じ IPv6 のみのネットワークに配置されている場合は、vCenter Host フィールドの VMware プロバイダーに DNS 解決可能なホスト名を使用して、認証情報の追加してください。

  1. 自動化Ansible認証情報 の順に移動します。
  2. Configuration (設定) から Add a New Credential (新規認証情報の追加) をクリックします。
  3. 認証情報に 名前 を指定します。
  4. Credential Type を選択します。選択したタイプによっては、追加のフィールドが表示されます。
  5. 追加 をクリックします。

3.1.6.2. 認証情報タイプ

以下のセクションで、CloudForms が使用する各認証情報タイプを説明します。

3.1.6.2.1. マシン

マシンの認証情報により、CloudForms は管理対象のホストで Ansible を起動できます。コマンドラインで Ansible を使用するように、SSH ユーザー名や、オプションでパスワードや SSH キー、キーのパスワードを指定できます。これらの情報は ssh および Playbook のユーザーレベルの権限昇格のアクセスを定義し、リモートホストで Playbook を実行時に使用されます。

  • ユーザー名: SSH 認証に使用されるユーザー名。
  • パスワード: SSH 認証に使用される実際のパスワード。
  • SSH 秘密鍵: マシンの認証情報についての SSH 秘密鍵をコピーするか、またはドラッグアンドドロップします。
  • 秘密鍵のパスフレーズ: 使用される SSH 秘密鍵がパスワードで保護される場合、秘密鍵のパスワードを設定できます。
  • 権限昇格: 特定のユーザーに割り当てる、昇格権限タイプを指定します。オプションには sudosupbrunpfexec が含まれます。
  • 権限昇格のユーザー名: リモートシステムで権限昇格で使用するユーザー名を入力します。
  • 権限昇格のパスワード: リモートシステムでの選択した権限昇格タイプでユーザーを認証するために使用される実際のパスワードを入力します。
  • Vault パスワード: Ansible Vault の認証情報には、設定可能な Vault パスワード 属性のみが含まれます。
注記

Ansible Vault についての詳しい情報は、「Using Vault in playbooks」を参照してください。

3.1.6.2.2. ネットワーク

ネットワーク認証情報は、ネットワークデバイスへの接続およびその管理を実行するために Ansible ネットワークモジュールによって使用されます。

ネットワークの認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: ネットワークデバイスと併用するユーザー名。
  • パスワード: ネットワークデバイスと併用するパスワード。
  • 認証: これを「オプション」フィールドから選択して、パスワードで RSA 鍵に署名する認証パスワードを追加します。
  • パスワードの認証: 認証 にチェックが付いている場合は、パスワードの認証 フィールドにパスワードを入力してください。
  • SSH 鍵: ユーザーを SSH 経由でネットワークに対して認証するために使用される実際の SSH 秘密鍵をコピーするか、またはドラッグアンドドロップします。
  • 秘密鍵のパスフレーズ: ユーザーを SSH 経由でネットワークに対して認証するために使用する秘密鍵の実際のパスフレーズ。
3.1.6.2.3. SCM

SCM (ソースコントロール) 認証情報は、ローカルソースコードのリポジトリーを、Git、Subversion、または Mercurial などのリモートのリビジョンコントロールシステムからクローン作成したり、更新したりするためにプロジェクトで使用されます。

ソースコントロールの認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: ソースコントロールシステムと併用するユーザー名。
  • パスワード: ソースコントロールシステムと併用するパスワード。
  • 秘密鍵のパスフレーズ: 使用される SSH 秘密鍵がパスフレーズで保護される場合、その秘密鍵のパスフレーズを設定できます。
  • 秘密鍵: ユーザーを SSH 経由でソースコントロールシステムに対して認証するために使用される実際の SSH 秘密鍵をコピーするか、またはドラッグアンドドロップします。
3.1.6.2.4. Amazon

この認証情報タイプを選択すると、クラウドインベントリーの Amazon Web Services との同期が可能になります。

  • アクセスキー: Amazon Web Service へのプログラム呼び出しを可能にするユーザーの認証情報
  • 秘密鍵: ユーザーのアクセスキーに対応する秘密鍵
  • STS トークン: Amazon Web Services Security Token Service で生成されるトークン
3.1.6.2.5. Azure Classic (非推奨)

この認証情報タイプを選択すると、クラウドインベントリーと Microsoft Windows Azure Classic との同期が可能になります。

Microsoft Azure の認証情報には、設定可能ないくつかの属性があります。

  • サブスクリプション ID: Microsoft Azure Classic アカウントのサブスクリプション UUID。
  • 管理証明書: Microsoft Azure Classic コンソールでアップロードした証明書に対応する PEM ファイル。
3.1.6.2.6. Azure

この認証情報タイプを選択すると、クラウドインベントリーと Microsoft Azure との同期が可能になります。

Microsoft Azure の認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: Microsoft Azure アカウントへの接続に使用するユーザー名。
  • パスワード: Microsoft Azure アカウントへの接続に使用するパスワード。
  • サブスクリプション ID: Microsoft Azure アカウントのサブスクリプション UUID。
  • テナント ID: Microsoft Azure アカウントのテナント ID。
  • クライントシークレット: Microsoft Azure アカウントのクライアントシークレット。
  • クライント ID: Microsoft Azure アカウントのクライント ID。
3.1.6.2.7. Google Compute Engine

この認証情報タイプを選択すると、クラウドインベントリーと Google Compute Engine との同期が可能になります。

Google Compute Engine の認証情報には、設定可能ないくつかの属性があります。

  • サービスアカウントのメールアドレス: Google Compute Engine サービスアカウントに割り当てられるメールアドレス。
  • RSA 秘密鍵: サービスアカウントメールに関連付けられる PEM ファイル。
  • プロジェクト: GCE によって割り当てられる識別情報です。これは、以下のように 2 語とそれに続く 3 桁の数字で構成されます (例: squeamish-ossifrage-123)。
3.1.6.2.8. OpenStack

この認証情報タイプを選択すると、クラウドインベントリーと Red Hat OpenStack との同期が可能になります。

OpenStack の認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: OpenStack への接続に使用するユーザー名。
  • パスワード (API キー): OpenStack に接続するために使用するパスワードまたは API キー
  • ホスト (認証 URL): 認証に使用するホスト。
  • プロジェクト (テナント名): OpenStack に使用されるテナント名またはテナント ID。通常、この値はユーザー名と同じです。
  • ドメイン名: OpenStack への接続に使用する FQDN。
3.1.6.2.9. Rackspace

この認証情報タイプを選択すると、クラウドインベントリーと Rackspace との同期が可能になります。

Rackspace の認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: vCenter への接続に使用するユーザー名。
  • API キー: 管理者 ID に関連する公開鍵
3.1.6.2.10. Satellite 6

この認証情報タイプを選択すると、クラウドインベントリーと Red Hat Satellite 6 との同期が可能になります。

Satellite の認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: Satellite 6 への接続に使用するユーザー名。
  • パスワード: Satellite 6 への接続に使用するパスワード。
  • Satellite 6 ホスト: 接続先の Satellite 6 URL または IP アドレス。
3.1.6.2.11. VMware

この認証情報タイプを選択すると、インベントリーと VMware vCenter との同期が可能になります。

重要

CloudForms と VMware プロバイダーが同じ IPv6 のみのネットワークに配置されている場合は、vCenter Host フィールドの VMware プロバイダーに DNS 解決可能なホスト名を使用して、認証情報の追加してください。

VMware の認証情報には、設定可能ないくつかの属性があります。

  • ユーザー名: vCenter への接続に使用するユーザー名。
  • パスワード: vCenter への接続に使用するパスワード。
  • vCenter ホスト: 接続先の vCenter ホスト名または IP アドレス。
注記

VMware ゲストツールがインスタンスで実行されていない場合、VMware インベントリーの同期により、そのインスタンスの IP アドレスが返されない場合があります。

3.1.7. Red Hat CloudForms 向けの Ansible Playbooks の最適化

Ansible は、単純なモデル駆動型の設定管理、マルチノードデプロイメント、リモートタスク実行に対応するシステムです。CloudForms で使用するために Playbook を設計すると、Playbook 自体でソリューションを活用して、Playbook でサポートされるサービスや自動化プロセスを最適に実装するのに便利です。

このセクションでは、Ansible Playbook に関する既存のドキュメントを補完するもので、管理者に対して CloudForms で使用するために Playbook を最適化する方法について説明します。

3.1.7.1. Embedded Ansible アプライアンスでのロールのインストール

ロールとは、既知のファイル構造をもとに、特定の変数ファイル、タスク、ハンドラーを自動的に読み込む手段のことです。ロール別にコンテンツをグループ化すると、他のユーザーとロールを簡単に共有することができます。Playbook を最適化するためにアクティブ化された Embedded Ansible サーバーロールで、Red Hat CloudForms アプライアンスにロールをインストールします。

CloudForms アプライアンス上の Playbook でこのロールを使用する場合には、Playbook の root に空の roles ディレクトリーを追加します。この roles ディレクトリーに、以下の内容を含む requirements.yml ファイルを追加してください。

---
- src: <ansible-galaxy-role>

CloudForms は、Playbook 内で requirements.yml ファイルを検出すると、このロールを自動的にインストールします。

3.1.7.2. Ansible サービスのリンク

Red Hat CloudForms は、Ansible Playbook を使用して作成した仮想マシンなどのインベントリーリソースが、リソースの生成に使用したサービスにリンクできるように、モジュールを提供します。Playbook のサービスオーダー中に、add_provider_vms モジュールにより、Playbook がワーカーアプライアンスに接続し直されて、生成を行ったプロバイダーリソースを特定します。リンクが済むと、新たに生成されたリソースはが CloudForms のライフサイクル管理機能で利用できるようになります。

作成したサービスに、仮想マシンをリンクし直すには、プロビジョニングに使用した Playbook で以下のタスクを実装する必要があります。

  1. リソースを作成して、そのリソースを登録する
  2. add_provider_vms メソッドを使用してサービスを新規作成したリソースにリンクする
3.1.7.2.1. 例: 仮想マシンのサービスへのリンク

以下の Playbook のタスクの例では、仮想マシンが Amazon EC2 にデプロイされて、サービスにリンクし直されます。リソースとサービスを href slug や、オブジェクトとしてリンクする例を紹介します。

注記
  • この例では、`syncrou.manageiq-vmdb` ロールを使用します。このロールを使用すると、CloudForms ユーザーがAnsible Playbook を使用して VMDB オブジェクトを変更、修正することができます。CloudForms 向けに Ansible Playbook を記述する場合のロールの実装や使用に関する詳しい情報は、「Embedded Ansible アプライアンスでのロールのインストール」を参照してください。
  • Ansible Galaxy およびロールに関する詳細情報は、「Ansible Galaxy documentation」を参照してください。
  • サービスを正しくリンクできるように、プロバイダー ID をメモしてください。
  1. リソースを作成して、登録します。

    - name: Create Ec2 Instance
      ec2:
        key_name: "{{ key }}"
        instance_tags: {Name: "{{ name }}"}
        group_id: "{{ security_group }}"
        instance_type: "{{ instance_type }}"
        region: "{{ region }}"
        image: "{{ image }}"
        wait: yes
        count: 1
        vpc_subnet_id: "{{ subnet }}"
        assign_public_ip: yes
      register: ec2
  2. add_provider_vms メソッドを、href slug またはオブジェクト経由でサービスにリンクするアクションとして呼び出します。

    - name: Service Linking via an href slug
      manageiq_vmdb:
        href: "href_slug::services/80"
        action: add_provider_vms
        data:
          uid_ems:
            - "{{ ec2.instances[0].id }}"
          provider:
            id: 24
    
    - name: Service Linking via an object
      manageiq_vmdb:
        vmdb: "{{ vmdb_object }}"
        action: add_provider_vms
        data:
          uid_ems:
            - "{{ ec2.instances[0].id }}"
          provider:
            id: 24

3.1.7.3. manageiq-automate ロールを使用した自動化ワークスペースの変更

manageiq-automate ロールは、Red Hat CloudForms の自動化を使用するユーザーが Ansible Playbook を使用して自動化ワークスペースに変更、追加を加えることができます。

注記

Embedded Ansible がアクティブ化された Red Hat CloudForms アプライアンス上の Playbook でこのロールを使用する場合には、Playbook の root に空の roles ディレクトリーを追加します。この roles ディレクトリーに、以下の内容を含む requirements.yml ファイルを追加してください。

---
- src: syncrou.manageiq-automate

CloudForms は、Playbook 内で requirements.yml ファイルを検出すると、このロールを自動的にインストールします。

3.1.7.3.1. ロールの変数

manageiq_automate ロールは、CloudForms アプライアンスでの Playbook 実行を実装する時に、以下の変数を採用します。変数は defaults/main.ymlvars/main.yml に定義されます。

auto_commit: デフォルトでは True に設定されています。False に設定すると、manageiq_automate モジュールの set_ メソッドへの CloudForms の各呼び出しに自動的にコミットされなくなります。

manageiq_validate_certs: デフォルトでは True に設定されていあす。extra_vars で渡される場合や Playbook の変数に割り当てる場合には、SSL REST API 接続の URL の使用時に自己署名の証明書を検索に使用することができます。

3.1.7.3.2. Playbook の例

以下の例では manageiq-automate ロールを使用します。変数置換を使用する場合は、Playbook のタスクはメソッドパラメーターを取得して、オブジェクト属性を変更するために使用されます。最終的なタスクでは、set_retry モジュールを使用して、再試行の間隔を更新します。

- name: Siphon Method Parameters into an object
  hosts: localhost
  connection: local
  vars:
  - auto_commit: True
  - object: root
  - interval: 600

  gather_facts: False
  roles:
  - syncrou.manageiq-automate

  tasks:
    - name: "Get the list of Method Parameters"
      manageiq_automate:
        workspace: "{{ workspace }}"
        get_method_parameters: yes
      register: method_params

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

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

3.2. Ansible Tower

Ansible Tower は、Red Hat CloudForms に統合された管理ツールで、インフラストラクチャーの運用の自動化を支援するために設計されています。Red Hat CloudForms では、サービスカタログと自動化を使用して Ansible Tower のジョブを実行することができます。設定は、Playbook を使用して Ansible Tower 内で行われるので、Red Hat CloudForms ではカスタムの設定や Ruby のスクリプトは必要ありません。

既存の Ansible Playbook の大型のライブラリーを Red Hat CloudForms のステートマシンとして使用すると、Red Hat CloudForms 環境におけるバックアップやパッケージの更新、メンテナンスなどのタスクを自動化することができます。これには、Red Hat Satellite エージェントを必要に応じてベアメタルマシン上にデプロイする操作も含まれます。これは、特に多数の仮想マシンやインスタンスのある大型環境全体に変更を迅速に適用するのに特に役立ちます。Ansible Tower を使用すると、Ansible Playbook の実行をスケジュールして、現在および過去の結果をモニタリングし、トラブルシューティングを行ったり、問題が発生する前に特定することができます。

Red Hat CloudForms を Ansible Tower プロバイダーとともに使用する場合の基本ワークフローは以下のとおりです。

  1. 特定のタスクを実行する Ansible Playbook を作成します。
  2. 新しい Ansible Tower ジョブテンプレートは、Playbook から作成され、Red Hat CloudForms によって取得されます。
  3. Ansible Tower ジョブテンプレートから、Red Hat CloudForms の新規カタログ項目を作成します。また、オプションとして、ユーザーが必要に応じてパラメーターを入力することができるサービスダイアログを作成します。
  4. ユーザーは Red Hat CloudForms のユーザーインターフェースからサービスをオーダーして、追加の引数 (例: 特定の仮想マシンセットで実行するタスクを制限するなど) を記入します。
  5. ジョブが実行されます。
注記

Ansible Playbook についての詳しい情報は、Ansible Playbook のドキュメント を参照してください。

3.2.1. Ansible Tower プロバイダーの追加

Red Hat CloudForms から Ansible Tower インベントリーにアクセスするには、Ansible Tower をプロバイダーとして追加する必要があります。

  1. 自動化Ansible Towerエクスプローラー の順に移動し、プロバイダー アコーディオンタブをクリックします。
  2. Configuration 構成Add a new Provider 新規プロバイダーの追加 をクリックします。
  3. 新規プロバイダーの追加 エリアで以下を行います。

    Add_Ansible_Provider

    1. 新規プロバイダーの 名前 を入力します。
    2. プロバイダーの ゾーン を入力します。
    3. Ansible Tower サーバーの URL ロケーションまたは IP アドレスを入力します。
  4. 必要な場合には、ピア証明書の検証 のチェックボックスを選択します。
  5. 認証情報 のセクションで ユーザー名パスワードパスワードの確認 のフィールドに入力します。
  6. 検証 をクリックして認証情報を検証します。
  7. 追加 をクリックします。

Ansible Tower プロバイダーを追加した後には、リレーションシップと電源状態を更新して、現在のインベントリーが表示されるようにします。

3.2.2. Ansible Tower プロバイダーの更新

インベントリー、ホスト、仮想マシン、クラスターを含む既存の Ansible Tower の構成管理プロバイダーに関連した全項目のリレーションシップを更新します。

Red Hat CloudForms からインベントリーを更新するか、Ansible Tower 内のインベントリーグループの Update on Launch オプションを有効にします。Update on Launch オプションにより、Playbook から Ansible Tower ジョブを起動する前に、動的インベントリースクリプトを使用して Ansible Tower は自動的にインベントリーを更新することができます。詳しくは、Ansible Tower のドキュメント を参照してください。

重要

多数の仮想マシンまたはインスタンスがあるプロバイダーから情報を取得するには長時間かかる場合があります。Ansible Tower の動的インベントリースクリプトを編集して、更新を特定の項目に限定して、更新時間を短縮することが可能です。

Red Hat CloudForms で Ansible Tower プロバイダーのインベントリーを更新するには、以下のステップを実行します。

  1. 自動化Ansible Towerエクスプローラー の順に移動し、プロバイダー アコーディオンタブをクリックします。
  2. すべての Ansible Tower プロバイダー で更新する Ansible Tower プロバイダーのチェックボックスを選択します。
  3. Configuration (構成) をクリックして、 Refresh Relationships and Power States (リレーションシップと電源状態の更新) を選択します。
  4. OK をクリックします。

Red Hat CloudForms は次に Ansible Tower API に対してクエリーを実行し、利用可能なホストとジョブテンプレートのインベントリーを取得します。

3.2.3. Ansible Tower プロバイダーとインベントリーの表示

Red Hat CloudForms は、Ansible Tower からインベントリーを自動的に更新します。これには、システムグループ (Ansible Tower 内のインベントリー)、個々のシステムに関する基本情報、サービスカタログまたは自動化から実行される、利用可能な Ansible Tower ジョブテンプレートが含まれます。

注記

Red Hat CloudForms で Ansible Tower のインベントリーとジョブテンプレートを表示およびアクセスするには、まず最初にそれらを Ansible Tower で作成する必要があります。

Ansible Tower プロバイダーとインベントリーの一覧を表示するには、以下のステップを実行します。

  1. 自動化Ansible Towerエクスプローラー の順に移動します。
  2. プロバイダー アコーディオンメニューを選択して すべての Ansible Tower プロバイダー の一覧を表示します。
  3. お使いの Ansible Tower プロバイダーを選択して、その Ansible Tower システム上にあるインベントリーグループを展開し、一覧表示します。インベントリーグループを展開すると、各グループに含まれるシステムと、それらのシステムの構成についての詳細情報が表示されます。

同様に、検出されたジョブテンプレートには、自動化Ansible Towerエクスプローラージョブテンプレート アコーディオンメニューを展開し、プロバイダーの下からアクセスできます。

3.2.4. Ansible Tower 構成済みシステム

Ansible Tower のインベントリーを表示するには、以下のステップを実行します。

  1. 自動化Ansible Towerエクスプローラー構成済みシステム の順に移動します。
  2. すべての Ansible Tower 構成済みシステムAnsible Tower 構成済みシステム を選択して一覧を表示します。

3.2.5. サービスカタログからの Ansible Tower ジョブテンプレートの実行

Ansible Tower ジョブテンプレートからサービスカタログ項目を作成して、Red Hat CloudForms から Ansible Tower Playbook を実行することができます。

重要

まず最初に、Ansible Tower でジョブテンプレートを作成する必要があります。作成したテンプレートは、Ansible Tower プロバイダーのインベントリーを更新すると、Red Hat CloudForms によって自動的に検出されます。

最初にカタログを作成します。

  1. サービスカタログ に移動します。
  2. Configuration (構成) をクリックして、 Add a New Catalog (新規カタログの追加) を選択します。
  3. カタログの 名前説明 を入力します。
  4. 追加 をクリックします。

次に Ansible Tower サービスカタログ項目を作成します。

  1. 自動化Ansible Towerジョブ の順に移動します。
  2. Ansible Tower ジョブテンプレート をクリックして Ansible Tower Job テンプレートを選択します。
  3. Configuration (構成) をクリックして、 Create Service Dialog from this Job Template (このジョブテンプレートからサービスダイアログを作成する) を選択します。
  4. サービスダイアログ名 (例: ansible_tower_job など) を入力して 保存 をクリックします。
  5. サービスカタログ に移動して、カタログ項目 をクリックします。
  6. Configuration (構成) をクリックして Add a New Catalog Item (新規カタログ項目の追加 ) を選択し、少なくとも以下の情報を指定して新規カタログ項目を作成します。

    • カタログ項目タイプ には Ansible Tower を選択します。
    • サービスカタログ項目の 名前 を入力します。
    • カタログ内に表示 を選択します。
    • カタログ で、以前に作成したカタログを選択します。
    • ダイアログ で以前に作成したサービスダイアログ (この例では ansible_tower_job) を選択します。Playbook にユーザーからの追加のパラメーターが必要ない場合には、ダイアログなし を選択することが可能です。タスク実行時にユーザーに追加の情報の入力を要求するには、サービスダイアログ を選択する必要があります。
    • プロバイダー でお使いの Ansible Tower プロバイダーを選択すると、Ansible Tower ジョブテンプレート オプションが表示され、プロビジョニングのエントリーポイントのステートマシン が自動的に設定されます。
    • 該当する場合には エントリーポイントの再設定 および リタイアのエントリーポイント の設定情報を追加します。
    • 一覧から必要な Ansible Tower ジョブテンプレート を選択します。通常、これには、サービスダイアログの作成に使用した Ansible Tower Job テンプレートを選択します。

      Add AT Service Catalog Item

  7. 追加 をクリックします。作成したカタログ項目が 全サービスカタログ項目 の一覧に表示されます。

Ansible Tower Job を実行するには、以下のステップを実行します。

  1. サービスカタログAnsible Tower カタログ に移動します。

    Order AT Catalog Item

  2. カタログアイテムの オーダー をクリックします。
  3. 要求するパラメーターを入力して 送信 をクリックします。

Red Hat CloudForms の 要求 キューのページが開き、ジョブのステータスが表示されます。

サービス項目の詳細は、Red Hat CloudForms の サービスマイサービス で確認することができます。

注記

1 回ごとに単一のジョブを実行する代わりに、複数のサービスカタログ項目をカタログバンドルとしてグループ化して、複数のジョブテンプレートを使用する単一のデプロイメントを作成することができます。詳しい情報は、『仮想マシンとホストのプロビジョニング』「カタログとサービス」を参照してください。

3.2.6. カスタムの自動化ボタンを使用した Ansible Tower Job の実行

Red Hat CloudForms では、自動化のカスタムボタンを使用して、Ansible Tower のジョブを仮想マシンまたはインスタンスで実行することができます。

Ansible Tower のジョブは、ユーザーによる追加の設定を必要としないようにカスタマイズ不可とするか、ユーザーがパラメーター (例: インストールするパッケージ名など) を指定できるようにすることができます。ダイアログが含まれている Ansible Tower のジョブでは、Red Hat CloudForms はユーザーからの追加情報を受け入れ、自動化で適切な API コールに追加してから、Ansible Tower に送信します。

前提条件

Ansible Tower Job を実行する自動化ボタンを作成する前に、以下の項目を設定する必要があります。

  • Ansible Tower 内の Ansible Playbook。手順については、Ansible Tower documentation を参照してください。
  • Ansible Tower は、Red Hat CloudForms でデプロイされた仮想マシンまたはインスタンスに IP レベルで接続できる必要があります。
  • 仮想マシンテンプレートには、Ansible Tower 環境のパブリック SSH キーを注入する必要があります。クラウドインスタンスの場合には、cloud-init を使用可能で、イメージを再ビルドせずにパブリック SSH キーを渡すことができます。
  • 使用する動的インベントリースクリプトは、UUID を追記せずに、Red Hat CloudForms で保管されている通りの仮想マシン名を返すように設定する必要があります。

カスタムの自動化ボタンを使用した Ansible Tower ジョブの実行

仮想マシンまたはインスタンス上で Ansible Tower ジョブを実行するためのカスタムボタンを設定するには、まず最初にボタンを作成します。

  1. 自動化自動化カスタマイズ の順に移動します。
  2. ボタン のアコーディオンメニューをクリックします。
  3. 仮想マシンおよびインスタンス未割り当てボタン をクリックして、仮想マシンまたはインスタンス上で実行するボタンを設定します。
  4. 1847 (構成) をクリックして 1862 (新規ボタンの追加) を選択します。

    • 新規ボタンの追加 の画面で、必要に応じて アクション パラメーターを設定します。Playbook で追加のパラメーターが必要ない場合には、ダイアログ を空白のままにすることができます。タスクの実行時にユーザーが追加の情報を入力するように要求するには、サービスダイアログ を選択する必要があります。
    • オブジェクト詳細 フィールドに以下にあげる要求の詳細を設定します。

      • システム/プロセス には、要求 を選択します。
      • メッセージ には 作成 を入力します。
      • 要求 には、Ansible_Tower_Job と入力します。
    • 属性と値のペア は、次のパラメーターで設定します。

      • job_template_name には、ボタンに関連付ける Ansible Tower ジョブテンプレート名を指定します。job_template_name フィールドは必須です。その他のパラメーターは Tower のジョブダイアログで指定します。
    • 全ユーザーに対して 可視性 を設定するか、必要に応じてロール別に可視性を制限します。

      Add button

    • 追加 をクリックします。

新規ボタンを割り当てる既存のボタングループがない場合には、新しいボタングループを作成します。

  1. 自動化自動化カスタマイズ から ボタン仮想マシンおよびインスタンス新規ボタングループの追加 に移動し、以下の設定を行います。

    • 必要に応じて 基本情報 を設定します。たとえば、ボタングループの名前を VM Actions に指定します。
    • ボタンの割り当て で、前のステップで作成したボタンを 未割り当て の一覧から選択し、 1876 をクリックして 選択内容 に移動します。

      Create button group

    • 追加 をクリックします。

ボタンを既存のボタングループに割り当てるには、以下のステップを実行します。

  1. ボタン仮想マシンおよびインスタンスVM Actionsこのボタングループの編集 に移動します。
  2. ボタンの割り当て で、前のステップで作成したボタンを 未割り当て の一覧から選択し、 1876 をクリックして 選択内容 に移動します。
  3. 追加 をクリックします。

ボタンを使用して Ansible Tower のジョブを仮想マシンで実行するには、以下のステップに実行します。

  1. コンピュートインフラストラクチャー仮想マシン に移動します。
  2. Ansible Tower ジョブテンプレートを実行する仮想マシンを選択します。
  3. VM Actions ボタンをクリックして、作成したボタンを表示します。一覧から、Ansible Tower ジョブテンプレートを実行するためのボタンをクリックします。

    Run Update Button

  4. 送信 をクリックしてジョブを実行します。

Red Hat CloudForms はジョブが実行されたことを確認するメッセージを表示します。

ボタンの作成時にサービスダイアログを選択した場合には、Red Hat CloudForms はタスクを完了するためのパラメーターを入力するように要求します。必要なパラメーターを入力した後には、Red Hat CloudForms で 要求 のページが表示されます。

サービス項目の詳細は、Red Hat CloudForms の サービスマイサービス で確認することができます。