3 リソースの管理
この章では、リソースの管理について説明します。 リソースは、Oracle Linux Automation Managerとプレイブックとインベントリの間の主要な構成タッチ・ポイントです。 これらのリソースは、プロジェクト、インベントリ、資格証明、ジョブ・テンプレートおよびワークフロー・テンプレートです。
プロジェクトの管理
プロジェクトは、Oracle Linux Automation Engineプレイブックのリポジトリを表すリソースです。 リポジトリは、ローカル、またはGitなどのリモート・ソース・コード管理(SCM)システムで使用できます。
プロジェクトを作成するには、次の手順を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合はナビゲーション・メニューを表示します。
-
「リソース」セクションで、「プロジェクト」をクリックします。
「プロジェクト」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規プロジェクトの作成」ページが表示されます。
-
「名前」フィールドに、名前を入力します。 たとえば、
Project1
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
プロジェクトに許容可能な収集要件がある場合は、次のオプションの1つ以上を使用できる組織を選択する必要があります:
-
実行時のリポジトリからのコレクションのダウンロード
このオプションを使用するには、コレクションのダウンロード元のリポジトリごとに資格証明が設定されている組織を選択する必要があります。 詳細は、「Ansible Galaxy/Automation Hub APIトークン資格証明の設定」を参照してください。
-
Private Automation Hubでホストされるカスタム実行環境の利用
このオプションを使用するには、実行可能コレクションを含むPrivate Automation Hubカスタム実行環境を「イメージ」プロパティが参照する実行環境を持つ組織を選択する必要があります。
組織リストから、組織を選択します。
-
-
「選択」をクリックします。
-
「ソース・コントロール資格証明タイプ」リストから、次のいずれかを選択します:
-
マニュアル:
「手動」オプションを使用すると、Oracle Linux Automation Managerをホストするマシン上のローカル・プレイブックを選択できます。 「プレイブック・ディレクトリ」というラベルのドロップダウン・リストからプレイブックを選択します。
詳細は、「ローカル・プレイブックへのアクセス」を参照してください。
-
Git:
Gitオプションを使用すると、リモート・リポジトリのプレイブックを使用できます。 これらのオプションのいずれかを選択すると、選択したリモート・リポジトリにアクセスできるように、入力するソース・コントロール・フィールドが表示されます。
たとえば、ソースの詳細および資格証明の設定の詳細は、「Gitでのリモート・プレイブックへのアクセス」を参照してください。
- Subversion:
Subversionオプションを使用すると、リモート・リポジトリのプレイブックを使用できます。 これらのオプションのいずれかを選択すると、選択したリモート・リポジトリにアクセスできるように、入力するソース・コントロール・フィールドが表示されます。
- リモート・アーカイブ:
「リモート・アーカイブ」オプションを使用すると、リモート・アーカイブからのプレイブックを使用できます。 これらのオプションのいずれかを選択すると、選択したリモート・リポジトリにアクセスできるように、入力するソース・コントロール・フィールドが表示されます。
-
-
「保存」をクリックします。
ローカル・プレイブックへのアクセス
Oracle Linux Automation Managerのインスタンスからローカル・プレイブックにアクセスできるようにするには、必要な管理権限があることを確認し、次のステップを実行します:
- Oracle Linux Automation Managerをホストしているサーバーにログオンします。
-
プレイブックを格納するディレクトリを作成します。 デフォルトのロケーションは
/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
へのシンボリック・リンクです。 -
ディレクトリ内にプレイブック・ファイルをコピーまたは作成します。 サンプル・プレイブックについては、
/var/lib/ol-automation-manager/projects/demo_bundled
を参照してください。 -
Oracle Linux Automation Managerが使用する、同じユーザー、グループおよび権限にplaybookディレクトリとファイルを設定します。
ノート:
プロジェクト・パスの追加に問題がある場合は、SELinuxのアクセス権およびコンテキスト設定を確認します。
Gitでのリモート・プレイブックへのアクセス
Gitは、プロジェクトの一部としてOracle Linux Automation Managerシステムにクローニングできるプレイブックを格納できるリポジトリを含む分散バージョン制御システムです。
Gitでリモート・プレイブックにアクセスするには、次の手順を実行します:
-
新しいGitリポジトリを設定するか、リモートGitサーバーで既存のGitリポジトリを使用します。
たとえば、GitHubは、https://github.com/ansible/ansible-tower-samplesにある公開Ansibleサンプル・プロジェクトをホストします。注意:
これはパブリック・リポジトリであるため、Oracleはそこに含まれる例については責任を負いません。
-
SSH認証が必要なプライベート・リポジトリを使用している場合は、Oracle Linux Automation Managerを実行しているシステムでSSH秘密キーと公開キーを設定し、公開キーをGitユーザー・アカウントにコピーする必要があります。
- Oracle Linux Automation Manager UIに戻り、「リソース」セクションから「プロジェクト」をクリックします。
「プロジェクト」ページが表示されます。
- 変更するプロジェクトの名前をクリックし、「編集」をクリックします。
- 「ソース管理タイプ」がGitに設定されていることを確認し、「ソース・コントロールURL」フィールドにSCMリポジトリのURLを入力します。
-
「ソース・コントロール・ブランチ/タグ/コミット」フィールドにSCMブランチ、タグまたはコミットを指定する必要がある場合は、ブランチ、タグまたはコミット・ハッシュを入力します。
-
ブランチからrefspecを取得する必要がある場合は、「ソース・コントロール参照仕様」フィールドにrefspecを入力します。
-
指定したGitリポジトリがプライベートで、アクセスするために資格証明が必要な場合は、「ソース・コントロール資格証明」リストから資格証明を選択します。 資格証明の設定の詳細は、「資格証明の設定」を参照してください。
-
「保存」をクリックします。
-
Oracle Linux Automation Managerでプロキシを介したGitリポジトリへのアクセスが必要な場合は、左側のメニューを展開して「設定」をクリックします。
設定ページが表示されます。
-
「ジョブ設定」をクリックします。
詳細ページが表示されます。
-
「編集」ボタンをクリックします。
-
「その他の環境変数」フィールドに、次のように入力します:
{ "https_proxy": "proxy_address:proxy_port" }
前の例では、proxy_addressはプロキシ・アドレス、proxy_portはプロキシのポートです。
-
「保存」をクリックします。
ノート:
プレイブックでOCI Ansibleコレクションを使用する場合は、https://docs.oracle.com/iaas/Content/API/SDKDocs/ansible.htmを参照し、AWXに関する設定手順を確認してください。
在庫、グループおよびホストの管理
次の項では、在庫およびホストの管理について説明します。
在庫およびグループの管理
インベントリとは、ジョブおよびコマンドを実行できるホストの集合です。 在庫内にグループを作成し、それらのグループをさらにサブグループに分割できます。
在庫の作成
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
「リソース」セクションで、「インベントリ」をクリックします。
「インベントリ」ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「インベントリの追加」オプションをクリックします。
新しいインベントリの作成ページが表示されます。
-
「名前」フィールドに、インベントリの名前を入力します。 たとえば、
Inventory1
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから組織を選択します。
-
「選択」をクリックします。
-
「変数」フィールド(コード・ボックス)で、YAMLまたはJSONコードを入力して、次を実行してインベントリ変数を指定できます:
- YAMLまたはJSONボタンをクリックして、使用する構文を指定します。
- コード編集ボックスに変数を入力します。
-
「保存」をクリックします。
インベントリへのグループまたはサブグループの追加
- 「グループ」をクリックします。
グループのリストが表示されます。
- 「追加」をクリックします。
「新規グループの作成」ダイアログが表示されます。
- 「名前」フィールドに名前を追加します。
- 「保存」をクリックします。
グループの詳細ページが表示されます。
- 「関連グループ」をクリックします。
「関連グループ」ページが表示されます。
- 「追加」をクリックします。
- 次のいずれかを行います:
- 既存のグループを追加するには、「既存のグループの追加」をクリックし、既存のグループに関連付ける1つ以上の既存のグループを選択します。
- 新しいグループを追加するには、「新しいグループを追加」をクリックして、現在のグループに関連するグループを作成します。
- 「保存」をクリックします。
ホストの管理
ホストを作成するには、次の手順を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
「リソース」セクションで、「ホスト」をクリックします。
ホスト・ページが表示されます。
-
「追加」ボタンをクリックします。
「新規ホストの作成」ページが表示されます。
-
「名前」フィールドに、IPアドレスまたはホスト名を入力します。
- 「インベントリ」フィールドで、「検索」ボタンをクリックします。
「インベントリの選択」ページが表示されます。
-
インベントリ・リストからインベントリを選択します。
-
「保存」をクリックします。
詳細ページが表示されます。
- ホストを「オン」または「オフ」に設定して、ホストがジョブに対して使用可能かどうかを示します。
- 「ファクト」をクリックして、ホストで実行されたジョブからホスト用に収集されたファクトを確認します。 ファクト記憶域の有効化の詳細は、「ジョブ・テンプレートの設定」を参照してください。
- 「グループ」をクリックします。
グループのリストが表示されます(構成されている場合)。
- 「追加」をクリックして、グループを追加します。
- リストから1つ以上のグループを選択して、ホストをグループに追加します。 選択可能なグループは、ホストが関連付けられているインベントリに作成されます。 グループの作成の詳細は、「在庫およびグループの管理」を参照してください。
- 「保存」をクリックします。
ホストまたはグループに対するワン・オフ・コマンドの実行
インベントリ内の1つ以上のホストまたはホスト・グループに対してOracle Linux Automation Engine組込みモジュールを使用して単一コマンドを実行するには(コマンドラインでのモジュールの実行と同様)、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
「リソース」セクションで、「インベントリ」をクリックします。
「インベントリ」ページに、使用可能なインベントリのリストが表示されます。
- コマンドを実行するホストを含むインベントリの名前をクリックします。
インベントリが詳細タブに表示されます。
-
次のいずれかを行います:
-
「ホスト」タブをクリックして、1つ以上のホストでコマンドを実行します。
- 「グループ」タブをクリックして、1つ以上のホスト・グループに対してコマンドを実行します。
-
-
左側の1つ以上のホストまたはグループの横にあるチェックボックスを選択します。
ノート:
チェック・ボックスのいずれも選択しない場合、システムは、すべてのホストまたはグループに対してコマンドを実行することを想定します。 -
「実行コマンド」ボタンをクリックします。
「実行コマンド」ページが表示されます。
-
「モジュール」リストからモジュールを選択します。 たとえば、モジュール・シェルを選択します。
-
「引数」フィールドに、選択したモジュールで必要な引数を入力します。 たとえば、
uname -a
。 -
「次へ」をクリックします。
使用可能な実行環境のリストが表示されます。
-
「実行環境」を選択します。
環境を選択しない場合、コマンドはデフォルトで
OLAM EE
実行環境で実行されます。 -
「次へ」をクリックします。
使用可能なマシン資格証明のリストが表示されます。
-
マシンの「マシン資格証明」を選択します。 資格証明の設定の詳細は、「資格証明の設定」を参照してください。
-
「起動」をクリックします
「出力」ページが表示され、ジョブ操作がリアルタイムで表示され、最終的に「失敗」の「成功」のステータスが表示されます。
スマート在庫の管理
スマート・インベントリとは、ホストが手動で定義されたグループではなく、フィルタ基準に基づいて自動的にグループ化されるインベントリのタイプです。 ホスト・フィルタ基準は、ホスト名、グループ・メンバーシップなどの属性、またはホストに関するファクトを収集した、以前に実行したジョブによって収集および格納されたホスト・ファクトに基づくことができます。 インベントリは、スマート・インベントリを使用するジョブが実行されるたびに更新されます。
スマート・インベントリを設定するには、次の手順を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
「リソース」セクションで、「インベントリ」をクリックします。
「インベントリ」ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「スマート在庫の追加」オプションをクリックします。
「新規スマート・インベントリの作成」ページが表示されます。
-
「名前」フィールドに、スマート・インベントリの名前を入力します。
-
「組織」フィールドで、searchをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから組織を選択します。
-
「選択」をクリックします。
ノート:
スマート在庫は、同じ組織の一部である在庫を使用してのみ作成できます。 - 「スマート・ホスト・フィルタ」フィールドで、検索アイコンをクリックします。
「検索を実行してホスト・フィルタを定義します」ダイアログが表示されます。
- Oracle Linux Automation Managerで構成または生成された情報に基づいて検索を実行するには、次のいずれかを選択します:
- 名前: ホストのフルネーム、または複数のホストで共有される可能性のある名前の一部を入力します。 たとえば、各名前が
eastern_region
またはwestern_region
で始まるホストが複数ある場合、このフィールドにeastern_region
と入力して、eastern_region
内のホストのみを選択できます。 - グループ: グループ名全体またはグループ名の一部を入力します。 たとえば、
group1
に1つのホストがあり、group2
に別のホストがある場合、group
と入力すると両方のホストが表示されます。group1
と入力すると、group1
のホストのみに入ります。 グループの作成の詳細は、「在庫およびグループの管理」を参照してください。 - 有効可済: ジョブに使用可能なすべてのホストを表示するには、これをはいに設定します。 ジョブに使用できないすべてのホストを表示するには、これを「いいえ」に設定します。
- 在庫ID: 在庫の在庫IDを入力します。
api/v2/inventories/
REST APIエンドポイントを使用して、在庫の在庫IDを確認できます。 - インスタンスID: コントロールまたは実行ノード・インスタンスのインスタンスIDを入力します。
api/v2/instances/
REST APIエンドポイントを使用して、インベントリのインスタンスIDを検索できます。 - 最終ジョブ: 1つ以上のホストに対して実行されたジョブのジョブIDを入力します。 ジョブが実行された各ホストが表示されます。 ジョブIDを取得するには、「ジョブの表示」を参照してください。
- 上級: セット・タイプ、様々なキーおよびルックアップ・タイプ(
exact
、startswith
など)に基づいて、より詳細な検索を実行します。
- 名前: ホストのフルネーム、または複数のホストで共有される可能性のある名前の一部を入力します。 たとえば、各名前が
- 既存のホストでのプレイブックの実行から生成されたストアド・ファクトに基づいて拡張検索を実行するには、次の手順を実行します:
- このスマート・インベントリが適用されるホストに関するファクトを収集および格納するジョブが実行されていることを確認します。 ファクトの格納の詳細は、「ジョブ・テンプレートの設定」を参照してください。 ストアド・ファクトの表示の詳細は、「ホストの管理」を参照してください。
- リストから「上級」を選択します。
- 「キー」リストから、ansible_factsを選択します。
- 検索フィールドに、検索するファクトを入力します。 有効なパラメータは次のとおりです:
- グループ化の場合は
()
、 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"
- グループ化の場合は
- 検索を定義したら、「選択」をクリックします。
検索がスマート・ホスト・フィルタ・フィールド内に表示されます。 検索を追加または削除するには、検索アイコンを再度クリックします。
-
「変数」フィールド(コード・ボックス)で、YAMLまたはJSONコードを入力して、次を実行してインベントリ変数を指定できます:
- YAMLまたはJSONボタンをクリックして、使用する構文を指定します。
- コード編集ボックスに変数を入力します。
-
「保存」をクリックします。
- オプションで、制御ノードまたはハイブリッド・ノード上の/etc/tower/conf.d/ <configuration file>.pyファイル(<configuration file>は構成ファイルの名前)に次の設定を追加することで、スマート・インベントリのメンバーシップをより頻繁に更新するようにOracle Linux Automation Managerを構成できます。
AWX_REBUILD_SMART_MEMBERSHIP=True
これにより、次のイベントのメンバーシップが更新されます:- 新しいホストが追加されたとき
- 既存のホストが変更(更新または削除)されたとき
- 新しいスマート在庫が追加されたとき
- 既存のスマート在庫が変更(更新または削除)された場合
ノート:
このパラメータを有効にすると、システムの負荷が増加します。
外部在庫ソースの管理
- 手動でUIを使用して、
- 自動的にスケジュールに従って、
- インベントリを使用するジョブが実行されるたびに自動的に実行されます。
動的インベントリの作成
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
- 「在庫およびグループの管理」の説明に従って、インベントリを作成します。
- 「プロジェクトの管理」の説明に従って、GITインベントリへのアクセス権で構成されたプロジェクトを作成します。
-
「リソース」セクションで、「インベントリ」をクリックします。
「インベントリ」ページが表示されます。
- 作成した在庫を選択します。
- 「ソース」をクリックします。
- 「追加」をクリックします。
「新規ソースの作成」ページが表示されます。
- 「名前」フィールドに、名前を入力します。
- 「実行環境」リストから、検索ボタンをクリックして、リモート・リポジトリからインベントリをインポートするジョブの実行時に使用する実行環境を選択します。
ノート:
このフィールドを空白のままにすると、デフォルトの実行環境が使用されます。 デフォルトの実行環境の詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。
- 「ソース」リストから、「プロジェクトからのソース」を選択します。
「ソース詳細」という新しいセクションが表示されます。
- 「資格証明」リストから、検索ボタンをクリックし、必要に応じて使用する資格証明を選択します。 たとえば、さらに認証が必要なインベントリ・ファイルを選択できます。たとえば、Oracle Cloud Infrastructure (OCI)のインベントリにはOCI資格証明が必要です。 詳細については、「Oracle Cloud Infrastructure資格証明の設定」を参照してください。
- 「プロジェクト」リストから、検索ボタンをクリックして、インベントリを含むgitリポジトリを含む使用するプロジェクトを選択します。
- 「在庫ファイル」フィールドに、インベントリ・ファイルのパスと名前を入力します。 有効なインベントリ形式の詳細は、「インベントリ・ファイル形式」を参照してください。
ノート:
インベントリ・パスは、gitリポジトリのルート・ディレクトリから始まります。 インベントリ・ファイルがリポジトリのルート・レベルの場合は、リポジトリ・ファイルの名前を入力します。 インベントリ・ファイルが1つ以上のフォルダ内にある場合は、最初のフォルダの名前をスラッシュなしで入力し、各サブフォルダの前にスラッシュを含めます。 たとえば、inventory/north_america/inventory.yaml
。 - インベントリ・ファイルのパスおよび名前を入力すると、「ソースをパスに設定」フィールドが表示され、インベントリ・パスおよびファイル名が複製されます。 インベントリ・パスおよびファイル名の入力が終了したら、このフィールドをクリックしてインベントリを選択します。
- 冗長性リストから、冗長性レベルを入力します。 これにより、インベントリ・ジョブ更新で生成される出力のレベルが決まります。 有効な値は次のとおりです。
- 0 (警告)
- 1 (Info)
- 2 (デバッグ)
- 「更新オプション」領域で、必要に応じて次を選択します:
- 上書き: 外部ソースに存在しなくなったホストおよびグループをインベントリから削除するには、このオプションを有効にします。 管理対象外のホストおよびグループは、次の手動グループに移動するか、存在しない場合は「all」グループにとどまります。 無効にすると、管理対象外のホストおよびグループは更新中に変更されません。
- 変数の上書き: 子グループおよびホストのすべての変数を外部ソースのすべての変数に置き換えるには、このオプションを有効にします。 ローカル変数と外部変数をマージするには無効にしてください。
- 起動時に更新: このオプションを有効にすると、このインベントリを使用してジョブが実行されるたびに、最初にインベントリがリフレッシュされます。
- 「保存」をクリックします。
- 「同期」をクリックして、ソース情報を同期します。 これにより、「ジョブ」領域から表示できる同期ジョブがトリガーされます。 詳細は、「ジョブの表示」を参照してください。
- 同期後、メイン・インベントリ・ページに戻り、インポートされたホストおよびグループ情報について「ホスト」および「グループ」タブを確認します。
インベントリ・ファイル形式
プロジェクトからインベントリを実行する場合、インベントリ・ソースは様々な形式またはスクリプト・プラグインでファイルを指すことができます。 次の各項では、使用できる様々なファイル形式について説明します。
yaml在庫
YAMLインベントリ・ファイルに使用できる有効な拡張子は、.yaml
、.yml
および.json
です。 YAMLインベントリ構造には、次の要素が含まれます:
all
: ファイルは、all
グループで始まる必要があります。hosts
:all
グループで、hosts
は、ネストされたエントリを変数として処理できる個々のホスト定義を指定します。vars
: オプションで、このエレメントを任意の定義済グループで使用して、1つ以上の変数を含めることができます。children
: オプションで、これを使用して、独自のホスト、VARおよび子を再帰的に含めることができる子グループを指定できます。
次に、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にある仕様に従います:
[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コレクションを含むバージョンの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秘密キーです。
-
Orace Cloud Infrastructure:
Oracle Cloud Infrastructure (OCI)資格証明は、OCIマシンまたはインベントリへのアクセスに使用されます。 OCI SDKを含むOracle Linux Automation Engine実行環境のバージョンで実行されているジョブを使用して、OCI資格証明を使用する必要があります。 OCI SDKを含むOracle Linux Automation Engines実行環境の詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。
Oracle Linux Automation Managerで、入力した資格証明は、データベースに格納される前に暗号化されます。 暗号化/復号化アルゴリズムはFernetのバリエーションを使用: SHA-256 HMACと並行して、CBCモードでAES-256を使用する対称暗号化方式。 キーは、Oracle Linux Automation Managerインストールで設定されているSECRET_KEYから導出されます(詳細は、「Oracle Linux Automation Manager 2.3: インストール・ガイド」を参照してください)。
資格証明は、抽出および使用時に復号化されます。
次の項では、Oracle Linux Automation Managerでの様々な種類の資格証明の設定に関する情報を提供します。
Git資格証明の設定
Git資格証明を設定するには、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
GitCredential1
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、「ソース・コントロール」を選択します。
-
UserNameフィールドに、必要に応じてユーザー名を入力します。
-
必要に応じて、「パスワード」フィールドにパスワードを入力します。
-
「SCM秘密キー」フィールドに、Oracle Linux Automation Managerを実行しているホストで設定したSSH秘密キー(SSH認証を使用している場合)を入力します。
-
「秘密キーのパスフレーズ」フィールドに、パスフレーズを入力します(SSH認証用のパスフレーズを設定している場合)。
-
「保存」をクリックします。
Oracle Cloud Infrastructure資格証明の設定
Oracle Cloud Infrastructure (OCI)資格証明を設定するには、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
OCICredential
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、Oracle Cloud Infrastructureを選択します。
-
「ユーザーOCID」フィールドにOCIDを入力します。
-
「フィンガープリント」フィールドに、フィンガープリントを入力します。
-
「テナントOCID」フィールドに、テナントOCIDを入力します。
- 「リージョン」フィールドに、リージョンを入力します。
-
「プライベート・キー」フィールドに、SSH秘密キーを入力します。
-
「プライベート・ユーザー・キー・パスフレーズ」フィールドに、パスフレーズを入力します(SSH認証用のパスフレーズを設定している場合)。
-
「保存」をクリックします。
マシン資格証明の設定
マシン資格証明は、sshを介してターゲット・ホストにアクセスするために使用されます。
マシン資格証明を設定するには、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
InventoryMachineCredential1
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、「マシン」を選択します。
-
「ユーザー名」フィールドに、必要に応じてユーザー名を入力します。
-
必要に応じて、「パスワード」フィールドにパスワードを入力します。
-
インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動するときにパスワード・プロンプトを表示する場合は、パスワード・フィールドの上にある「起動時にプロンプト」チェック・ボックスを選択します。
-
「SSH秘密キー」フィールドに、必要に応じてSSH認証の使用時にOracle Linux Automation Engineがターゲット・ホストにアクセスするために使用するSSH秘密キーを入力します。
-
必要に応じて、「署名付きSSH証明書」フィールドに署名付きSSH証明書を入力します。
-
「秘密キーのパスフレーズ」フィールドに、パスフレーズを入力します(SSH認証用のパスフレーズを設定している場合)。
-
インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動するときに秘密キーのパスフレーズ・プロンプトを表示する場合は、「秘密キーのパスフレーズ」フィールドの上にある「起動時にプロンプト」チェック・ボックスを選択します。
-
「権限エスカレーション・メソッド」リストから、マシンで実行するプレイブックにエスカレーション・メソッド(
sudo
など)が必要な場合は、エスカレーション・メソッドを選択します。 -
「権限エスカレーション・ユーザー名」フィールドに、必要に応じてユーザー名を入力します。
-
必要に応じて、「特権エスカレーションのパスワード」フィールドにパスワードを入力します。
-
インベントリに対してジョブ・テンプレートまたはジョブ・ワークフローを起動するときにパスワード・プロンプトを表示する場合は、「特権エスカレーションのパスワード」フィールドの上にある「起動時にプロンプト」を選択します。
-
「保存」をクリックします。
Ansible Galaxy/Automation Hub APIトークン資格証明の設定
Oracle Linux Automation Managerは、リポジトリのロケーションからコレクションにアクセスしてダウンロードできるように、Ansible Galaxy/Automation Hub Api Token資格証明タイプを提供します。 たとえば、次の資格証明を作成できます:
-
公開されているロケーションhttps://galaxy.ansible.com/にアクセスするための、
My Ansible Galaxy Credential
という資格証明。 このようなロケーションは、公開されているので、認証情報(APIトークンなど)を資格証明に入力する必要はありません。 -
Private Automation Hubリポジトリの1つにアクセスするための、
My Private Auto Hub API Token Credential
という資格証明(https://myprivateautomationhub/published
など)。 このようなロケーションには認証が必要なため、そのレジストリに関連付けられたPrivate Automation Hubコンソールから取得したAPIトークンを入力します。
複数のAnsible Galaxy/Automation Hub APIトークン資格証明を組織に追加できます。 組織に資格証明を追加する順序は、その組織に割り当てられたプロジェクトのコレクションをダウンロードするときにリポジトリが検索される順序を決定するため重要です。
重要:
コレクションおよびロールのダウンロードを有効にしたことの確認
SCMプロジェクトrequirements.yml
にリストされているコレクションおよびロールを動的にダウンロードできるようにするには、次のジョブ設定を有効にする必要があります:
-
コレクションのダウンロードを有効化
-
ロール・ダウンロードの有効化
ノート:
これらの設定は、Oracle Linux Automation Managerを初めてインストールしたときにデフォルトで有効になります。
ジョブ設定を編集するには:
-
左側のナビゲーション・メニューで「設定」をクリックします。
-
「ジョブ設定」リンクをクリックします。
-
「編集」をクリックして、設定の編集に進みます。
- 「保存」をクリックします。
次の例は、このような資格証明を作成するためのステップを示しています。
Ansible Galaxy資格証明の設定
ノート:
Ansible Galaxy
資格証明は、Oracle Linux Automation Managerのインストール時にデフォルトで作成されます。
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
My Ansible Galaxy Credential
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、「Ansible Galaxy/Automation Hub APIトークン」を選択します。
-
「GalaxyサーバーURL」フィールドに、galaxy ansible URL https://galaxy.ansible.com/と入力します。
-
「保存」をクリックします。
Private Automation Hubコレクション資格証明の設定
Private Automation Hub資格証明は、様々なリポジトリのコレクションを含むURLおよびAPIトークンを使用して、Private Automation Hubインスタンスにアクセスするために使用されます。
コレクションにアクセスするためのPrivate Automation Hub資格証明を設定するには、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
My Private Auto Hub API Token Credential
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、「Ansible Galaxy/Automation Hub APIトークン」を選択します。
-
「GalaxyサーバーURL」フィールドに、Private Automation HubリポジトリURLを入力します。 様々なリポジトリ・タイプの詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
- 「APIトークン」フィールドに、Private Automation Hub APIトークンを入力します。 Private Automation HubでのAPIトークンの作成の詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
-
「保存」をクリックします。
実行環境のコンテナ・レジストリ資格証明の設定
コレクションにアクセスするためのPrivate Automation Hub資格証明を設定するには、次を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
「追加」ボタンをクリックします。
「新規資格証明の作成」ページが表示されます。
-
「名前」フィールドに、資格証明の名前を入力します。 たとえば、
Registry Credentials
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、組織を選択します。
-
「選択」をクリックします。
-
「資格証明タイプ」リストから、「コンテナ・レジストリ」を選択します。
-
「認証URL」フィールドに、接続先のコンテナ・レジストリのIPアドレスまたはホスト名を入力します。 たとえば、これは、実行環境コンテナ・イメージをホストするPrivate Automation Hubインスタンス、またはhttps://container-registry.oracle.com/です。 Private Automation Hubの詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
- 「ユーザー名」フィールドに、必要な実行環境イメージにアクセスできるコンテナ・レジストリ・ユーザーのユーザー名を入力します。
- 「パスワードまたはトークン」フィールドに、ユーザーのパスワードを入力します。
- コンテナ・レジストリがSSL認証用に構成されている場合は、「SSLの検証」を有効にします。
-
「保存」をクリックします。
資格証明権限の設定
ノート:
資格証明アクセスを割り当てることができるのは、資格証明が属する同じ組織に属するユーザーおよびチームのみです。ユーザーおよびチームに資格証明を使用する権限を割り当てるには、次のステップを実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「資格証明」をクリックします。
「資格証明」ページが表示されます。
-
既存の資格証明を選択します。
選択した資格証明が詳細タブがアクティブな状態で表示されます。
-
「アクセス」タブをクリックします。
「アクセス」タブには、資格証明にすでにアクセスできるユーザーがリストされます。たとえば、完全な管理権限を持つユーザー。
-
「追加」ボタンをクリックします。
「ロールの追加」ページが表示され、オプション「ユーザー」および「チーム」が表示されます。
-
オプションを1つ選択します。 たとえば、Usersです。
使用可能なユーザーのリストが表示されます。ノート:
完全な管理者権限を持つユーザーは、Oracle Linux Automation Managerのすべてのエンティティに対する権限を持っているため表示されません。
-
左の列から、資格証明を使用する権限を付与する各ユーザーの横にあるチェック・ボックスを選択します。
-
「次へ」をクリックします。
選択したユーザーに割り当てることができる権限が表示されます。
- 選択したユーザーに割り当てる各権限の横にあるチェック・ボックスを選択します。
-
「保存」をクリックします。
前の例では、資格証明にアクセスするための新しいロールがチームではなくユーザーに割り当てられていることを前提としています。 チームへのアクセス権を割り当てるユーザーのかわりに、前のステップと同じステップに従いますが、新しい権限で構成するリソース・タイプを指定するように求められた場合、ユーザーではなくチームを選択する点が異なります。
ジョブ・テンプレートの設定
次の各項では、ジョブ・テンプレートの設定について説明します。
ジョブ・テンプレートの設定
ジョブ・テンプレートを使用すると、インベントリに含まれるホストに対して、プロジェクトに関連付けられているプレイブック・タスクを実行できます。 ジョブ・テンプレートから、次を指定することもできます:
-
権限: ジョブを実行できるチーム、ユーザー、またはその両方。
-
通知: ジョブ・テンプレートがトリガーする通知。
-
完了したジョブ: 完了したすべてのジョブのリスト。
-
スケジュール: ジョブが実行されるスケジュールのリスト。
ジョブ・テンプレートを設定するには、次の手順に従います:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「テンプレート」をクリックします。
テンプレート・ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「ジョブ・テンプレートの追加」オプションをクリックします。
「新規ジョブ・テンプレートの作成」ページが表示されます。
-
「名前」フィールドに、ジョブ・テンプレートの名前を入力します。 たとえば、
JobTemplate1
。 -
「ジョブ・タイプ」リストから、次のいずれかを選択します:
-
実行: プレイブックを実行します。
-
チェック: プレイブックがエラーなしで実行できることを確認します。
-
-
ジョブの起動時にジョブ・タイプの選択を確認するダイアログ・ボックスを表示するには、「ジョブ・タイプ」フィールドの横にある「起動時にプロンプト」チェック・ボックスを選択します。
ノート:
一部のフィールドには、その横に「起動時にプロンプト」チェック・ボックスが表示されます。 フィールドの横にあるこのようなチェック・ボックスを選択すると、ジョブの起動時にダイアログが表示され、フィールドに使用される値が確認されます。
-
「インベントリ」フィールドで、「検索」ボタンをクリックします。
「インベントリの選択」ダイアログが表示されます。
-
インベントリ・リストから、このジョブで管理するホストを含むインベントリを選択します。
-
「プロジェクト」フィールドで、「検索」ボタンをクリックします。
「プロジェクトの選択」ダイアログが表示されます。
-
このジョブを実行するプレイブックを含むプロジェクトを選択します。
たとえば、次のサンプルのOracle Linux Automation Engineプレイブックを含むプロジェクトを選択できます:- インベントリでyum更新を実行するサンプルYumプレイブック。
- インベントリ・ホストにhttpdサーバーを作成するhttpdプレイブックのサンプル。
詳細については、「サンプル・プレイブックの設定と実行」を参照してください。
- 「実行環境」フィールドで、searchボタンをクリックします。
「実行環境の選択」ダイアログが表示されます。
- このジョブで使用する実行環境を選択します。
環境を選択しない場合、コマンドは、実行しているOracle Linux Automation Managerのバージョンに応じてデフォルトの実行環境で実行されます。 実行環境の詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。
-
「プレイブック」リストから、選択したプロジェクトからプレイブックを選択します。 たとえば、サンプルYumプレイブックを使用している場合は、
yum_update.yaml
を選択します。 -
「資格証明」フィールドで、searchボタンをクリックします。
「資格証明の選択」ダイアログが表示されます。
- 「選択したカテゴリ」リストから、使用可能な資格証明を表示するホスト・カテゴリのいずれかを選択します。
-
必要に応じて、選択したインベントリで指定されたホストにアクセスするために設定した資格証明を選択します。
-
「ラベル」フィールドに、ジョブを説明するラベルを入力します。 これらのラベルを様々なOracle Linux Automation Managerビューで使用して、ジョブ・テンプレートおよび完了したジョブをグループ化およびフィルタできます。
-
「変数」フィールド(コード・ボックス)で、YAMLまたはJSONコードを入力して、次のようにして追加のコマンドライン変数をプレイブックに渡すことができます:
- YAMLまたはJSONボタンをクリックして、使用する構文を指定します。
- コード編集ボックスに変数を入力します。
-
「フォーク」フィールドで、スクロール矢印を使用して許可されるフォークの数を選択します。 これは、Oracle Oracle Linux Automation Engineプレイブックの実行中に実行できるパラレル・プロセスまたは同時プロセスの数です。 空の値または値1は、
/etc/ansible/ansible.cfg
で指定されたデフォルトを使用します。 -
「制限」フィールドに、1つ以上のホスト名、IPアドレスまたはグループ名をカンマで区切って入力できます。これにより、必要に応じて、ジョブを実行できるインベントリで指定されたホストをさらに制限できます。 たとえば、group1というインベントリ内のグループに含まれるホストのみでジョブを実行するには、
group1
と入力します。 group1およびgroup2という2つのグループに対してジョブを実行するには、group1,group2
と入力します。 -
「冗長性」リストから、ジョブ・テンプレートの実行時にOracle Linux Automation Managerに表示される出力のレベルを選択します。 オプションは次のとおりです。
-
0 (標準)
-
1 (詳細)
-
2 (より詳細)
-
3 (デバッグ)
-
4 (接続デバッグ)
- 5 (WinRMデバッグ)
-
-
「ジョブ・スライス」フィールドで、スクロール矢印を使用して、許可されるジョブ・スライスの数を選択します。 ジョブ・スライスを使用すると、ジョブ・テンプレートによって行われた作業を指定された数のジョブ・スライスに分割でき、それぞれがインベントリの一部に対して同じタスクを実行します。
-
「タイムアウト」フィールドで、スクロール矢印を使用して、ジョブがタイムアウトするまでの時間(秒)を選択します。
-
ジョブ出力でOracle Linux Automation Engineタスクによって行われた変更を表示するには、「変更の表示」を有効にします。
-
「インスタンス・グループ」フィールドで、searchボタンをクリックします。
「インスタンス・グループの選択」ダイアログが表示されます。
- Oracle Linux Automation Managerのインストール時に作成した1つ以上のインスタンス・グループを選択します。
-
「ジョブ・タグ」フィールドに、1つ以上のジョブ・タグを入力します。 タグを使用すると、タグを含む大規模なプレイブックの一部を実行できます。 カンマを使用して各タグを区切ることで、複数のタグを指定できます。
-
「タグをスキップ」フィールドに、スキップするジョブ・タグを1つ以上入力します。 カンマを使用して各タグを区切ることで、複数のタグを指定できます。
-
必要に応じて、「オプション」セクションで次のオプションを確認します:
-
権限のエスカレーション: このプレイブックは管理者権限で実行されます。
-
プロビジョニング・コールバック: ホストがOracle Linux Automation Managerに接続し、このジョブ・テンプレートを使用して構成の更新をリクエストできるように、プロビジョニング・コールバックURLを作成します。
-
Webフックの有効化: プレイブックでWebフックが有効になります。
-
コンカレント・ジョブ: Oracle Linux Automation Managerでは、ジョブ・テンプレートの複数のインスタンスを同時に実行できます。
-
ファクト・ストレージの有効化: プレイブックから収集されたファクトがホストに対して実行され、検出されたファクトがキャッシュに格納されます。 収集したファクトを表示するには、「ホストの管理」を参照してください。
ノート:
プレイブックでファクト収集が明示的に無効にされていないかぎり、プレイブックはデフォルトでファクトを収集します。 プレイブックでファクト収集が無効になっている場合、このオプションは無効です。 - インスタンス・グループのフォールバックの防止
ジョブ・テンプレートを実行する優先インスタンス・グループのリストに在庫または組織インスタンス・グループを追加しないようにする場合に有効にします。 リストが空の場合、グローバル・インスタンス・グループが適用されます。
-
-
「保存」をクリックします。
サンプル・プレイブックの設定と実行
Oracle Linux Automation Managerをインストールすると、サンプルのOracle Linux Automation Engineプレイブックも/var/lib/ol-automation-manager/projects/demo_bundled
ディレクトリに含まれます。 このディレクトリには、次のプレイブックが含まれています:
-
httpd.yaml
: このプレイブックは、ターゲット・インベントリにApache HTTPサーバーをインストールします。 -
yum_update.yaml
: このプレイブックは、ターゲット・インベントリでyum更新を実行します。
これらのプレイブックを管理ユーザーとして設定して実行するには、次の手順を実行します:
-
管理ユーザーとしてOracle Linux Automation Managerにログインします。
-
組織を設定します。たとえば、
Sample Yum and Apache Org
。 詳細については、「組織の設定」を参照してください。 -
必要に応じて、プレイブックを実行するホストの資格証明を設定します。たとえば、
Sample Yum and Apache Host Credential
。 詳細については、「マシン資格証明の設定」を参照してください。 -
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「プロジェクト」をクリックします。
「プロジェクト」ページが表示されます。
-
「追加」タブをクリックします。
「新規プロジェクトの作成」ページが表示されます。
-
「名前」フィールドに、名前を入力します。たとえば、
Sample Yum and Apache project
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、作成した組織を選択します。たとえば、
Sample Yum and Apache Org
。 -
「ソース・コントロール資格証明タイプ」リストから、「マニュアル」を選択します。
-
プレイブック・ディレクトリ・リストから、demo_bundledを選択します。
-
「保存」をクリックします。
ノート:
プロジェクトの作成の詳細は、「プロジェクトの管理」を参照してください -
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「インベントリ」をクリックします。
「インベントリ」ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「インベントリの追加」オプションをクリックします。
新しいインベントリの作成ページが表示されます。
-
「名前」フィールドに、インベントリの名前を入力します。 たとえば、
Sample Yum an Apache Inventory
。 -
「組織」フィールドで、「検索」ボタンをクリックします。
「組織の選択」ダイアログが表示されます。
-
組織リストから、作成した組織を選択します。たとえば、
Sample Yum and Apache Org
。 -
「保存」をクリックします。
ノート:
インベントリの作成の詳細は、「在庫およびグループの管理」を参照してください -
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「ホスト」をクリックします。
ホスト・ページが表示されます。
-
「追加」ボタンをクリックします。
「新規ホストの作成」ページが表示されます。
-
「名前」フィールドに、接続先のシステムのIPアドレスまたはホスト名を入力します。 ホストに到達可能である必要があります。
- 「インベントリ」フィールドで、「検索」ボタンをクリックします。
「インベントリの選択」ページが表示されます。
-
「インベントリ」リストから、作成したインベントリを選択します。たとえば、
Sample Yum and Apache Inventory
。 - 「保存」をクリックします。
ノート:
インベントリのホストの設定の詳細は、「ホストの管理」も参照してください。 -
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
リソース・セクションで、「テンプレート」をクリックします。
テンプレート・ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「ジョブ・テンプレートの追加」オプションをクリックします。
Create New Job Templateが表示されます。
-
「名前」フィールドに、ジョブ・テンプレートの名前を入力します。 たとえば、
Sample Yum or Apache Job
。 -
「ジョブ・タイプ」リストから、「実行」を選択します。
-
「インベントリ」リストから、インベントリを選択します。たとえば
Sample Yum an Apache Inventory
。 -
「プロジェクト」リストから、プロジェクトを選択します。たとえば、
Sample Yum and Apache project
。 -
「プレイブック」リストから、
yum_update.yaml
を選択してホストでyum更新を実行するか、httpd.yaml
を選択してホストでApacheインスタンスを設定します。 -
「資格証明」リストから資格証明を選択します。たとえば、
Sample Yum and Apache Host Credential
。 -
「冗長性」リストから、0 (Normal)を選択します。
-
httpd.yaml
プレイブックを実行している場合は、「特権昇格の有効化」を有効にして、プレイブックが管理者権限で実行されるようにします。 -
「保存」をクリックします。
-
「起動」をクリックします
- 「出力」ページが表示され、ジョブの進行状況を確認できます。
ノート:
テンプレートの設定の詳細は、「ジョブ・テンプレートの設定」を参照してください
ワークフロー・テンプレートの設定
次のセクションでは、ワークフロー・テンプレートの設定について説明します。
ワークフロー・テンプレートについて
ワークフロー・テンプレートを使用すると、グラフィカル・ツール「ワークフロー・ビジュアライザ」を使用して、ジョブ・テンプレートや管理ジョブなどの様々なコンポーネントの実行シーケンスを、線形グラフのような設計のノードとして構成できます。
ワークフロー内のコンポーネントは、同じ組織および在庫を共有する必要はありません。
ワークフロー・テンプレートのノード・タイプ
- ジョブ・テンプレート
- 管理ジョブ
- ワークフロー・ジョブ・テンプレート
- 承認
- プロジェクト同期
- インベントリ・ソース同期
ワークフローの設計、機能およびプロパティ
次に、ワークフローの設計、機能およびプロパティの重要な側面をいくつか示します:
-
左から右へのワークフロー・グラフの読取り
ワークフロー・ビジュアライザのグラフのようなデザインは、左から右に読み取られます。 たとえば、ワークフロー設計の左側に
example_node_1
があり、右側に直線でexample_node_2
に接続している場合、これはexample_node_2
の直前にexample_node_1
が実行されることを示します。 -
親ノードと子ノード
前述の例に続いて、
example_node_1
がexample_node_2
の直前に実行されるように構成されている場合、example_node_1
はexample_node_2
の親ノードになります。1つのノードに複数の親ノードを含めることができます。 たとえば、親ノード
RunSampleYumPlaybook
およびRunSampleApachePlaybook
を構成して、子ノードInstallWebApplication
の直前に実行するようにワークフローを設定できます。 このような場合、ワークフロー・ビジュアライザは、子ノードInstallWebApplication
で直接収束する各親ノードからの行を表示します。 -
実行タイプ条件
子ノードを追加する場合は、次のいずれかのオプションを選択して、子ノードを実行する条件を規定する必要があります:
-
On Success
(デフォルト):On Success
を選択して、追加する子ノードを、編集中の現在のノードの実行が正常に完了した場合にのみ実行するように指定します。 このオプションを選択すると、追加された子ノードへの接続が「緑の線」として表示されます。 -
On Failure
:On Failure
を選択すると、追加する子ノードは、編集中の現在のノードの実行が障害状態で完了した場合にのみ実行されます。 このオプションを選択すると、追加された子ノードへの接続が「赤線」として表示されます。 -
Always
:編集中の現在のノードの最終状態に関係なく、追加する子ノードを常に実行するように指定するには、
Always
を選択します。 このオプションを選択すると、追加された子ノードへの接続が「青色の線」として表示されます。
-
-
Convergenceプロパティ
ノードの「Convergence」プロパティは、ノードに直接収束する親ノードの最終ステータスに基づいて、ノードが実行されるかどうかを決定します。 このオプションは、ノードに複数の親ノードが直接リンクしている場合に重要です。 Convergenceプロパティには次のいずれかの値を選択できます:-
Any
(デフォルト):Any
オプションは、このノードに収束するノードのいずれかが指定されたとおりに完了した場合に、このノードを実行できることを規定します。 -
All
:All
オプションは、このノード上で収束するすべてのノードが指定どおりに完了した場合にのみ、このノードを実行できることを示します。
-
ワークフロー・テンプレートの設定
ノート:
この例では、次のサンプル・プレイブックを実行するジョブ・テンプレートのワークフローを作成することを目的としています:yum_update.yaml
: このプレイブックは、ターゲット・インベントリでyum更新を実行します。httpd.yaml
: このプレイブックは、ターゲット・インベントリにApache HTTPサーバーをインストールします。
-
サーバーのインベントリに対してプレイブック
yum_update.yaml
を実行するRunSampleYumPlaybook
という名前のジョブ・テンプレートを作成します。 -
サーバーのインベントリに対してプレイブック
httpd.yaml
を実行するRunSampleApachePlaybook
という名前のジョブ・テンプレートを作成します。 -
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「テンプレート」をクリックします。
テンプレート・ページが表示されます。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「ワークフロー・テンプレートの追加」オプションをクリックします。
「新規ワークフロー・テンプレートの作成」ページが表示されます。
-
「名前」フィールドに、ワークフロー・テンプレートの名前を入力します。 たとえば、
SampleWorkflowTemplate
。ノート:
「名前」フィールドは、このページの唯一の必須フィールドです。 たとえば、組織および在庫フィールドはワークフロー・レベルで設定する必要はありません。 -
「保存」をクリックします。
「ワークフロー・ビジュアライザ」ページが「開始」ボタンでブラウザに表示されます。
-
「ワークフロー・ビジュアライザ」ページの「開始」ボタンをクリックします。
-
「ノードの追加」ダイアログが表示されます。
-
「ノードの追加」ダイアログの上部にある「ノード・タイプ」ドロップダウン・リストでは、ノードとして追加するリソースのタイプを選択できます。
Job Template
のデフォルトの選択を受け入れます。 -
使用可能なジョブ・テンプレートのリストから
RunSampleYumPlaybook
を選択します。 -
「コンバージェンス」ドロップダウン・リストからデフォルト・オプション(
Any
)をそのまま使用します。ノート:
追加するノードのプロパティは、複数の親が収束しているノードでのみ重要です。 -
オプションで、ワークフロー・ビジュアライザで、リソース名とは異なる特定の表示名で表示されるノードに「ノード別名」を入力します。
-
「保存」をクリックします。
「ノードの追加」ダイアログが閉じます。
追加されたノードがワークフロー・ビジュアライザに表示されます。
-
-
新しく追加したノードの上にマウスを置きます。
ノードの横にあるワークフロー・ビジュアライザ内に小さいツールバーが表示されます。
-
ツールバーの「追加("+")」アイコンをクリックして、最初のノードの後に別のノードを追加します。
-
「ノードの追加」ダイアログが表示されます。
- これは順序の2番目のノードであるため、ダイアログでは最初に次の「実行タイプ」条件が表示され、そこから選択します:
On Success
.On Failure
.Always
.
デフォルトで選択したオプション(
On Success
)を受け入れます。 -
「次へ」をクリックします。
このステージの「ノードの追加」ダイアログには、最初のノードを処理する手順で前述したものと同じフィールド(「ノード・タイプ」、「コンバージ」、「ノード別名」)が表示されます。
-
RunSampleApachePlaybook
を選択し、フィールドに入力 -
「保存」をクリックします。
「ノードの追加」ダイアログが閉じます。
追加されたノードRunSampleApachePlaybook
がワークフロー・ビジュアライザに表示されます。ノート:
新しく追加されたノードRunSampleApachePlaybook,
は最初のノードの右側(その親)に表示され、2つのノードは「緑の線」によって接続されます(緑の線は、最初のノードが正常に完了した後にのみ2番目のノードが実行されることを示します)。
- これは順序の2番目のノードであるため、ダイアログでは最初に次の「実行タイプ」条件が表示され、そこから選択します:
-
ワークフロー・ビジュアライザの右上にある「保存」をクリックします。
ワークフロー・ビジュアライザが消去され、新しく作成されたワークフロー・テンプレートが表示され、詳細タブがアクティブになります。
-
ワークフローを実行する準備ができたら、「起動」をクリックします。
「出力」ページが表示され、現在実行中の状態のノードが左上隅に緑色の点滅アイコンで表示されます。 親(
RunSampleYumPlaybook
)が正常に完了すると、2番目のノード(RunSampleApachePlaybook
)。ワークフローが正常に完了すると、各ジョブが完了するまでにかかった時間が表示されます
リソースのスケジュールの作成
Oracle Linux Automation Managerを使用すると、次のリソースのスケジュールを作成できます:
-
ジョブ・テンプレート
-
ワークフロー・テンプレート
-
インベントリ・ソース
-
プロジェクト
次の例は、リソースのスケジュール(この場合はジョブ・テンプレート)を作成する方法を示しています:
-
Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「リソース」セクションで、「テンプレート」をクリックします。
「テンプレート」ページが表示され、使用可能なテンプレートのリストが表示されます。
-
スケジュールを作成するジョブ・テンプレートの名前をクリックします。
ジョブ・テンプレートのタブ・ビューが表示されます。 最初は詳細タブがオープンしています。
-
「スケジュール」タブに切り替えます。
-
「追加」ボタンをクリックします。
「新規スケジュールの作成」ダイアログが表示されます。 名前フィールドにわかりやすい名前を入力します。
「開始日」カレンダおよび「開始時間」ドロップダウン・リスト・コントロールを完了するときに、「ローカル・タイム・ゾーン・フィールド」の値をノートにとります。ノート:
ベスト・プラクティス: スケジュールをUTC時間で設定します。
アプリケーションは、サマー・タイムに調整されない世界標準であるUTCでスケジュールを保存します。 したがって、季節時計の変更に関する混乱を回避するには、UTCでスケジュールを設定および追跡することをお勧めします。
-
「保存」をクリックします。
スケジュールが保存され、「スケジュール」の「詳細」ページに表示されます。
スケジュール・ビューにも表示されます。
実行環境の管理
次のセクションでは、実行環境の概要と、システムの実行環境を作成および表示する方法について説明します。
実行環境について
実行環境は、Oracle Linux Automation Engine自動化タスクが実行されるポータブル・コンテナ・イメージです。 実行環境は、以前のバージョンのOracle Linux Automation Engine製品で使用されていたPython仮想環境を置き換えます。
Builderユーティリティで作成されたカスタム実行環境を使用することもできます。 これらのカスタム実行環境には、前述のベース・コンポーネントと追加コンポーネントが含まれます。 Builderユーティリティの詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
ノート:
ビルダー・ユーティリティではカスタム実行環境を作成できますが、カスタム実行環境に問題が発生した場合、Oracleでは、提供されたOLAM-EEデフォルト・イメージに戻して問題をトラブルシューティングするよう求められる場合があります。ポータブルな自己完結型コンテナ・イメージとして、実行環境では、複数のプラットフォームで自動化タスクを一貫して実行できます。
-
OLAM EE
-
Control Plane Execution Environment
実行環境ページの表示
実行環境を表示するには、次の手順を実行します:
-
Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「管理」セクションで、「実行環境」をクリックします。
「実行環境」ページには、システムで使用可能な実行環境に関連するサマリー表が表示されます。 表の列には、次のリストで説明する列が含まれています:
-
名前
名前列には、実行環境の名前が含まれます。
-
イメージ
イメージ列には、実行環境に使用されるイメージの完全なイメージのロケーション(コンテナ・レジストリ、イメージ名、バージョン・タグなど)が含まれます。 たとえば、container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:latest。 または、イメージのロケーションは、lam-eeイメージまたはカスタム・イメージをホストするPrivate Automation Hubインスタンスです。 詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
-
組織
組織列には、システム内のどの組織が実行環境にアクセスできるかに関する情報が含まれます。
-
-
詳細は、実行環境の名前をクリックしてください。
実行環境は、「詳細」タブがアクティブなタブ付きビューに表示されます。 「詳細」タブには、「名前」、「イメージ」および「組織」フィールドの他に、次のフィールドがあります:
-
「作成済」
「作成日」フィールドには、実行環境が作成された日時が含まれます。
-
最終変更日
最終変更日時列には、実行環境が最後に変更された日時が含まれます。
-
プル
「プル」フィールドには、リソース・ジョブを実行する前にOracle Linux Automation Managerがリポジトリのロケーションからコンテナ・イメージをプルする条件を指定する値が含まれます。 次の値を指定できます。
-
Always
このオプションは、コンテナの実行前にコンテナ・イメージが常にプルされることを指定します。
-
Missing
このオプションは、コンテナの実行前にイメージが存在しない場合にのみコンテナ・イメージがプルされることを指定します。
-
Never
このオプションは、コンテナの実行前にコンテナ・イメージがプルされないことを指定します。
重要:
コンテナ・イメージを更新したままにして、イメージに最新のCVE修正があることを確認します。
-
-
-
「実行環境に戻る」ボタン(タブ・ヘッダー行の最初のボタン)をクリックして、「実行環境」ページに戻ります。
実行環境の作成
実行環境を作成するには、次の手順を実行します:
-
Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「管理」セクションで、「実行環境」をクリックします。
- 「追加」をクリックします。
「新規実行環境の作成」ページが表示されます。
-
「名」フィールドに、実行環境の名前を入力します。
-
「イメージ」フィールドに、実行環境に使用されるイメージのコンテナ・レジストリ、イメージ名およびバージョン・タグを含むイメージのロケーションを入力します。 たとえば、container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:latestです。 または、lam-eeイメージまたはカスタム・イメージをホストするPrivate Automation Hubインスタンスを指すこともできます。 詳細は、「Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイド」を参照してください。
- 「プル」リストから、リソース・ジョブを実行する前に、Oracle Linux Automation Managerがリポジトリのロケーションからコンテナ・イメージをプルする条件を規定する次のいずれかの値を選択します:
-
Always
このオプションは、コンテナの実行前にコンテナ・イメージが常にプルされることを指定します。
-
Missing
このオプションは、コンテナの実行前にイメージが存在しない場合にのみコンテナ・イメージがプルされることを規定します。
-
Never
このオプションは、コンテナの実行前にコンテナ・イメージがプルされないことを指定します。
重要:
コンテナ・イメージを更新したままにして、イメージに最新のCVE修正があることを確認します。
-
-
組織
「組織」フィールドには、システム内のどの組織が実行環境にアクセスできるかに関する情報が含まれます。
-
レジストリ資格証明
「レジストリ資格証明」フィールドには、システムがコンテナ・レジストリへの接続に使用する必要がある資格証明に関する情報が含まれます。 詳細については、「実行環境のコンテナ・レジストリ資格証明の設定」を参照してください。
-
「保存」をクリックします。
インスタンス・グループの管理
この章では、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
でジョブを実行します。 実行ノードは、ユーザー領域ジョブのみを実行します。
-
次の各項では、インスタンス・グループの表示および編集方法、ジョブおよびリソースを特定のインスタンス・グループに関連付ける方法、およびグループの作成方法について説明します。
インスタンス・グループ・サマリーの表示
「インスタンス・グループ」ページを表示するには、次の手順を実行します:
-
管理者ユーザー・アカウントを使用して、Oracle Linux Automation Managerにログインします。
-
ページの左上隅にあるグローバル・ナビゲーション・メニュー・ボタンを切り替えて、まだ表示されていない場合は、左側のナビゲーション・メニューを表示します。
-
「管理」セクションで、「インスタンス・グループ」をクリックします。
「インスタンス・グループ」ページが表示されます。
「インスタンス・グループ」ページには、システム内のインスタンス・グループに関連するサマリー表が表示されます。 表の列には、次のリストで説明する列が含まれています:
-
名前
名前列には、インスタンス・グループの名前が含まれます。 名前をクリックすると、そのインスタンスのプロパティのタブ・ビューが表示されます。 「詳細」タブは、最初はアクティブなタブです。
-
ジョブの実行
「実行中のジョブ」列には、実行中のインスタンス・グループに関連付けられたジョブの数が含まれます。
-
ジョブ数合計
合計ジョブ数列には、完了したインスタンス・グループに関連付けられたジョブ数の合計と、まだ実行中のグループに関連付けられているジョブ数の合計が含まれます。
-
容量
「容量」列には、使用されているインスタンス・グループの容量の割合を示す「使用済容量」進捗バーが表示されます。
-
アクション
「アクション」列には、インスタンスを編集できる「インスタンス・グループの編集」アイコンが表示されます。
インスタンス・グループの編集
次の各項では、インスタンス・グループを編集し、そのグループに関連付けられているノードのプロパティを変更する方法について説明します。
インスタンス・グループ・ポリシーのプロパティの編集
インスタンス・グループで次のポリシー・プロパティを設定できます:
-
ポリシー・インスタンス最小
これは、新しいプロビジョニングされたインスタンスがオンラインになったときにグループに自動的に割り当てられるインスタンスの最小数です。
-
ポリシー・インスタンスの割合
新しいプロビジョニング済インスタンスがオンラインになった場合に、このグループに自動的に割り当てられるすべてのインスタンスの最小割合。
インスタンス・グループのポリシー・プロパティを設定するには、次の手順を実行します:
-
管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、「インスタンス・グループ」ページに移動します。
-
「インスタンス・グループ」ページに表示されるサマリー表で、ポリシー・インスタンス・プロパティを編集するグループを含む行に移動します。
-
「アクション」列の「インスタンス・グループの編集」アイコンをクリックします。
「詳細の編集」ページが表示されます。
-
プロパティの「ポリシー・インスタンス最小」および「ポリシー・インスタンスの割合」フィールドに値を入力します。
-
「保存」をクリックします。
インスタンスのタブ・ビューが表示されます。
ノードとグループ・インスタンスの関連付けと関連付け解除
次のステップでは、ノードをグループ・インスタンスに関連付けたり、関連付けを解除する方法を示します:
-
管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、「インスタンス・グループ」ページに移動します。
-
「インスタンス・グループ」ページに表示されるサマリー表で、ノード関連付けを変更するグループがある行に移動します。
-
「名前」列でグループ・インスタンス名をクリックします。
そのインスタンス・プロパティのタブ・ビューが表示されます。 最初は「詳細」タブが開いています。
-
「インスタンス」タブをクリックします。
グループに関連付けられているノード・インスタンスが表に表示されます。
-
グループでさらにノード・インスタンスを「関連付け」するには、次の手順を実行します:
-
「関連付け」ボタンをクリックします。
「選択したインスタンス」ダイアログが表示され、使用可能なノード・インスタンスが表示されます。
-
グループ・インスタンスに関連付けるノードの横にあるチェックボックスをオンにします。
-
「保存」をクリックします。
「インスタンス」ページが表示され、選択したノードがページのリストに表示されます。
-
-
現在のグループ・インスタンスからノードを「関連付け解除」するには、次の手順を実行します:
- 現在のグループとの関連付けを解除する各ホストの横にあるチェック・ボックスを選択し、「関連付け解除」ボタンをクリックします。
アクションを確認するダイアログが表示されます。
-
ダイアログの「関連付け解除」ボタンをクリックして続行する場合は、アクションを確認します。
ダイアログが閉じられ、グループとの関連付けを解除したノードがリストに表示されなくなります。
- 現在のグループとの関連付けを解除する各ホストの横にあるチェック・ボックスを選択し、「関連付け解除」ボタンをクリックします。
ノード・インスタンス・プロパティの変更
次の手順では、特定のノードのプロパティを変更する方法を示します。
ノード・インスタンス「容量」は、同時に実行できるフォークの数を決定します。 したがって、容量は、ノードが並列でジョブを実行できるシステムの数に影響します。 ノード・インスタンスの「容量」を変更するには、次の手順を実行します:
-
管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、「インスタンス・グループ」ページに移動します。
-
「インスタンス・グループ」ページに表示されるサマリー表で、編集するノードに関連付けられたグループがある行に移動します。
-
「名前」列でグループ・インスタンス名をクリックします。
そのインスタンス・プロパティのタブ・ビューが表示されます。 最初は「詳細」タブが開いています。
-
「インスタンス」タブをクリックします。
グループに関連付けられているノード・インスタンスが表に表示されます。
-
変更するノード・インスタンスがある行に移動します。
-
「容量」を調整するには、「容量調整」列のスライダ・コントロールを選択した値にドラッグします。
ノート:
- 変更は自動的に保存されます。 「保存」ボタンは使用できません。
- 新しい容量設定が、ノードが属する他のインスタンス・グループに適しているかどうかを検討します。
enable/disable設定を使用すると、ノード・インスタンスに割り当てるジョブに使用できるかどうかを制御できます。 たとえば、メンテナンスのためにノード・インスタンスの1つを一時的に無効化する必要がある場合があります。 ノード・インスタンスのenable/disable設定を変更するには、次の手順を実行します:
-
管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、「インスタンス・グループ」ページに移動します。
-
「インスタンス・グループ」ページに表示されるサマリー表で、編集するノードに関連付けられたグループがある行に移動します。
-
「名前」列でグループ・インスタンス名をクリックします。
そのインスタンス・プロパティのタブ・ビューが表示されます。 最初は「詳細」タブが開いています。
-
「インスタンス」タブをクリックします。
グループに関連付けられているノード・インスタンスが表に表示されます。
-
変更するノード・インスタンスがある行に移動します。
-
ノード・インスタンスのenable/disable設定を変更するには、「アクション」列の有効化/無効化トグル・スイッチを切り替えます。
ノート:
- 変更は自動的に保存されます。 「保存」ボタンは使用できません。
- 新しい設定が、ノードが属する他のインスタンス・グループに適しているかどうかを検討します。
インスタンス・グループの作成
次のステップでは、インスタンス・グループを作成する方法を示します:
- 管理者ユーザー・アカウントでOracle Linux Automation Managerにログインし、「インスタンス・グループ」ページに移動します。
-
「追加」ボタンをクリックします。
メニューが表示されます。
-
「インスタンス・グループの追加」オプションをクリックします。
新しいインスタンス・グループの作成が表示されます。
-
「名前」フィールドに、インスタンス・グループの名前を入力します。 たとえば、
NodesForDataCentre1
。 -
オプションで、「ポリシー・インスタンス最小」および「ポリシー・インスタンスの割合」フィールドに整数を入力します。
ノート:
ポリシー・インスタンス・フィールドは次のように定義されます:-
ポリシー・インスタンスの最小:
これは、新しいプロビジョニングされたインスタンスがオンラインになったときにグループに自動的に割り当てられるインスタンスの最小数です。
-
ポリシー・インスタンスの割合:
新しいプロビジョニング済インスタンスがオンラインになった場合に、このグループに自動的に割り当てられるすべてのインスタンスの最小割合
-
-
「保存」をクリックします。
新しく作成されたインスタンス・グループは、詳細タブがアクティブなタブ・ビューに表示されます。
-
「インスタンス」タブをクリックして、インスタンス・タブに切り替えます。
グループに関連付けられているノード・インスタンスが表に表示されます。
-
グループにさらにノード・インスタンスを関連付けるには、「関連付け」ボタンをクリックします。
「選択したインスタンス」ダイアログが表示され、使用可能なノード・インスタンスが表示されます。
-
グループ・インスタンスに関連付けるノードの横にあるチェックボックスをオンにします。
「保存」をクリックします。
「インスタンス」ページが表示され、選択したノードがページのリストに表示されます。