Menu Close
Settings Close

Language and Page Formatting Options

1.13.4. ラベルを使用したマネージドクラスターでの実行用の AnsibleJob テンプレート設定

Red Hat Advanced Cluster Management for Kubernetes でクラスターを作成した場合、または Red Hat Advanced Cluster Management で管理するためにラベルを使用してインポートした場合は、AnsibleJob を作成してクラスターにバインドできます。

以下の手順を実行して、Ansible ジョブを作成し、Red Hat Advanced Cluster Management でまだ管理されていないクラスターを使用して設定します。

  1. アプリケーション機能でサポートされるチャネルのいずれかで、Ansible ジョブの定義ファイルを作成します。Git チャネルのみがサポートされます。

    AnsibleJob は、定義の kind の値として使用します。

    定義ファイルの内容は以下の例のようになります。

    apiVersion: apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleJob
    metadata:
      name: hive-cluster-gitrepo
    spec:
      tower_auth_secret: my-toweraccess
      job_template_name: my-tower-template-name
      extra_vars:
        variable1: value1
        variable2: value2

    ファイルを prehook ディレクトリーまたは posthook ディレクトリーに保存すると、配置ルールと一致するクラスター名の一覧が作成されます。クラスター名の一覧は、extra_vars の値として AnsibleJob kind リソースに渡すことができます。この値が AnsibleJob リソースに渡されると、Ansible ジョブで、新しいクラスター名が判別され、自動化での使用が可能になります。

  2. Red Hat Advanced Cluster Management ハブクラスターにログインします。
  3. Red Hat Advanced Cluster Management コンソールを使用して、先程作成した定義ファイルの保存先のチャネルを参照する Git サブスクリプションでアプリケーションを作成します。アプリケーションおよびサブスクリプションの作成に関する詳細は、アプリケーションリソースの管理 を参照してください。

    サブスクリプションの作成時に、ラベルを指定して、クラスターとこのサブスクリプションを連携させるために作成またはインポートするクラスターに追加できます。このラベルは、vendor=OpenShift などの既存のものでも、一意のラベルを作成、定義することも可能です。

    注記: すでに使用中のラベルを選択すると、Ansible ジョブは自動的に実行されます。prehook または posthook の一部ではないアプリケーションに、リソースを追加することがベストプラクティスです。

    デフォルトの配置ルールでは、AnsibleJob のラベルと一致するラベルの付いたクラスターが検出されると、ジョブが実行されます。ハブクラスターが管理する実行中のすべてのクラスターで、自動化を実行するには、以下の内容を配置ルールに追加します。

    clusterConditions:
      - type: ManagedClusterConditionAvailable
        status: "True"

    これを配置ルールの YAML コンテンツに貼り付けるか、Red Hat Advanced Cluster Management コンソールの Application create ページで Deploy to all online cluster and local cluster オプションを選択します。

  4. クラスターの作成 または ハブクラスターへのターゲットのマネージドクラスターのインポート の手順に従って、クラスターを作成またはインポートします。

    クラスターの作成またはインポート時には、サブスクリプションの作成時に使用したラベルと同じラベルを使用すると、AnsibleJob はクラスター上で自動的に実行されるように設定されます。

Red Hat Advanced Cluster Management は、クラスター名を AnsibleJob.extra_vars.target_clusters パスに自動的に挿入します。クラスター名を定義に動的に挿入できます。以下の手順を実行して、AnsibleJob を作成し、Red Hat Advanced Cluster Management で管理しているクラスターを使用して設定します。

  1. Git チャネルの prehook ディレクトリーまたは posthook ディレクトリーに、AnsibleJob の定義ファイルを作成します。

    AnsibleJob は、定義の kind の値として使用します。

    定義ファイルの内容は以下の例のようになります。

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleJob
    metadata:
      name: hive-cluster-gitrepo
    spec:
      tower_auth_secret: my-toweraccess
      job_template_name: my-tower-template-name
      extra_vars:
        variable1: value1
        variable2: value2

    my-toweraccess は、Ansible Tower にアクセスするための認証シークレットに置き換えます。

    my-tower-template-name は、Ansible Tower のテンプレート名に置き換えます。

Ansible ジョブが制御するクラスターが削除されるか、追加されるたびに、AnsibleJob は自動的に extra_vars.target_clusters 変数を実行して更新します。この更新により、特定の自動化でクラスター名を指定したり、クラスターのグループに自動化を適用したりできるようになりました。