3 リソースの管理

この章では、リソースの管理について説明します。リソースは、Oracle Linux Automation Managerとプレイブックおよびインベントリの間の主要な構成タッチ・ポイントです。これらのリソースは、プロジェクト、インベントリ、資格証明、ジョブ・テンプレートおよびワークフロー・テンプレートです。

プロジェクトの管理

プロジェクトは、Oracle Linux Automation Engineプレイブックのリポジトリを表すリソースです。リポジトリは、ローカルにすることも、Gitなどのリモートのソース・コード管理(SCM)システム上にすることもできます。

プロジェクトを作成するには、次を実行します。

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. ナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、プロジェクトをクリックします。

    「プロジェクト」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規プロジェクトの作成ページが表示されます。

  5. 「名前」フィールドに、名前を入力します。たとえば、Project1などです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

    プロジェクトにAnsibleコレクションの要件がある場合は、次のオプションを1つ以上使用できる組織を選択する必要があります:

    • 実行時のリポジトリからのコレクションのダウンロード

      このオプションを使用するには、コレクションのダウンロード元のリポジトリごとに資格証明が設定されている組織を選択する必要があります。詳細は、「Ansible Galaxy/Automation Hub APIトークン資格証明の設定」を参照してください。

    • Private Automation Hubでホストされるカスタム実行環境の利用

      このオプションを使用するには、実行可能コレクションを含むPrivate Automation Hubカスタム実行環境をイメージ・プロパティが参照する実行環境を持つ組織を選択する必要があります。

    組織リストから、組織を選択します。

  7. 選択をクリックします。

  8. ソース・コントロール資格証明タイプ・リストから、次のいずれかを選択します:
    • マニュアル:

      マニュアル・オプションを選択すると、Oracle Linux Automation Managerをホストするマシン上にあるローカル・プレイブックを選択できます。プレイブック・ディレクトリというラベルのドロップダウン・リストから、プレイブックを選択します。

      詳細は、「ローカル・プレイブックへのアクセス」を参照してください。

    • Git:

      Gitオプションを使用すると、リモート・リポジトリのプレイブックを使用できます。いずれかのオプションを選択すると、ソース・コントロール・フィールドが表示され、これに入力することで、選択したリモート・リポジトリにアクセスできるようになります。

      たとえば、ソース詳細および資格証明の設定の詳細は、「Git上のリモート・プレイブックへのアクセス」を参照してください。

    • Subversion:

      Subversionオプションを使用すると、リモート・リポジトリのプレイブックを使用できます。いずれかのオプションを選択すると、ソース・コントロール・フィールドが表示され、これに入力することで、選択したリモート・リポジトリにアクセスできるようになります。

    • リモート・アーカイブ:

      リモート・アーカイブ・オプションを使用すると、リモート・アーカイブのプレイブックを使用できます。いずれかのオプションを選択すると、ソース・コントロール・フィールドが表示され、これに入力することで、選択したリモート・リポジトリにアクセスできるようになります。

  9. 保存をクリックします。

ローカル・プレイブックへのアクセス

ローカル・プレイブックをOracle Linux Automation Managerのインスタンスにアクセスできるようにするには、必要な管理権限があることを確認し、次のステップを実行します:

  1. Oracle Linux Automation Managerをホストしているサーバーにログオンします。
  2. プレイブックを格納するディレクトリを作成します。デフォルトの場所は/var/lib/ol-automation-manager/projectsです。

    ノート:

    Oracle Linux Automation Managerでは、プロジェクト・ベース・パスを/var/lib/ol-automation-manager/projectsではなく、/var/lib/awx/projectsとして表示します。両者の場所は同じで、/var/lib/awx/var/lib/ol-automation-managerへのシンボリック・リンクです。
  3. ディレクトリにプレイブック・ファイルをコピーまたは作成します。サンプル・プレイブックについては、/var/lib/ol-automation-manager/projects/demo_bundledを参照してください。

  4. Oracle Linux Automation Managerで使用するものと同じユーザー、グループおよび権限にプレイブックのディレクトリとファイルを設定します。

    ノート:

    プロジェクト・パスの追加中に問題が発生する場合は、SELinux権限およびコンテキスト設定を確認してください。

Git上のリモート・プレイブックへのアクセス

Gitは、分散型バージョン管理システムであり、これに含まれるリポジトリには、プロジェクトの一部としてOracle Linux Automation Managerシステムにクローニングできるプレイブックを格納できます。

Gitでリモート・プレイブックにアクセスするには、次を実行します。

  1. 新しいGitリポジトリを設定するか、リモートGitサーバーで既存のGitリポジトリを使用します。

    たとえば、GitHubはAnsibleのパブリック・サンプル・プロジェクトをhttps://github.com/ansible/ansible-tower-samplesでホストしています。

    注意:

    これはパブリック・リポジトリであるため、そこに含まれるサンプルについてオラクルは責任を負いません。

  2. SSH認証が必要なプライベート・リポジトリを使用する場合は、Oracle Linux Automation Managerを実行しているシステムでSSH秘密キーと公開キーを設定し、公開キーをGitユーザー・アカウントにコピーする必要があります。

  3. Oracle Linux Automation Manager UIに戻り、リソース・セクションで、プロジェクトをクリックします。

    「プロジェクト」ページが表示されます。

  4. 変更するプロジェクトの名前をクリックし、編集をクリックします。
  5. ソース・コントロール・タイプがGitに設定されていることを確認し、ソース・コントロールURLフィールドにSCMリポジトリのURLを入力します。
  6. ソース・コントロール・ブランチ/タグ/コミット・フィールドにSCMブランチ、タグまたはコミットを指定する必要がある場合は、ブランチ、タグまたはコミット・ハッシュを入力します。

  7. ブランチからrefspecを取得する必要がある場合は、ソース・コントロールRefspecフィールドにrefspecを入力します。

  8. 指定したGitリポジトリがプライベートで、アクセスに資格証明が必要な場合は、ソース・コントロール資格証明リストから資格証明を選択します。資格証明の設定の詳細は、「資格証明の設定」を参照してください。

  9. 保存をクリックします。

  10. Oracle Linux Automation Managerでプロキシを介したGitリポジトリへのアクセスが必要な場合は、左側のメニューを展開して設定をクリックします。

    設定ページが表示されます。

  11. ジョブ設定をクリックします。

    詳細ページが表示されます。

  12. 「編集」ボタンをクリックします。

  13. その他の環境変数フィールドに、次のように入力します:

    {
     "https_proxy": "proxy_address:proxy_port"
    }

    前述の例では、proxy_addressはプロキシ・アドレス、proxy_portはプロキシのポートです。

  14. 保存をクリックします。

    ノート:

    プレイブックでOCI Ansibleコレクションが使用されている場合は、https://docs.oracle.com/iaas/Content/API/SDKDocs/ansible.htmを参照し、AWXに関する設定手順を確認してください。

インベントリ、グループおよびホストの管理

次の各項では、インベントリおよびホストの管理について説明します。

インベントリおよびグループの管理

インベントリは、ジョブおよびコマンドを実行できるホストのコレクションです。インベントリ内にグループを作成し、それらのグループをさらにサブグループに分割できます。

インベントリの作成

インベントリを設定するには、次を実行します。
  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. リソース・セクションで、インベントリをクリックします。

    「インベントリ」ページが表示されます。

  3. 「追加」ボタンをクリックします。

    メニューが表示されます。

  4. インベントリの追加オプションをクリックします。

    新規インベントリの作成ページが表示されます。

  5. 名前フィールドに、インベントリの名前を入力します。たとえば、 Inventory1などです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 「組織」リストから、組織を選択します。

  8. 選択をクリックします。

  9. 変数フィールド(コード・ボックス)で、次のようにしてYAMLまたはJSONコードを入力し、インベントリ変数を指定できます
    1. YAMLまたはJSONボタンをクリックし、使用する構文を指定します。
    2. コード編集ボックスに変数を入力します。
  10. 保存をクリックします。

インベントリへのグループまたはサブグループの追加

グループまたはサブグループ、あるいはその両方を追加するには、次を実行します:
  1. グループをクリックします。

    グループのリストが表示されます。

  2. 追加をクリックします。

    新規グループの作成ダイアログが表示されます。

  3. 名前フィールドに、名前を追加します。
  4. 保存をクリックします。

    グループの詳細ページが表示されます。

  5. 関連グループをクリックします。

    関連グループ・ページが表示されます。

  6. 追加をクリックします。
  7. 次のいずれかを行います:
    • 既存グループを追加するには、既存グループの追加をクリックし、既存グループに関連付ける既存グループを1つ以上選択します。
    • 新規グループを追加するには、新規グループの追加をクリックし、現行グループに関連するグループを作成します。
  8. 保存をクリックします。

ホストの管理

ホストを作成するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. リソース・セクションで、ホストをクリックします。

    ホスト・ページが表示されます。

  3. 「追加」ボタンをクリックします。

    新規ホストの作成ページが表示されます。

  4. 名前フィールドに、IPアドレスまたはホスト名を入力します。

  5. インベントリ・フィールドで、検索ボタンをクリックします。

    インベントリの選択ページが表示されます。

  6. インベントリ・リストから、インベントリを選択します。

  7. 保存をクリックします。

    詳細ページが表示されます。

  8. ホストをオンまたはオフに設定し、ホストがジョブで使用可能かどうかを示します。
  9. ファクトをクリックし、ホスト上で実行されたジョブからホストについて収集されたファクトがないかを確認します。ファクト・ストレージの有効化の詳細は、「ジョブ・テンプレートの設定」を参照してください。
  10. グループをクリックします。

    構成されている場合は、グループのリストが表示されます。

  11. 追加をクリックしてグループを追加します。
  12. リストから1つ以上のグループを選択して、ホストをグループに追加します。選択できるグループは、ホストが関連付けられているインベントリに作成されます。グループの作成の詳細は、「インベントリおよびグループの管理」を参照してください。
  13. 保存をクリックします。

ホストまたはグループに対する1回かぎりのコマンドの実行

インベントリ内の1つ以上のホストまたはグループに対してOracle Linux Automation Engine組込みモジュールを使用して単一のコマンドを実行するには(コマンドラインでモジュールを実行するときと同様)、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. リソース・セクションで、インベントリをクリックします。

    インベントリ・ページが表示され、使用可能なインベントリが一覧表示されます。

  3. コマンドの実行対象のホストが含まれるインベントリの名前をクリックします。

    インベントリが詳細タブに表示されます。

  4. 次のいずれかを行います:
    • 1つ以上のホストでコマンドを実行するには、ホスト・タブをクリックします。

    • 1つ以上のホスト・グループでコマンドを実行するには、グループ・タブをクリックします。
  5. 左側にある1つ以上のホストまたはグループの横にあるチェック・ボックスを選択します。

    ノート:

    チェック・ボックスを選択しない場合、すべてのホストまたはグループに対してコマンドを実行するものと見なされます。
  6. コマンドの実行ボタンをクリックします。

    コマンドの実行ページが表示されます。

  7. モジュール・リストから、モジュールを選択します。たとえば、shellモジュールを選択します。

  8. 引数フィールドに、選択したモジュールで必要な引数を入力します。たとえば、uname -aなどです。

  9. 次へをクリックします。

    使用可能な実行環境のリストが表示されます。

  10. 実行環境を選択します。

    環境を選択しない場合、コマンドはデフォルトで OLAM EE実行環境で実行されます。

  11. 次へをクリックします。

    使用可能なマシン資格証明のリストが表示されます。

  12. マシンのマシン資格証明を選択します。資格証明の設定の詳細は、「資格証明の設定」を参照してください。

  13. 起動をクリックします。

    出力ページが表示され、ジョブ操作がリアルタイムに表示され、最終的に成功または失敗のステータスが表示されます。

スマート・インベントリの管理

スマート・インベントリは、手動で定義されたグループではなく、フィルタ条件に基づいてホストが自動的にグループ分けされるインベントリの一種です。ホストのフィルタ条件は、ホスト名、グループ・メンバーシップなどの引数に基づくか、前に実行したホストに関するファクトを収集するジョブによって収集および格納されたホストのファクトに基づく可能性があります。インベントリは、スマート・インベントリを使用するジョブが実行されるたびに更新されます。

スマート・インベントリを設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. リソース・セクションで、インベントリをクリックします。

    「インベントリ」ページが表示されます。

  3. 「追加」ボタンをクリックします。

    メニューが表示されます。

  4. スマート・インベントリの追加オプションをクリックします。

    新規スマート・インベントリの作成ページが表示されます。

  5. 名前フィールドに、スマート・インベントリの名前を入力します。

  6. 組織フィールドで、検索をクリックします。

    組織の選択ダイアログが表示されます。

  7. 「組織」リストから、組織を選択します。

  8. 選択をクリックします。

    ノート:

    スマート・インベントリは、同じ組織に属するインベントリを使用する場合にのみ作成できます。
  9. スマート・ホスト・フィルタ・フィールドで、検索アイコンをクリックします。

    検索を実行してホスト・フィルタを定義ダイアログが表示されます。

  10. Oracle Linux Automation Managerで構成された情報、または生成された情報に基づいて検索を実行するには、次のいずれかを選択します:
    • 名前: ホストの完全な名前、または複数のホストで共有される可能性のある名前の一部を入力します。たとえば、それぞれの名前がeastern_regionまたはwestern_regionで始まるホストがいくつかある場合、このフィールドにeastern_regionと入力することで、eastern_regionのホストのみを選択できます。
    • グループ: グループの完全な名前またはグループ名の一部を入力します。たとえば、group1にホストが1つあり、group2にもう1つある場合、groupと入力することで、両方のホストが表示されます。group1と入力すると、group1のホストのみ表示されます。グループの作成の詳細は、「インベントリおよびグループの管理」を参照してください。
    • 有効: これをはいに設定すると、ジョブで使用できるすべてのホストが表示されます。いいえに設定すると、ジョブで使用できないすべてのホストが表示されます。
    • インベントリID: インベントリのインベントリIDを入力します。インベントリのインベントリIDは、api/v2/inventories/ REST APIエンドポイントを使用して確認できます。
    • インスタンスID: コントロールのインスタンスIDまたは実行ノード・インスタンスを入力します。インベントリのインスタンスIDは、api/v2/instances/ REST APIエンドポイントを使用して確認できます。
    • 最後のジョブ: 1つ以上のホストに対して実行されたジョブのジョブIDを入力します。ジョブの実行対象となった各ホストが表示されます。ジョブIDを取得する方法は、「ジョブの表示」を参照してください。
    • 詳細: セット・タイプ、各種キー、exactstartswithなどの検索タイプに基づいて、よりきめ細かい検索を実行します。
  11. 既存のホストでプレイブックを実行することで生成された格納済ファクトに基づいて拡張検索を実行するには、次を実行します:
    1. このスマート・インベントリが適用されるホストに関するファクトを収集および格納するためのジョブが実行されたことを確認します。ファクトの格納の詳細は、「ジョブ・テンプレートの設定」を参照してください。格納済ファクトの表示の詳細は、「ホストの管理」を参照してください。
    2. リストから、拡張を選択します。
    3. キー・リストから、ansible_factsを選択します。
    4. 検索フィールドに、検索するファクトを入力します。有効なパラメータは、次のとおりです:
      • ()は、グループ化に使用します。
      • andは、2つのグループをまとめます。
      • __は、リレーショナル・フィールドの関連フィールドを参照します。
      • __は、個別のansible_factsを示します。
      • []は、パス内のJSON配列を示します。
      たとえば、次のフィルタはこれらのパラメータの一部を示しています:
      • 次は、Oracle Linuxベースのすべてのホストを一覧表示します。
        ansible_distribution="OracleLinux"
      • 次は、IPv4 100.102.112.0ネットワーキング内のすべてのホストを一覧表示します。ホストのファクト内では、この値は次の2つのパラメータで指定されています: ansible_default_ipv4およびネストされたパラメータnetworkです。検索で__パラメータを使用することは、これらのパラメータが別個のものでありつつも、関連性があることを示します。
        ansible_default_ipv4__network="100.102.112.0"
      • 次は、AuthenticAMDプロセッサを使用するすべてのホストを一覧表示します。ホストのファクト内では、この値は配列の一部であり、ansible_processorパラメータ後の大カッコ[]内に表示されます。そのため、この種類の値の検索には大カッコ[]が使用されます。
        ansible_processor[]="AuthenticAMD"
  12. 検索を定義したら、選択をクリックします。

    スマート・ホスト・フィルタ・フィールド内に検索が表示されます。検索アイコンを再度クリックし、検索を追加または削除します。

  13. 変数フィールド(コード・ボックス)で、次のようにしてYAMLまたはJSONコードを入力し、インベントリ変数を指定できます
    1. YAMLまたはJSONボタンをクリックし、使用する構文を指定します。
    2. コード編集ボックスに変数を入力します。
  14. 保存をクリックします。

  15. 必要に応じて、Oracle Linux Automation Managerがスマート・インベントリのメンバーシップをより頻繁に更新するように構成できます。そのためには、コントロールまたはハイブリッド・ノード上の/etc/tower/conf.d/<構成ファイル>.pyファイル(<構成ファイル>は構成ファイルの名前)に、次の設定を追加します。
    AWX_REBUILD_SMART_MEMBERSHIP=True
    これにより、次のイベント時にメンバーシップが更新されます:
    • 新規ホストが追加されたとき
    • 既存ホストが変更(更新または削除)されたとき
    • 新規スマート・インベントリが追加されたとき
    • 既存スマート・インベントリが変更(更新または削除)されたとき

    ノート:

    このパラメータを有効にすると、システムの負荷が高まります。

外部インベントリ・ソースの管理

プロジェクトに関連付けられたGitリポジトリ、Oracle Cloud Infrastructure (OCI)またはOracle Linux Virtualization Managerなどの外部ソースから、インベントリのホストおよびグループの情報をインポートできます。必要に応じて、次の方法でインベントリを外部ソースと同期できます:
  • UIを使用して手動で
  • スケジュールに従って自動で
  • インベントリを使用するジョブが実行されるたびに自動で

外部インベントリ・ソースの作成

外部インベントリを作成するには、次を実行します:
  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 「インベントリおよびグループの管理」の説明に従ってインベントリを作成します。
  3. プロジェクトからインベントリを取得する場合は、「プロジェクトの管理」の説明に従って、インベントリ(Gitインベントリなど)へのアクセスを構成したプロジェクトを作成します。
  4. リソース・セクションで、インベントリをクリックします。

    「インベントリ」ページが表示されます。

  5. 作成したインベントリを選択します。
  6. ソースをクリックします。
  7. 追加をクリックします。

    新規ソースの作成ページが表示されます。

  8. 「名前」フィールドに、名前を入力します。
  9. 実行環境リストで、検索ボタンをクリックし、リモート・リポジトリからインベントリをインポートするジョブを実行する際に使用する実行環境を選択します。

    ノート:

    このフィールドを空のままにすると、デフォルトの事項環境が使用されます。デフォルトの実行環境の詳細は、『Oracle Linux Automation Manager 2.3: リリース・ノート』を参照してください。

  10. ソース・リストから、次のいずれかを選択します:
    • プロジェクトから外部インベントリを取得するには、プロジェクトから取得を選択します。
    • OCIから外部インベントリを取得するには、Oracle Cloud Infrastructureを選択します。

      ノート:

      プロジェクトからOCIインベントリにアクセスすることもできますが、「インベントリ・ファイル形式」の説明に従ってpythonスクリプトを使用してインベントリにアクセスする必要があります。
    • Oracle Linux Virtualization Managerから外部インベントリを取得するには、Oracle Linux Virtualization Managerを選択します。

    ソースの詳細という新しいセクションが表示されます。

  11. 必要に応じて、資格証明リストで検索ボタンをクリックし、使用する資格証明を選択します。たとえば、OCIまたはOracle Linux Virtualization Managerの資格証明を使用できます。詳細は、「Oracle Cloud Infrastructure資格証明の設定」および「Oracle Linux Virtualization Manager資格証明の設定」を参照してください。
  12. プロジェクトから取得することを選択した場合は、次を実行します:
    1. 検索ボタンをクリックし、使用するプロジェクト(インベントリを格納するGitリポジトリが含まれる)を選択します。
    2. インベントリ・ファイル・フィールドに、インベントリ・ファイルのパスおよび名前を入力します。有効なインベントリ形式の詳細は、「インベントリ・ファイル形式」を参照してください。

      ノート:

      インベントリ・パスは、Gitリポジトリのルート・ディレクトリから始めます。インベントリ・ファイルがリポジトリのルート・レベルにある場合は、リポジトリ・ファイルの名前を入力します。インベントリ・ファイルが1つ以上のフォルダ内にある場合は、最初のフォルダ名をスラッシュなしで入力し、その後、各サブ・フォルダの前にスラッシュを含めます。たとえば、inventory/north_america/inventory.yamlなどです。
    3. インベントリ・ファイルのパスおよび名前を入力すると、ソースをパスに設定するフィールドが表示され、インベントリ・パスおよびファイル名が複製されます。インベントリ・パスおよびファイル名の入力が終了したら、このフィールドをクリックしてインベントリを選択します。
  13. 冗長性リストで、冗長性レベルを入力します。これにより、インベントリ・ジョブの更新によって生成される出力のレベルが決まります。有効値は次のとおりです:
    • 0 (警告)
    • 1 (情報)
    • 2 (デバッグ)
  14. オプションの更新領域で、必要に応じて次を選択します:
    • 上書き: このオプションを有効にすると、外部ソースに存在しなくなったホストおよびグループがインベントリから削除されます。管理対象外のホストおよびグループは、次の手動グループに移動するか、存在しない場合は「all」グループに留まります。無効にすると、管理対象外のホストおよびグループは更新時に変更されません。
    • 変数の上書き: このオプションを有効にすると、子グループおよびホストのすべての変数が外部ソースの変数に置き換えられます。無効にすると、かわりにローカル変数と外部変数がマージされます。
    • 起動時に更新: このオプションを有効にすると、このインベントリを使用してジョブが実行されるたびに、最初にインベントリが更新されます。
  15. 保存をクリックします。
  16. 同期をクリックして、ソース情報を同期します。これにより、ジョブ領域から表示できる同期ジョブがトリガーされます。詳細は、「ジョブの表示」を参照してください。
  17. 同期後、メインのインベントリ・ページに戻り、ホストおよびグループ・タブにインポートしたホストとグループの情報があることを確認します。

インベントリ・ファイル形式

プロジェクトからインベントリを実行するとき、インベントリ・ソースは様々な形式のファイルまたはスクリプト・プラグインを指すことができます。次の各項では、使用可能な各種のファイル形式について説明します。

yamlインベントリ

YAMLインベントリ・ファイルで使用できる有効な拡張子には.yaml.ymlおよび.jsonがあります。YAMLインベントリ構造には、次の要素が含まれます:

  • all: ファイルはallグループで始まる必要があります。
  • hosts: allグループの下にあるhostsは、個別のホスト定義を指定します。ホスト定義には、変数として扱われるネストされたエントリを含めることができます。
  • vars: 必要に応じて、この要素を定義済グループとともに使用し、1つ以上の変数を含めることができます。
  • children: これは必要に応じて使用でき、独自のホスト、変数および子を再帰的に含めることができる子グループを指定できます。

YAMLインベントリ・ファイルの例を次に示します:

---
all:
  children:
    web:
      vars:
        environment: web
        timezone: UTC
      children:
        prod:
          vars:
            env_type: production
            debug_mode: False
          hosts:
            web1:
              ansible_host: 192.0.2.254
              http_port: 80
              server_name: web1.example.com
            web2:
              ansible_host: 192.0.2.253
              http_port: 8080
              server_name: web2.example.com
        dev:
          vars:
            env_type: development
            debug_mode: True
          hosts:
            dev-web1:
              ansible_host: 192.0.2.252
              http_port: 8081
              server_name: dev-web1.example.com
            dev-web2:
              ansible_host: 192.0.2.251
              http_port: 8082
              server_name: dev-web2.example.com
    db:
      vars:
        database_version: 5.7
        backup_schedule: daily
      hosts:
        db1:
          ansible_host: 192.0.2.250
          db_username: admin
          db_password: password

INIインベントリ

INIインベントリ・ファイルの有効な拡張子は.iniです。INIインベントリ構造には、次の要素が含まれます:

セクション・ヘッダー
  • セクションは大カッコ[]で囲まれたヘッダーで始まり、たとえば[webservers]などです。
  • 各セクションは、ホストのグループまたはカテゴリを表します。
  • セクション・ヘッダーは空にできません。
  • セクション・ヘッダーには次のような修飾子を追加できます:
    • :childrenは、グループにサブグループが含まれていることを示します。
    • :varsは、グループにすべてのメンバーに割り当てられた変数が含まれていることを示します。
ホスト定義
  • ホストは、セクション・ヘッダーの下に1行に1つずつ名前をリストすることで定義されます。
  • ホストには、=で区切られたキーと値のペアとして、インラインで定義した変数を含めることができます。
  • グループ化されていないホストは[ungrouped]セクションの下に表示される必要があります。
値の解釈
  • key=value構文を使用してINI形式で渡される値は、インベントリ内のどこで宣言されるかに応じて解釈が異なります。
  • ホストで宣言された場合、値はホスト固有の変数として扱われます。
  • :vars修飾子を使用してグループで宣言された場合、値はグループ全体の変数として扱われます。
  • [ungrouped]セクションで宣言された場合、値はグローバル変数として扱われます。

INIインベントリ・ファイルの例を次に示します:

[all]
      ; List of all hosts
      host1 ansible_host=192.0.2.10
      host2 ansible_host=192.0.2.20
      host3 ansible_host=192.0.2.30
      
      [web]
      host1
      host2
      
      [web:vars]
      http_port=80
      server_name=example.com
      
      [web:children]
      dev
      staging
      
      [dev]
      dev-host1 ansible_host=192.0.2.50
      dev-host2 ansible_host=192.0.2.51
      
      [dev:vars]
      debug_mode=True
      log_level=DEBUG
      
      [staging]
      stg-host1 ansible_host=192.0.2.100
      stg-host2 ansible_host=192.0.2.101
      
      [staging:vars]
      debug_mode=False
      log_level=INFO
      
      [db]
      host3
      
      [db:vars]
      db_username=admin
      db_password=password
      database_version=5.7
      
      [ungrouped]
      ungrp-host1 ansible_host=192.0.2.200
      ungrp-host2 ansible_host=192.0.2.201
    

TOMLインベントリ

TOMLインベントリ・ファイルの有効な拡張子は.TOMLです。TOMLインベントリの構造は、https://toml.io/en/v1.0.0の仕様に従います:

TOMLインベントリ・ファイルの例を次に示します:
[all.vars]
environment = "all"

[web.vars]
environment = "web"
timezone = "UTC"

[web.hosts.web1]
ansible_host = "192.0.2.254"
http_port = 80
server_name = "web1.example.com"
env_type = "production"
debug_mode = false

[web.hosts.web2]
ansible_host = "192.0.2.253"
http_port = 8080
server_name = "web2.example.com"
env_type = "production"
debug_mode = false

[web.hosts.dev-web1]
ansible_host = "192.0.2.252"
http_port = 8081
server_name = "dev-web1.example.com"
env_type = "development"
debug_mode = true

[web.hosts.dev-web2]
ansible_host = "192.0.2.251"
http_port = 8082
server_name = "dev-web2.example.com"
env_type = "development"
debug_mode = true

[db.vars]
database_version = "5.7"
backup_schedule = "daily"

[db.hosts.db1]
ansible_host = "192.0.2.250"
db_username = "admin"
db_password = "password"

スクリプト・プラグイン

pythonスクリプト・ファイルの有効な拡張子は.pyです。次の例では、スクリプトと同じディレクトリにあるインベントリ・ファイルに基づいてインベントリ・データを生成するインベントリ・スクリプトを示します:

#!/usr/bin/env python3
"""
Generates an Ansible inventory from a JSON payload file.
"""

import json

def load_json_payload(file_path: str) -> dict:
    """
    Loads JSON payload from a file.

    Args:
    - file_path (str): Path to the JSON payload file.

    Returns:
    - dict: Parsed JSON payload.
    """
    try:
        with open(file_path, 'r') as json_file:
            return json.load(json_file)
    except FileNotFoundError:
        print(f"File '{file_path}' not found.")
        return {}
    except json.JSONDecodeError as e:
        print(f"Failed to parse JSON: {e}")
        return {}

def create_group(inventory: dict, group_name: str, hosts: list) -> None:
    """
    Creates a new group in the inventory.

    Args:
    - inventory (dict): Ansible inventory dictionary.
    - group_name (str): Name of the group to create.
    - hosts (list): List of hosts to add to the group.
    """
    if group_name not in inventory:
        inventory[group_name] = {'hosts': []}
    inventory[group_name]['hosts'].extend(hosts)

def generate_ansible_inventory(payload: dict) -> dict:
    """
    Generates an Ansible inventory from the given JSON payload.

    Args:
    - payload (dict): Parsed JSON payload.

    Returns:
    - dict: Generated Ansible inventory.
    """
    inventory = {
        '_meta': {'hostvars': {}},
        'all': {'hosts': [], 'vars': {}}
    }

    os_groups = {}
    location_groups = {}

    for host in payload.get('hosts', []):
        host_id = host.get('id')
        hostname = host.get('hostname')
        ip_address = host.get('ip_address')
        status = host.get('status')
        os = host.get('os')
        location = host.get('location')
        owner = host.get('owner')

        if not all([host_id, hostname, ip_address, status, os, location, owner]):
            continue  # Skip hosts with missing information

        inventory['all']['hosts'].append(ip_address)

        host_vars = {
            'ansible_host': ip_address,
            'status': status,
            'os': os,
            'location': location,
            'owner': owner
        }
        inventory['_meta']['hostvars'][ip_address] = host_vars

        create_group(os_groups, os, [ip_address])
        create_group(location_groups, location, [ip_address])

    inventory.update(os_groups)
    inventory.update(location_groups)

    return inventory

if __name__ == '__main__':
    json_payload_file = 'labs/json-payload'
    payload = load_json_payload(json_payload_file)
    inventory = generate_ansible_inventory(payload)
    print(json.dumps(inventory))
次の例は、json_payloadという名前のサンプル・インベントリ・ファイルです:
{
    "hosts": [
        {
            "id": 1,
            "hostname": "host1.example.com",
            "ip_address": "192.168.1.101",
            "status": "active",
            "os": "Oracle_Linux_8",
            "location": "Ottawa",
            "owner": "User_4"
        },
        {
            "id": 2,
            "hostname": "host2.example.com",
            "ip_address": "192.168.1.102",
            "status": "inactive",
            "os": "Oracle_Linux_8",
            "location": "Texas",
            "owner": "User_1"
        },
        {
            "id": "3",
            "hostname": "host3.example.com",
            "ip_address": "192.168.1.10",
            "status": "active",
            "os": "Oracle_Linux_9",
            "location": "West_Coast",
            "owner": "admin_1"
        },
        {
            "id": "4",
            "hostname": "host4.example.com",
            "ip_address": "192.168.1.11",
            "status": "active",
            "os": "Oracle_Linux_9",
            "location": "West_Coast",
            "owner": "admin_2"
        },
        {
            "id": "5",
            "hostname": "host5.example.com",
            "ip_address": "192.168.1.15",
            "status": "inactive",
            "os": "Oracle_Linux_7",
            "location": "East_Coast",
            "owner": "user_1"
        },
        {
            "id": "6",
            "hostname": "host6.example.com",
            "ip_address": "192.168.1.16",
            "status": "inactive",
            "os": "Oracle_Linux_7",
            "location": "East_Coast",
            "owner": "user_2"
        },
        {
            "id": "7",
            "hostname": "host7.example.com",
            "ip_address": "192.168.1.16",
            "status": "inactive",
            "os": "Oracle_Linux_7",
            "location": "Ottawa",
            "owner": "user 3"
        }
    ]
}

OCIインベントリ

OCIインベントリ・ファイルの有効な拡張子は、.oci.ymlまたは.oci.yamlです。次の例は、OCIテナンシおよびコンパートメントに基づいてインベントリ・データを生成するOCIインベントリ・ファイルを示します。テナンシ情報は、関連付けられたOCI資格証明によって提供されます。コンパートメントのOCIDは、このインベントリ・ファイルで指定されます:

---
plugin: oracle.oci.oci

regions:
 - us-ashburn-1
compartments:
 - compartment_ocid: "<sample-ocid>"
  fetch_compute_hosts: true

hostname_format_preferences:
 - "public_ip"
 - "private_ip"

ノート:

OCIインベントリを実行するには、OCI SDKおよびOCI Ansible Collectionが含まれるOracle Linux Automation Engine実行環境のバージョンを使用する必要があります。詳細は、『Oracle Linux Automation Manager 2.3: リリース・ノート』を参照してください。OCI Ansibleインベントリの構成の詳細は、https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/ansibleinventoryintro.htmを参照してください。

資格証明の設定

Oracle Linux Automation Managerは、プライベート・リポジトリおよびターゲット・インベントリ・ホストの操作に必要とされる、様々なタイプの資格証明を作成および格納する機能を提供します。そのような資格証明の例には、次のものがあります:

  • Gitの資格証明:

    Git資格証明は、プロジェクトやプレイブックのソースとして使用している可能性のあるプライベート・レジストリ、および実行環境のコンテナ・イメージにアクセスするために使用されます。ユーザー名とパスワード、およびSCM秘密キーとパスフレーズなどが含まれる場合があります。

  • マシンの資格証明:

    マシンの資格証明は、SSH経由でターゲット・ホストにアクセスする際に使用されます。たとえば、マシンの資格証明はユーザー名とパスワードのペア、またはユーザー名とSSH秘密キーなどです。

  • Oracle Cloud Infrastructure:

    Oracle Cloud Infrastructure (OCI)の資格証明は、OCIマシンまたはインベントリへのアクセスに使用されます。OCI SDKが含まれるOracle Linux Automation Engine実行環境のバージョンで実行されるジョブを使用して、OCI資格証明を使用する必要があります。OCI SDKが含まれるOracle Linux Automation Engine実行環境の詳細は、『Oracle Linux Automation Manager 2.3: リリース・ノート』を参照してください。

Oracle Linux Automation Managerでは、入力した資格証明はデータベースに保存される前に暗号化されます。暗号化/復号化アルゴリズムには、Fernetのバリエーションである、CBCモードのAES-256とSHA-256 HMACを使用する対称暗号化方式が使用されます。キーは、Oracle Linux Automation Managerのインストール時に設定されたSECRET_KEYから生成されます(詳細は、『Oracle Linux Automation Manager 2.3: インストレーション・ガイド』を参照してください)。

資格証明は、抽出されて使用されるときに復号化されます。

次の各項では、Oracle Linux Automation Managerでの様々な種類の資格証明の設定について説明します。

 Git資格証明の設定

Git資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、GitCredential1などです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、ソース・コントロールを選択します。

  10. 必要に応じて、ユーザー名フィールドにユーザー名を入力します。

  11. 必要に応じて、パスワード・フィールドにパスワードを入力します。

  12. SCM秘密キーフィールドに、Oracle Linux Automation Managerを実行しているホストに設定したSSH秘密キー(SSH認証を使用している場合)を入力します。

  13. 秘密キーのパスフレーズ・フィールドに、パスフレーズを入力します(SSH認証用にパスフレーズを設定した場合)。

  14. 保存をクリックします。

Oracle Cloud Infrastructure資格証明の設定

Oracle Cloud Infrastructure (OCI)の資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、OCICredentialなどです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、Oracle Cloud Infrastructureを選択します。

  10. ユーザーOCIDフィールドに、OCIDを入力します。

  11. フィンガープリント・フィールドに、フィンガープリントを入力します。

  12. テナントOCIDフィールドに、テナントOCIDを入力します。

  13. リージョン・フィールドに、リージョンを入力します。
  14. 秘密キーフィールドに、SSH秘密キーを入力します。

  15. プライベート・ユーザー・キーのパスフレーズ・フィールドに、パスフレーズを入力します(SSH認証用にパスフレーズを設定した場合)。

  16. 保存をクリックします。

Oracle Linux Virtualization Manager資格証明の設定

Oracle Linux Virtualization Manager資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、OLVMCredential1です。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、Oracle Linux Virtualization Managerを選択します。

  10. ホスト(認証URL)フィールドに、認証するOracle Linux Virtualization ManagerホストのURLを入力します。次の形式で入力します。
    https://<hostname or IP address>/ovirt-engine/api
  11. ユーザー名フィールドにユーザー名を入力します。

  12. 「パスワード」フィールドに、パスワードを入力します。

  13. CAパス・フィールドに、必要に応じてCAファイルの絶対パスを入力します。

  14. 保存をクリックします。

マシン資格証明の設定

マシンの資格証明は、SSH経由でターゲット・ホストにアクセスする際に使用されます。

マシン資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、InventoryMachineCredential1などです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、マシンを選択します。

  10. 必要に応じて、ユーザー名フィールドにユーザー名を入力します。

  11. 必要に応じて、パスワード・フィールドにパスワードを入力します。

  12. インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動したときにパスワード・プロンプトが表示されるようにする場合は、パスワード・フィールドの上にある起動時にプロンプトを表示チェック・ボックスを選択します。

  13. 必要に応じて、SSH秘密キーフィールドに、Oracle Linux Automation EngineがSSH認証を使用する場合に対象ホストにアクセスするために使用するSSH秘密キーを入力します。

  14. 必要に応じて、署名付きSSH資格証明フィールドに、署名付きSSH資格証明を入力します。

  15. 秘密キーのパスフレーズ・フィールドに、パスフレーズを入力します(SSH認証用にパスフレーズを設定した場合)。

  16. インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動したときに秘密キーのパスフレーズ・プロンプトが表示されるようにする場合は、秘密キーのパスフレーズ・フィールドの上にある起動時にプロンプトを表示チェック・ボックスを選択します。

  17. マシンで実行するプレイブックにsudoなどのエスカレーション・メソッドが必要な場合は、権限エスカレーション・メソッド・リストからエスカレーション・メソッドを選択します。

  18. 必要に応じて、権限エスカレーション・ユーザー名フィールドにユーザー名を入力します。

  19. 必要に応じて、権限エスカレーション・パスワード・フィールドにパスワードを入力します。

  20. インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動したときにパスワード・プロンプトが表示されるようにする場合は、権限エスカレーション・パスワード・フィールドの上にある起動時にプロンプトを表示を選択します。

  21. 保存をクリックします。

Ansible Galaxy/Automation Hub APIトークン資格証明の設定

Oracle Linux Automation Managerは、リポジトリの場所からコレクションにアクセスしてダウンロードできるように、Ansible Galaxy/Automation Hub APIトークンの資格証明タイプを提供します。たとえば、次のような資格証明を作成できます:

  • 公開されている場所https://galaxy.ansible.com/にアクセスするための、My Ansible Galaxy Credentialという名前の資格証明。このような場所は公開されているため、資格証明にAPIトークンなどの認証情報を入力する必要はありません。

  • https://myprivateautomationhub/publishedなどにあるPrivate Automation Hubリポジトリにアクセスするための、My Private Auto Hub API Token Credentialという名前の資格証明。このような場所では認証が必要となるため、そのレジストリに関連付けられたPrivate Automation Hubコンソールから取得したAPIトークンを入力します。

組織には複数のAnsible Galaxy/Automation Hub APIトークン資格証明を追加できます。資格証明を組織に追加する順序は重要です。これにより、その組織に割り当てられたプロジェクトのコレクションをダウンロードする際に、リポジトリを検索する順序が決まるためです。

重要:

コレクションおよびロールのダウンロードが有効になっていることを確認する

SCMプロジェクトrequirements.ymlに記載されているコレクションおよびロールを動的にダウンロードできるようにするには、次のジョブ設定を有効にする必要があります:

  • コレクションのダウンロードの有効化

  • ロールのダウンロードの有効化

    ノート:

    これらの設定は、Oracle Linux Automation Managerの初回インストール時にデフォルトで有効になっています。

ジョブ設定を編集するには:

  1. 左側のナビゲーション・メニューで設定をクリックします。

  2. ジョブ設定リンクをクリックします。

  3. 編集をクリックし、設定の編集に進みます。

  4. 保存をクリックします。

次の例は、このような資格証明を作成するステップを示しています。

Ansible Galaxy資格証明の設定
コレクションにアクセスするためのAnsible Galaxy資格証明を設定するには、次を実行します:

ノート:

Ansible Galaxy資格証明は、Oracle Linux Automation Managerをインストールする際にデフォルトで作成されます。
  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、My Ansible Galaxy Credentialなどです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、Ansible Galaxy/Automation Hub APIトークンを選択します。

  10. GalaxyサーバーURLフィールドに、Galaxy Ansible URL https://galaxy.ansible.com/を入力します。

  11. 保存をクリックします。

Private Automation Hubコレクション資格証明の設定

Private Automation Hub資格証明は、URLおよびAPIトークンを使用して、様々なリポジトリ内にコレクションが含まれるPrivate Automation Hubインスタンスにアクセスするために使用されます。

コレクションにアクセスするためのPrivate Automation Hub資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、My Private Auto Hub API Token Credentialなどです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、Ansible Galaxy/Automation Hub APIトークンを選択します。

  10. GalaxyサーバーURLフィールドに、Private Automation HubリポジトリのURLを入力します。様々なリポジトリタイプの詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。

  11. APIトークン・フィールドに、Private Automation HubのAPIトークンを入力します。Private Automation HubでのAPIトークン作成方法の詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。
  12. 保存をクリックします。

実行環境のコンテナ・レジストリ資格証明の設定

コレクションにアクセスするためのPrivate Automation Hub資格証明を設定するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 「追加」ボタンをクリックします。

    新規資格証明の作成ページが表示されます。

  5. 名前フィールドに、資格証明の名前を入力します。たとえば、Registry Credentialsなどです。

  6. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  7. 組織リストから、組織を選択します。

  8. 選択をクリックします。

  9. 資格証明タイプ・リストから、コンテナ・レジストリを選択します。

  10. 認証URLフィールドに、接続するコンテナ・レジストリのIPアドレスまたはホスト名を入力します。たとえば、実行環境のコンテナ・イメージをホストしているPrivate Automation Hubインスタンスや、https://container-registry.oracle.com/にできます。Private Automation Hubの詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。

  11. ユーザー名フィールドに、必要な実行環境イメージにアクセスできるコンテナ・レジストリ・ユーザーのユーザー名を入力します。
  12. パスワードまたはトークン・フィールドに、ユーザーのパスワードを入力します。
  13. コンテナ・レジストリがSSL認証用に構成されている場合は、SSLの検証を有効にします。
  14. 保存をクリックします。

 資格証明権限の設定

ノート:

資格証明へのアクセスは、その資格証明が属する組織と同じ組織に属するユーザーおよびチームにのみ割り当てることができます。

ユーザーおよびチームに資格証明を使用する権限を割り当てるには、次のステップを実施します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、資格証明をクリックします。

    「資格証明」ページが表示されます。

  4. 既存の資格証明を選択します。

    選択した資格証明が表示され、詳細タブがアクティブな状態になります。

  5. 「アクセス」タブをクリックします。

    アクセス・タブには、完全な管理者権限を持つユーザーなど、すでに資格証明にアクセスできるユーザーがリストされます。

  6. 「追加」ボタンをクリックします。

    ロールの追加ページが表示され、ユーザーおよびチームのオプションが表示されます。

  7. オプションを1つ選択します。たとえば、ユーザーです。

    使用可能なユーザーのリストが表示されます。

    ノート:

    完全な管理者権限を持つユーザーは、Oracle Linux Automation Managerのすべてのエンティティに対する権限を持つため、表示されません。

  8. 左側の列から、資格証明を使用する権限を付与する各ユーザーの横にあるチェック・ボックスを選択します。

  9. 次へをクリックします。

    選択したユーザーに割り当てられる権限が表示されます。

  10. 選択したユーザーに割り当てる各権限の横にあるチェック・ボックスを選択します。
  11. 保存をクリックします。

前の例では、資格証明にアクセスするための新しいロールを、チームではなく、ユーザーに割り当てることを前提としています。ユーザーではなくチームにアクセス権限を割り当てる場合は、前の手順と同じステップに従いますが、新しい権限で構成するリソース・タイプを指定する際に、ユーザーではなくチームを選択します。

 ジョブ・テンプレートの設定

次の各項では、ジョブ・テンプレートの設定について説明します。

 ジョブ・テンプレートの設定

ジョブ・テンプレートを使用すると、インベントリに含まれるホストに対するプロジェクトに関連付けられたプレイブック・タスクを実行できます。ジョブ・テンプレートから、次を指定することもできます。

  • 権限: ジョブを実行できるチーム、ユーザーまたはその両方。

  • 通知: ジョブ・テンプレートによってトリガーされる通知。

  • 完了したジョブ: すべての完了したジョブのリスト。

  • スケジュール: ジョブを実行するスケジュールのリスト。

ジョブ・テンプレートを設定するには、次を実行します。

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、テンプレートをクリックします。

    テンプレート・ページが表示されます。

  4. 「追加」ボタンをクリックします。

    メニューが表示されます。

  5. ジョブ・テンプレートの追加オプションをクリックします。

    新規ジョブ・テンプレートの作成ページが表示されます。

  6. 名前フィールドに、ジョブ・テンプレートの名前を入力します。たとえば、JobTemplate1などです。

  7. ジョブ・タイプ・リストから、次のいずれかを選択します:

    • 実行: プレイブックを実行します。

    • チェック: プレイブックがエラーなく実行できることを確認します。

  8. ジョブの起動時に、ジョブ・タイプの選択を確認するダイアログ・ボックスを表示する場合は、ジョブ・タイプ・フィールドの横にある起動時にプロンプトを表示チェック・ボックスを選択します。

    ノート:

    一部のフィールドの横には、起動時にプロンプトを表示チェック・ボックスが表示されます。フィールドの横にあるそのようなチェック・ボックスを選択すると、ジョブの起動時に、そのフィールドに使用する値を確認するためのダイアログが表示されます。

  9. インベントリ・フィールドで、検索ボタンをクリックします。

    インベントリの選択ダイアログが表示されます。

  10. インベントリ・リストから、このジョブで管理するホストが含まれるインベントリを選択します。

  11. プロジェクト・フィールドで、検索ボタンをクリックします。

    プロジェクトの選択ダイアログが表示されます。

  12. このジョブで実行するプレイブックが含まれるプロジェクトを選択します。

    たとえば、次のサンプルOracle Linux Automation Engineプレイブックが含まれるプロジェクトを選択できます:
    • インベントリに対してyum updateを実行するサンプルYumプレイブック。
    • インベントリのホスト上にhttpdサーバーを作成するサンプルhttpdプレイブック。

    詳細は、「サンプル・プレイブックの設定と実行」を参照してください。

  13. 実行環境フィールドで、検索ボタンをクリックします。

    実行環境の選択ダイアログが表示されます。

  14. このジョブで使用する実行環境を選択します。

    環境を選択しない場合、実行中のOracle Linux Automation Managerのバージョンに応じて、デフォルトの実行環境でコマンドが実行されます。実行環境の詳細は、『Oracle Linux Automation Manager 2.3: リリース・ノート』を参照してください。

  15. プレイブック・リストから、選択したプロジェクトのプレイブックを選択します。たとえば、サンプルYumプレイブックを使用する場合は、yum_update.yamlを選択します。

  16. 資格証明フィールドで、検索ボタンをクリックします。

    資格証明の選択ダイアログが表示されます。

  17. 選択したカテゴリ・リストから、使用可能な資格証明を表示するホスト・カテゴリを1つ選択します。
  18. 必要に応じて、選択したインベントリで指定されたホストにアクセスするために設定した資格証明を選択します。

  19. ラベル・フィールドに、ジョブについて説明するラベルを入力します。これらのラベルは、Oracle Linux Automation Managerの様々なビューで、ジョブ・テンプレートや完了ジョブをグループ化およびフィルタするために使用できます。

  20. 変数フィールド(コード・ボックス)で、次のようにしてYAMLまたはJSONコードを入力し、プレイブックに追加のコマンドライン変数を渡すことができます:
    1. YAMLまたはJSONボタンをクリックして、使用する構文を指定します。
    2. コード編集ボックスに変数を入力します。
  21. フォーク・フィールドで、スクロール矢印を使用し、許可されるフォーク数を選択します。これは、Oracle Linux Automation Engineプレイブックの実行中に実行可能な並列または同時プロセスの数です。空の値または1の値は、/etc/ansible/ansible.cfgで指定されたデフォルトを使用します。

  22. 必要に応じて、制限フィールドに、1つ以上のホスト名、IPアドレスまたはグループ名をコンマ区切りで入力することで、ジョブを実行できるインベントリで指定されたホストをさらに制限できます。たとえば、インベントリ内のgroup1というグループに含まれるホストのみでジョブを実行する場合は、group1と入力します。group1およびgroup2という2つのグループに対してジョブを実行する場合は、group1,group2と入力します。

  23. 冗長性リストから、ジョブ・テンプレートの実行時にOracle Linux Automation Managerが表示する出力のレベルを選択します。オプションは次のとおりです。
    • 0 (標準)

    • 1 (詳細)

    • 2 (より詳細)

    • 3 (デバッグ)

    • 4 (接続デバッグ)

    • 5 (WinRMデバッグ)
  24. ジョブ・スライス・フィールドで、スクロール矢印を使用して、許可されるジョブ・スライスの数を選択します。ジョブ・スライスを使用すると、ジョブ・テンプレートによって実行される作業を、指定した数のジョブ・スライスに分割できます。各ジョブ・スライスでは、インベントリの一部に対して同じタスクが実行されます。

  25. タイムアウト・フィールドで、スクロール矢印を使用して、ジョブがタイムアウトになるまでの秒数を選択します。

  26. 変更の表示を有効にして、Oracle Linux Automation Engineタスクによって行われた変更をジョブ出力に表示します。

  27. インスタンス・グループ・フィールドで、検索ボタンをクリックします。

    インスタンス・グループの選択ダイアログが表示されます。

  28. Oracle Linux Automation Managerをインストールしたときに作成したインスタンス・グループを1つ以上選択します。
  29. ジョブ・タグ・フィールドに、1つ以上のジョブ・タグを入力します。タグを使用すると、タグが含まれる大規模なプレイブックの一部を実行できます。カンマを使用して各タグを区切ることで、複数のタグを指定できます。

  30. タグのスキップ・フィールドに、スキップするジョブ・タグを1つ以上入力します。カンマを使用して各タグを区切ることで、複数のタグを指定できます。

  31. 必要に応じて、オプション・セクションで次のオプションを選択します:
    • 権限エスカレーション: プレイブックは管理者権限で実行されます。

    • プロビジョニング・コールバック: ホストがOracle Linux Automation Managerに連絡し、このジョブ・テンプレートを使用して構成更新をリクエストできるように、プロビジョニング・コールバックURLを作成します。

    • Webフックの有効化: プレイブックでWebフックが有効になります。

    • 同時ジョブ: Oracle Linux Automation Managerで、ジョブ・テンプレートの複数のインスタンスを同時に実行できます。

    • ファクト・ストレージの有効化: ホストに対して実行されたプレイブックから収集されたファクトを使用し、検出されたファクトをキャッシュに保存します。収集されたファクトを表示する方法は、「ホストの管理」を参照してください。

      ノート:

      プレイブック内でファクト収集が明示的に無効にされていないかぎり、プレイブックはデフォルトでファクトを収集します。プレイブックでファクト収集が無効になっている場合、このオプションは影響しません。
    • インスタンス・グループのフォールバックの防止

      有効にすると、ジョブ・テンプレートを実行する優先インスタンス・グループのリストに、インベントリまたは組織インスタンス・グループが追加されなくなります。リストが空の場合は、グローバル・インスタンス・グループが適用されます。

  32. 保存をクリックします。

 サンプル・プレイブックの設定と実行

Oracle Linux Automation Managerをインストールすると、サンプルのOracle Linux Automation Engineプレイブックも/var/lib/ol-automation-manager/projects/demo_bundledディレクトリに含まれます。このディレクトリには、次のプレイブックが含まれます。

  • httpd.yaml: このプレイブックは、ターゲット・インベントリにApache HTTPサーバーをインストールします。

  • yum_update.yaml: このプレイブックは、ターゲット・インベントリでyum更新を実行します。

管理ユーザーとしてこれらのプレイブックを設定して実行するには、次を実行します。

  1. 管理ユーザーとしてOracle Linux Automation Managerにログインします。

  2. 組織を設定します。たとえば、Sample Yum and Apache Orgなどです。詳細は、「組織の設定」を参照してください。

  3. 必要に応じて、プレイブックを実行するホストの資格証明を設定します。たとえば、Sample Yum and Apache Host Credentialなどです。詳細は、「マシン資格証明の設定」を参照してください。

  4. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  5. リソース・セクションで、プロジェクトをクリックします。

    「プロジェクト」ページが表示されます。

  6. 追加タブをクリックします。

    新規プロジェクトの作成ページが表示されます。

  7. 名前フィールドに名前を入力します。たとえば、Sample Yum and Apache projectなどです。

  8. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  9. 組織リストから、作成した組織を選択します。たとえば、Sample Yum and Apache Orgなどです。

  10. ソース・コントロール資格証明タイプ・リストから、マニュアルを選択します。

  11. プレイブック・ディレクトリ・リストから、demo_bundledを選択します。

  12. 保存をクリックします。

    ノート:

    プロジェクトの作成の詳細は、「プロジェクトの管理」を参照してください
  13. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  14. リソース・セクションで、インベントリをクリックします。

    「インベントリ」ページが表示されます。

  15. 「追加」ボタンをクリックします。

    メニューが表示されます。

  16. インベントリの追加オプションをクリックします。

    新規インベントリの作成ページが表示されます。

  17. 名前フィールドに、インベントリの名前を入力します。たとえば、Sample Yum an Apache Inventoryなどです。

  18. 組織フィールドで、検索ボタンをクリックします。

    組織の選択ダイアログが表示されます。

  19. 組織リストから、作成した組織を選択します。たとえば、Sample Yum and Apache Orgなどです。

  20. 保存をクリックします。

    ノート:

    インベントリの作成の詳細は、「インベントリおよびグループの管理」を参照してください。
  21. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  22. リソース・セクションで、ホストをクリックします。

    ホスト・ページが表示されます。

  23. 「追加」ボタンをクリックします。

    新規ホストの作成ページが表示されます。

  24. 名前フィールドに、接続するシステムのIPアドレスかホスト名を入力します。ホストにアクセスできる必要があります。

  25. インベントリ・フィールドで、検索ボタンをクリックします。

    インベントリの選択ページが表示されます。

  26. インベントリ・リストから、作成したインベントリを選択します。たとえば、Sample Yum and Apache Inventoryなどです。

  27. 保存をクリックします。

    ノート:

    インベントリ用ホストの設定の詳細は、「ホストの管理」も参照してください。
  28. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  29. リソース・セクションで、テンプレートをクリックします。

    テンプレート・ページが表示されます。

  30. 「追加」ボタンをクリックします。

    メニューが表示されます。

  31. ジョブ・テンプレートの追加オプションをクリックします。

    「新規ジョブ・テンプレートの作成」が表示されます。

  32. 名前フィールドに、ジョブ・テンプレートの名前を入力します。たとえば、Sample Yum or Apache Jobなどです。

  33. 「ジョブ・タイプ」リストから、「実行」を選択します。

  34. インベントリ・リストからインベントリを選択します。たとえば、Sample Yum an Apache Inventoryなどです。

  35. プロジェクト・リストからプロジェクトを選択します。たとえば、Sample Yum and Apache projectなどです。

  36. プレイブック・リストから、ホストでyum更新を実行する場合にはyum_update.yamlを選択し、ホストでApacheインスタンスを設定する場合にはhttpd.yamlを選択します。

  37. 資格証明リストから資格証明を選択します。たとえば、Sample Yum and Apache Host Credentialなどです。

  38. 冗長性リストから、0 (標準)を選択します。

  39. httpd.yamlプレイブックを実行している場合は、権限エスカレーションの有効化を有効にして、プレイブックが管理者権限で実行されるようにします。

  40. 保存をクリックします。

  41. 起動をクリックします。

  42. 出力ページが表示され、ジョブの進行状況を確認できます。

    ノート:

    テンプレートの設定の詳細は、「ジョブ・テンプレートの設定」を参照してください。

ワークフロー・テンプレートの設定

次の各項では、ワークフロー・テンプレートの設定について説明します。

ワークフロー・テンプレートについて

ワークフロー・テンプレートを使用すると、グラフィカル・ツールであるワークフロー・ビジュアライザを使用して、ジョブ・テンプレートや管理ジョブなどの様々なコンポーネントの実行順序を、線形グラフのような設計内のノードとして構成できます。

ワークフロー内のコンポーネントは、同じ組織やインベントリを共有する必要はありません。

ワークフロー・テンプレートのノード・タイプ

ワークフロー内のノードは、次のいずれかのコンポーネントになります:
  • ジョブ・テンプレート
  • 管理ジョブ
  • ワークフロー・ジョブ・テンプレート
  • 承認
  • プロジェクト同期
  • インベントリ・ソース同期

ワークフローの設計、機能およびプロパティ

次のリストに、ワークフローの設計、機能およびプロパティの主要な側面を示します:

  • ワークフロー・グラフは左から右に読む

    ワークフロー・ビジュアライザのグラフのような設計は、左から右へと読み進めます。たとえば、ワークフローの設計で左側のexample_node_1が右側のexample_node_2に直線で接続されている場合、example_node_1example_node_2の直前に実行されることを示します。

  • 親ノードと子ノード

    引き続き前の例を使用すると、example_node_1example_node_2の直前に実行される構成の場合、example_node_1example_node_2の親ノードと言えます。

    1つのノードに複数の親ノードを持たせることができます。たとえば、親ノードRunSampleYumPlaybookおよびRunSampleApachePlaybookを、子ノードInstallWebApplicationの直前に実行するように構成したワークフローがあるとします。この場合、ワークフロー・ビジュアライザには、各親ノードから子ノードInstallWebApplicationに直接、線が集まって表示されます。

  • 実行タイプの条件

    子ノードを追加するときは、子ノードが実行される条件を規定するために、次のいずれかのオプションを選択する必要があります:

    • On Success (デフォルト):

      On Successを選択すると、編集中の現行ノードの実行が成功した場合にのみ、追加する子ノードが実行されるように指定できます。このオプションを選択すると、追加された子ノードへの接続が緑色の線で表示されます。

    • On Failure:

      On Failureを選択すると、編集中の現行ノードの実行が失敗した場合にのみ、追加する子ノードが実行されるように指定できます。このオプションを選択すると、追加された子ノードへの接続が赤色の線で表示されます。

    • Always:

      Alwaysを選択すると、編集中の現行ノードの最終状態を問わず、追加する子ノードが必ず実行されるように指定できます。このオプションを選択すると、追加された子ノードへの接続が青色の線で表示されます。

  • 収束プロパティ

    ノードの収束プロパティは、そのノードに直接収束する親ノードの最終状態に基づいて、そのノードを実行するかどうかを決定します。このオプションは、ノードに直接接続する親ノードが複数ある場合に意義があります。収束プロパティには、次のいずれかの値を選択できます:
    • Any (デフォルト): Anyオプションは、このノードに収束するノードのいずれかが指定したとおりに完了した場合に、このノードを実行できることを規定します。

    • All: Allオプションは、このノードに収束するすべてのノードが指定したとおりに完了した場合にのみ、このノードを実行できることを意味します。

ワークフロー・テンプレートの設定

ノート:

この例では、次のサンプル・プレイブックを実行するジョブ・テンプレートのワークフローを作成するものとします:
  • yum_update.yaml: このプレイブックは、ターゲット・インベントリでyum更新を実行します。
  • httpd.yaml: このプレイブックは、ターゲット・インベントリにApache HTTPサーバーをインストールします。
サンプル・プレイブックを実行するジョブの設定の詳細は、「サンプル・プレイブックの設定と実行」を参照してください
ワークフロー・テンプレートを設定するには、次を実行します:
  1. サーバーのインベントリに対してプレイブックyum_update.yamlを実行する、RunSampleYumPlaybookという名前のジョブ・テンプレートを作成します。

  2. サーバーのインベントリに対してプレイブックhttpd.yamlを実行する、RunSampleApachePlaybookという名前のジョブ・テンプレートを作成します。

  3. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  4. リソース・セクションで、テンプレートをクリックします。

    テンプレート・ページが表示されます。

  5. 「追加」ボタンをクリックします。

    メニューが表示されます。

  6. ワークフロー・テンプレートの追加オプションをクリックします。

    新規ワークフロー・テンプレートの作成ページが表示されます。

  7. 名前フィールドに、ワークフロー・テンプレートの名前を入力します。たとえば、SampleWorkflowTemplateなどです。

    ノート:

    名前フィールドは、このページで唯一の必須フィールドです。組織フィールドやインベントリ・フィールドなどは、ワークフローレベルで設定する必要はありません。
  8. 保存をクリックします。

    ワークフロー・ビジュアライザ・ページが、開始ボタンとともにブラウザに表示されます。

  9. ワークフロー・ビジュアライザ・ページの開始ボタンをクリックします。

  10. ノードの追加ダイアログが表示されます。

    1. ノードの追加ダイアログの上部にあるノード・タイプ・ドロップダウン・リストで、ノードとして追加するリソースのタイプを選択できます。デフォルトの選択肢であるJob Templateを受け入れます。

    2. 利用可能なジョブ・テンプレートのリストからRunSampleYumPlaybookを選択します。

    3. 収束ドロップダウン・リストから、デフォルトのオプション(Any)を受け入れます。

      ノート:

      このプロパティは、追加するノードに複数の親が収束する場合に意義があります。
    4. 必要に応じて、ワークフロー・ビジュアライザでリソース名とは異なる特定の表示名で表示されるノードのノード別名を入力します。

    5. 保存をクリックします。

      ノードの追加ダイアログが閉じます。

      追加されたノードがワークフロー・ビジュアライザに表示されます。

  11. 新しく追加されたノードの上にマウス・カーソルを置きます。

    ワークフロー・ビジュアライザ内のノードの横に小さなツールバーが表示されます。

  12. 最初のノードの後に別のノードを追加するには、ツールバーの追加("+")アイコンをクリックします。

  13. ノードの追加ダイアログが表示されます。

    1. このノードはシーケンス内で2番目のため、ダイアログには最初から次の実行タイプ条件が選択肢として表示されます:
      • On Success
      • On Failure
      • Always

      デフォルトで選択されているオプション(On Success)を受け入れます。

    2. 次へをクリックします。

      この段階のノードの追加ダイアログには、前述の1番目のノードに関する手順と同じフィールド(ノード・タイプ収束ノード別名)が表示されます。

    3. RunSampleApachePlaybookを選択し、フィールドに入力します。

    4. 保存をクリックします。

      ノードの追加ダイアログが閉じます。

      追加されたノード、RunSampleApachePlaybookがワークフロー・ビジュアライザに表示されます。

      ノート:

      新しく追加されたノード、RunSampleApachePlaybookが1番目のノード(親)の右に表示され、この2つのノードは緑色の線で接続されます(緑色の線は、1番目のノードの実行が成功してから2番目のノードが実行されることを示します)。
  14. ワークフロー・ビジュアライザの右上にある保存をクリックします。

    ワークフロー・ビジュアライザが閉じ、詳細タブがアクティブな状態になって、新しく作成されたワークフロー・テンプレートが表示されます。

  15. ワークフローを実行する準備ができたら、起動をクリックします。

    出力ページが表示され、現在実行中のノードの左上隅に点滅する緑色のアイコンが表示されます。親ノード(RunSampleYumPlaybook)の実行が成功すると、2番目のノード(RunSampleApachePlaybook)が実行されます。

    ワークフローが正常に完了すると、各ジョブの完了にかかった時間が表示されます。

リソースのスケジュールの作成

Oracle Linux Automation Managerを使用すると、次のリソースのスケジュールを作成できます:

  • ジョブ・テンプレート

  • ワークフロー・テンプレート

  • インベントリ・ソース

  • プロジェクト

次の例は、リソース(このケースではジョブ・テンプレート)のスケジュールを作成する方法を示しています:

  1. Oracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. リソース・セクションで、テンプレートをクリックします。

    テンプレート・ページが表示され、使用可能なテンプレートがリストされます。

  4. スケジュールを作成するジョブ・テンプレートの名前をクリックします。

    ジョブ・テンプレートのタブ・ビューが表示されます。最初は詳細タブが開きます。

  5. スケジュール・タブに切り替えます。

  6. 「追加」ボタンをクリックします。

    新規スケジュールの作成ダイアログが開きます。名前フィールドにわかりやすい名前を入力します。

    開始日カレンダおよび開始時間ドロップダウン・リスト・コントロールを入力する場合は、ローカル・タイム・ゾーン・フィールドの値をメモしてください。

    ノート:

    ベスト・プラクティス: UTC時間でスケジュールを設定します。

    このアプリケーションでは、夏時間の調整が行われない世界標準時間であるUTCで、スケジュールが保存されます。そのため、季節的な時計の変更による混乱を避けるために、UTCでスケジュールを設定および追跡することをお薦めします。

  7. 保存をクリックします。

    スケジュールが保存され、スケジュールの詳細ページに表示されます。

    スケジュール・ビューにも表示されます。

実行環境の管理

次の各項では、実行環境の概要と、システムの実行環境を作成および表示する方法を説明します。

実行環境について

実行環境は、Oracle Linux Automation Engineの自動化タスクが実行される、移植可能なコンテナ・イメージです。実行環境は、Oracle Linux Automation Engine製品の以前のバージョンで使用されていたPython仮想環境に代わるものです。

ビルダー・ユーティリティで作成したカスタム実行環境も使用できます。これらのカスタム実行環境には、前述の基本コンポーネントに加えて、追加のコンポーネントが含まれています。ビルダー・ユーティリティの詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。

ノート:

ビルダー・ユーティリティを使用するとカスタム実行環境を作成できますが、カスタム実行環境に問題が発生した場合、問題のトラブルシューティングのために、提供されているOLAM-EEのデフォルト・イメージに戻すようお願いすることがあります。

実行環境は、移植可能な自己完結型のコンテナ・イメージであるため、自動化タスクを複数のプラットフォームにわたって一貫して実行できます。

Oracle Linux Automation Managerには、次のデフォルトの実行環境が付属しています:
  • OLAM EE

  • Control Plane Execution Environment

実行環境ページの表示

実行環境を表示するには、次を実行します:

  1. Oracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. 管理セクションで、実行環境をクリックします。

    実行環境ページに、システムで利用可能な実行環境に関連するサマリー表が表示されます。表の列には、次のリストに示すものが表示されます:

    • 名前

      名前列には、実行環境の名前が表示されます。

    • イメージ

      イメージ列には、実行環境で使用されるイメージの完全な場所(コンテナ・レジストリ、イメージ名、バージョン・タグが含まれるもの)が表示されます。たとえば、container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:latestなどです。あるいは、イメージの場所は、olam-eeイメージまたはカスタム・イメージをホストするPrivate Automation Hubインスタンスである可能性があります。詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。

    • 組織

      組織列には、システム内のどの組織が実行環境にアクセスできるかに関する情報が表示されます。

  4. 詳細を確認するには、実行環境の名前をクリックします。

    実行環境がタブ・ビューで表示され、詳細タブがアクティブな状態になります。名前、イメージ、組織の各フィールドに加えて、詳細タブには次のフィールドも表示されます:

    • 作成日

      作成日フィールドには、実行環境が作成された日時が表示されます。

    • 最終更新日

      最終更新日列には、実行環境が最後に変更された日時が表示されます。

    • プル

      プル・フィールドには、Oracle Linux Automation Managerがリソース・ジョブを実行する前にリポジトリの場所からコンテナ・イメージをプルする条件を規定する値が含まれます。次の値を指定できます。

      • Always

        このオプションは、コンテナを実行する前に常にコンテナ・イメージがプルされることを規定します。

      • Missing

        このオプションは、コンテナを実行する前にイメージが存在しない場合にのみ、コンテナ・イメージがプルされることを規定します。

      • Never

        このオプションは、コンテナを実行する前にコンテナ・イメージがプルされないことを規定します。

        重要:

        コンテナ・イメージを最新の状態に保ち、イメージに最新のCVE修正が確実に適用されるようにしてください。
  5. 実行環境に戻るボタン(タブ・ヘッダー行の最初のボタン)をクリックし、実行環境ページに戻ります。

実行環境の作成

実行環境を作成するには、次を実行します:

  1. Oracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. 管理セクションで、実行環境をクリックします。

  4. 追加をクリックします。

    新規実行環境の作成ページが表示されます。

  5. 名前フィールドに実行環境の名前を入力します。

  6. イメージ・フィールドに、実行環境で使用するイメージの場所(コンテナ・レジストリ、イメージ名、バージョン・タグが含まれるもの)を入力します。たとえば、container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:latestなどです。あるいは、olam-eeイメージまたはカスタム・イメージをホストするPrivate Automation Hubインスタンスを指すことができます。詳細は、『Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド』を参照してください。

  7. プル・リストから、Oracle Linux Automation Managerがリソース・ジョブを実行する前にリポジトリの場所からコンテナ・イメージをプルする条件を規定した、次のいずれかの値を選択します:
    • Always

      このオプションは、コンテナを実行する前に常にコンテナ・イメージがプルされることを規定します。

    • Missing

      このオプションは、コンテナを実行する前にイメージが存在しない場合にのみ、コンテナ・イメージがプルされることを規定します。

    • Never

      このオプションは、コンテナを実行する前にコンテナ・イメージがプルされないことを規定します。

      重要:

      コンテナ・イメージを最新の状態に保ち、イメージに最新のCVE修正が確実に適用されるようにしてください。
  8. 組織

    組織フィールドには、システム内のどの組織が実行環境にアクセスできるかに関する情報が表示されます。

  9. レジストリ資格証明

    レジストリ資格証明フィールドには、システムがコンテナ・レジストリに接続するために使用する必要がある資格証明が表示されます。詳細は、「実行環境のコンテナ・レジストリ資格証明の設定」を参照してください。

  10. 保存をクリックします。

インスタンス・グループの管理

この章では、Oracle Linux Automation Managerを使用してインスタンス・グループを作成および管理する方法について説明します。

インスタンス・グループおよびサービス・メッシュ・ノード・タイプについて

Oracle Linux Automation Managerによって提供されるサービス・メッシュは、コントローラ・ノードや実行ノードなどの様々なタイプのノードのメッシュを提供し、異なるインベントリ間でジョブを管理できるようにするオーバーレイ・ネットワークです。

Oracle Linux Automation Managerはインスタンス・グループを提供し、サービス・メッシュ内の様々なホストを、ノード・タイプおよび目的に応じて個別のグループに編成できるようにします。たとえば、本番マシンでジョブを実行するノードが含まれるmesh_nodes_for_productionというインスタンス・グループを作成し、開発サーバーでジョブを実行するmesh_nodes_for_development_machinesというグループを作成します。

次のリストは、インスタンス・グループおよびノードに関する重要ポイントを概説しています:

  • インスタンス・グループごとに1つのジョブ・キュー

    各インスタンス・グループには独自のジョブ・キューがあり、インスタンス内のどのノードでもそのキューからジョブを処理できます。

  • 追加ノードの構成

    インスタンス・グループに最初に関連付けることができるノードは、インストール・プロセス中にメッシュ・トポロジ用に構成したものです。新しいインスタンス・グループを作成するなどして、追加のノードが必要になった場合は、最初のノードの作成時と同じプロセスに従う必要があります(メッシュ・トポロジ用のノード構成の詳細は、『Oracle Linux Automation Manager 2.3: インストレーション・ガイド』を参照してください)。

  • ノードは複数のインスタンス・グループに所属できる

    たとえば、一部のノードをクラスタ全体で使用できるようにし、その他のノードを特定のインスタンス・グループ用に予約できます。

  • インスタンス・グループとリソースの関連付け

    デフォルトでは、ジョブはインストール・プロセス中に作成したExecutionインスタンス・グループで実行されます(詳細は、『Oracle Linux Automation Manager 2.3: インストレーション・ガイド』を参照)。

    ただし、必要に応じて、インスタンス・グループを次のいずれかのリソースに関連付けることで、インスタンス・グループを指定できます:

    • ジョブ・テンプレート

    • インベントリ

    • 組織

    ジョブが実行されると、Oracle Linux Automation Managerはまず、そのジョブに関連付けられたジョブ・テンプレートをチェックし、ジョブを割り当てるインスタンス・グループを確認します。ジョブ・テンプレートにインスタンス・グループが関連付けられていない場合、Oracle Linux Automation Managerは次に、ジョブにリンクされているインベントリ・リソースをチェックします。インベントリ・リソースにインスタンス・グループが関連付けられていない場合、組織リソースをチェックします。

  • デフォルトで提供されるインスタンス・グループ

    Oracle Linux Automation Managerには、次のインスタンス・グループが付属しています:

    • controlplane:

      controlplaneインスタンス・グループには、制御ノードが含まれます。制御ノードは、タスク・ディスパッチャ、プロジェクトおよびインベントリの更新、システム・ジョブなどの永続的なOracle Linux Automation Managerサービスを実行しますが、通常のジョブは実行しません。制御ノードには実行機能はありません。

    • execution:

      executionインスタンス・グループには、実行ノードが含まれます。実行ノードは、podman分離を使用して、ansible-runnerの下でジョブを実行します。実行ノードはユーザー空間のジョブのみを実行します。

次の各項では、インスタンス・グループを表示および編集する方法、ジョブとリソースを特定のインスタンス・グループに関連付ける方法、およびグループの作成方法について説明します。

インスタンス・グループの概要の表示

インスタンス・グループ・ページを表示するには、次を実行します:

  1. 管理者ユーザー・アカウントを使用してOracle Linux Automation Managerにログインします。

  2. 左側のナビゲーション・メニューがまだ表示されていない場合は、ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えることで、表示します。

  3. 管理セクションで、インスタンス・グループをクリックします。

    インスタンス・グループ・ページが表示されます。

インスタンス・グループ・ページには、システム内のインスタンス・グループに関連するサマリー表が表示されます。表の列には、次のリストに示すものが表示されます:

  • 名前

    名前列には、インスタンス・グループの名前が表示されます。名前をクリックすると、そのインスタンスのプロパティのタブ・ビューが表示されます。最初は詳細タブがアクティブになっています。

  • 実行中のジョブ

    実行中のジョブ列には、インスタンス・グループに関連付けられている実行中のジョブの数が表示されます。

  • ジョブの合計

    ジョブの合計列には、インスタンス・グループに関連付けられている完了したジョブの数と、そのグループに関連付けられているまだ実行中のジョブの数の合計が表示されます。

  • 容量

    容量列には、インスタンス・グループの容量の使用率を示す使用済容量プログレス・バーが表示されます。

  • アクション

    アクション列には、インスタンスの編集を可能にするインスタンス・グループの編集アイコンが表示されます。

インスタンス・グループの編集

次の各項では、インスタンス・グループを編集し、グループに関連付けられたノードのプロパティを変更する方法を説明します。

インスタンス・グループのポリシー・プロパティの編集

インスタンス・グループには次のポリシー・プロパティを設定できます:

  • ポリシー・インスタンスの最小数

    新しくプロビジョニングされたインスタンスがオンラインになったときに、グループに自動的に割り当てられるインスタンスの最小数です。

  • ポリシー・インスタンスの割合

    新しいインスタンスがオンラインになったときに、このグループに自動的に割り当てられるすべてのインスタンスの最小割合です。

インスタンス・グループのポリシー・プロパティを設定するには、次を実行します:

  1. 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、インスタンス・グループ・ページに移動します。

  2. インスタンス・グループ・ページに表示されるサマリー表で、ポリシー・インスタンス・プロパティを編集するグループの行に移動します。

  3. アクション列で、インスタンス・グループの編集アイコンをクリックします。

    詳細の編集ページが表示されます。

  4. ポリシー・インスタンスの最小数およびポリシー・インスタンスの割合の各プロパティ・フィールドに値を入力します。

  5. 保存をクリックします。

    インスタンスのタブ・ビューが表示されます。

グループ・インスタンスとのノードの関連付けおよび関連付け解除

次のステップは、ノードをグループ・インスタンスに関連付けたり、関連付けを解除したりする方法を示しています:

  1. 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、インスタンス・グループ・ページに移動します。

  2. インスタンス・グループ・ページに表示されるサマリー表で、ノードの関連付けを変更するグループの行に移動します。

  3. 名前列にあるグループ・インスタンス名をクリックします。

    インスタンスのプロパティのタブ・ビューが表示されます。最初は詳細タブが開きます。

  4. 「インスタンス」タブをクリックします。

    グループに関連付けられたノード・インスタンスがテーブルに表示されます。

  5. グループにさらにノード・インスタンスを関連付けるには、次を実行します:
    1. 関連付けボタンをクリックします。

      インスタンスの選択ダイアログが表示され、利用可能なノード・インスタンスがリストされます。

    2. グループ・インスタンスに関連付けるノードの横にあるチェック・ボックスをオンにします。

    3. 保存をクリックします。

      インスタンス・ページが表示され、選択したノードがページ上のリストに表示されます。

  6. 現行のグループ・インスタンスからノードを関連付け解除するには、次を実行します:
    1. 現行のグループから関連付けを解除する各ホストの横にあるチェック・ボックスを選択し、関連付けの解除ボタンをクリックします。

      アクションを確認するダイアログが表示されます。

    2. 続行する場合は、ダイアログの関連付けの解除ボタンをクリックしてアクションを確定します。

      ダイアログが閉じ、グループから関連付けを解除したノードがリストに表示されなくなります。

ノード・インスタンス・プロパティの変更

次の手順では、特定のノードのプロパティを変更する方法を示します。

ノード・インスタンスの容量は、同時に実行できるフォークの数を決定します。したがって、容量はノードがジョブを並列実行できるシステムの数に影響します。ノード・インスタンスの容量を変更するには、次を実行します:

  1. 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、インスタンス・グループ・ページに移動します。

  2. インスタンス・グループ・ページに表示されるサマリー表で、編集するノードに関連付けられているグループの行に移動します。

  3. 名前列にあるグループ・インスタンス名をクリックします。

    インスタンスのプロパティのタブ・ビューが表示されます。最初は詳細タブが開きます。

  4. 「インスタンス」タブをクリックします。

    グループに関連付けられたノード・インスタンスがテーブルに表示されます。

  5. 変更するノード・インスタンスがある行に移動します。

  6. 容量を調整するには、容量調整列のスライダ・コントロールを任意の値までドラッグします。

    ノート:

    • 変更は自動的に保存されます。保存ボタンはありません。
    • 新しい容量設定が、ノードが属する可能性のある他のインスタンス・グループに適しているかどうかを検討します。

有効化/無効化の設定により、ノード・インスタンスにジョブを割り当てることができるかどうかを制御できます。たとえば、メンテナンスのためにノード・インスタンスの1つを一時的に無効化する必要がある場合などです。ノード・インスタンスの有効化/無効化の設定を変更するには、次を実行します:

  1. 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、インスタンス・グループ・ページに移動します。

  2. インスタンス・グループ・ページに表示されるサマリー表で、編集するノードに関連付けられているグループの行に移動します。

  3. 名前列にあるグループ・インスタンス名をクリックします。

    インスタンスのプロパティのタブ・ビューが表示されます。最初は詳細タブが開きます。

  4. 「インスタンス」タブをクリックします。

    グループに関連付けられたノード・インスタンスがテーブルに表示されます。

  5. 変更するノード・インスタンスがある行に移動します。

  6. ノード・インスタンスの有効化/無効化の設定を変更するには、アクション列の有効化/無効化の切替えスイッチを切り替えます。

    ノート:

    • 変更は自動的に保存されます。保存ボタンはありません。
    • 新しい設定が、ノードが属する可能性のある他のインスタンス・グループに適しているかどうかを検討します。

インスタンス・グループの作成

次のステップは、インスタンス・グループを作成する方法を示します:

  1. 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、インスタンス・グループ・ページに移動します。
  2. 「追加」ボタンをクリックします。

    メニューが表示されます。

  3. インスタンス・グループの追加オプションをクリックします。

    「新規インスタング・グループの作成」が表示されます。

  4. 名前フィールドに、インスタンス・グループの名前を入力します。たとえば、 NodesForDataCentre1などです。

  5. 必要に応じて、ポリシー・インスタンスの最小数およびポリシー・インスタンスの割合フィールドに整数を入力します。

    ノート:

    ポリシー・インスタンス・フィールドは次のように定義されます:
    • ポリシー・インスタンスの最小数:

      新しくプロビジョニングされたインスタンスがオンラインになったときに、グループに自動的に割り当てられるインスタンスの最小数です。

    • ポリシー・インスタンスの割合:

      新しいインスタンスがオンラインになったときに、このグループに自動的に割り当てられるすべてのインスタンスの最小割合です。

  6. 保存をクリックします。

    新しく作成したインスタンス・グループがタブ・ビューで表示され、詳細タブがアクティブな状態になります。

  7. インスタンス・タブをクリックして、インスタンス・タブに切り替えます。

    グループに関連付けられたノード・インスタンスがテーブルに表示されます。

  8. グループにさらにノード・インスタンスを関連付けるには、関連付けボタンをクリックします。

    インスタンスの選択ダイアログが表示され、利用可能なノード・インスタンスがリストされます。

  9. グループ・インスタンスに関連付けるノードの横にあるチェック・ボックスをオンにします。

    保存をクリックします。

    インスタンス・ページが表示され、選択したノードがページ上のリストに表示されます。