11.2. Ansible Automation Platform のアップグレード

11.2.1. ansible-on-clouds-ops コンテナーイメージのプル

手順

  • アップグレード先のバージョンと同じタグを持つ Ansible on Clouds 運用コンテナーの Docker イメージをプルします。

    注記

    Docker イメージをプルする前に、Docker を使用して registry.redhat.io にログインしていることを確認してください。以下のコマンドを使用して registry.redhat.io にログインします。

    $ docker login registry.redhat.io

    レジストリーのログインに関する詳細は、Registry Authentication を参照してください。

    注記

    Ansible on Clouds の運用イメージのタグが、アップグレード先のバージョンと一致している必要があります。たとえば、基盤デプロイメントのバージョンが 2.3.20230221 の場合は、タグ 2.4.20230630 を持つ運用イメージをプルして、バージョン 2.4.20230630 にアップグレードします。

    $ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630
    $ docker pull $IMAGE --platform=linux/amd64

11.2.2. 必須のパーミッション

スタックをアップグレードするには、次の GCP IAM パーミッションが必要です。

required-roles:
  - Service Account User
  - Compute Instance Admin (v1)
required-permissions:
  - compute.healthChecks.update
  - compute.healthChecks.use
  - compute.healthChecks.useReadOnly
  - compute.regionBackendServices.update
  - iap.tunnelInstances.accessViaIAP
  - runtimeconfig.variables.get
  - secretmanager.locations.get
  - secretmanager.locations.list
  - secretmanager.secrets.create
  - secretmanager.secrets.delete
  - secretmanager.secrets.get
  - secretmanager.secrets.list
  - secretmanager.secrets.update
  - secretmanager.versions.access
  - secretmanager.versions.add
  - secretmanager.versions.disable
  - secretmanager.versions.enable
  - secretmanager.versions.get
  - secretmanager.versions.list

11.2.3. データファイルの生成

このセクションのコマンドは、ディレクトリーを作成し、そのディレクトリーに空のデータテンプレートを設定します。このテンプレートは、設定するとアップグレード中に使用されます。

手順

  1. 次のコマンドを実行して、必要なデータファイルを生成します。

    # Create a folder to hold the configuration files
    $ mkdir command_generator_data
  2. command_generator_data フォルダーに設定ファイルのテンプレートを追加します。

    注記

    Linux では、コマンドジェネレーターが作成したファイルまたはディレクトリーは、デフォルトで root:root の所有となります。ファイルとディレクトリーの所有権を変更するには、ファイルの作成後に sudo chmod コマンドを実行します。詳細は、コマンドジェネレーター - root が所有する Linux ファイル を参照してください。

    $ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \
    command_generator_vars gcp_upgrade \
    --output-data-file /data/extra_vars.yml
  3. これらのコマンドを実行すると、command_generator_data/extra_vars.yml テンプレートファイルが作成されます。このテンプレートファイルは以下のようになります。

    gcp_upgrade:
      ansible_config_path:
      cloud_credentials_path:
      deployment_name:
      extra_vars:
        gcp_backup_taken:
        gcp_compute_region:
        gcp_compute_zone:

11.2.4. データファイルの更新

アップグレードを開始する前に、データファイルを設定する必要があります。任意と記載されていない限り、各パラメーターは必須です。パラメーターが任意と指定されている場合は、そのキーと値の両方をデータファイルから削除できます。

  • ansible_config_path (オプション) は、カスタムの ansible_config でオーバーライドする場合にのみ使用します。
  • cloud_credentials_path は、GCP 認証情報ファイルへのパスです。
  • deployment_name は、基盤デプロイメントの名前です。

    • これは、基盤をデプロイしたときに使用した名前と同じです。
  • gcp_backup_taken は、このアップグレードを実行する前に、現在のデプロイメントの手動バックアップが最近作成されたことを確認するものです。新しいバックアップが作成されたことを確認するには、ここで true を使用します。
  • gcp_compute_region は、基盤のデプロイメントをデプロイする時に指定した GCP リージョンです。基盤のデプロイ時にリージョンを指定していない場合は、ここでデフォルトのリージョン us-east1 を使用します。
  • gcp_compute_zone は、基盤のデプロイメントをデプロイする時に指定した GCP ゾーンです。基盤のデプロイ時にゾーンを指定していない場合は、ここでデフォルトの us-east1-b を使用します。

データファイルを入力すると、次のようになります。

次の値は例です。

gcp_upgrade:
  ansible_config_path:
  cloud_credentials_path: ~/secrets/GCP-secrets.json
  deployment_name: AnsibleAutomationPlatform
  extra_vars:
    gcp_backup_taken: true
    gcp_compute_region: us-east1
    gcp_compute_zone: us-east1-b

11.2.5. アップグレード Playbook の実行

注記

Ansible Automation Platform を 2.4.20230630 にアップグレードすると、内部ロードバランサーのプロトコルが更新されます。インストール後に追加のネットワーク設定が指定された場合は、接続を確保するために更新が必要になる場合もあります。詳細は、アップグレードに関する注意事項 を参照してください。

  1. アップグレードを実行するために、コマンドジェネレーターを実行してアップグレード CLI コマンドを生成します。

    $ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator --data-file /data/extra_vars.yml

    これにより、以下のコマンドが生成されます。

    -----------------------------------------------
    docker run --rm --env PLATFORM=GCP -v ~/secrets/GCP-secrets.json:/home/runner/.gcp/credentials:ro
    --env ANSIBLE_CONFIG=../gcp-ansible.cfg
    --env DEPLOYMENT_NAME=AnsibleAutomationPlatform
    --env GENERATE_INVENTORY=true  $IMAGE redhat.ansible_on_clouds.gcp_upgrade \
    -e 'gcp_deployment_name=AnsibleAutomationPlatform \
    gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials \
    gcp_compute_region=us-east1 gcp_compute_zone=us-east1-b gcp_backup_taken=True'
    ===============================================
  2. 生成されたアップグレードコマンドを実行して、アップグレードをトリガーします。

    $ docker run --rm --env PLATFORM=GCP -v ~/secrets/GCP-secrets.json:/home/runner/.gcp/credentials:ro \
    --env ANSIBLE_CONFIG=../gcp-ansible.cfg \
    --env DEPLOYMENT_NAME=AnsibleAutomationPlatform \
    --env GENERATE_INVENTORY=true  $IMAGE redhat.ansible_on_clouds.gcp_upgrade \
    -e 'gcp_deployment_name=AnsibleAutomationPlatform \
    gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials \
    gcp_compute_region=us-east1 gcp_compute_zone=us-east1-b gcp_backup_taken=True'
  3. アップグレードが完了するまでに時間がかかることがありますが、システム上の拡張ノードの数によってはさらに時間がかかる場合があります。アップグレードが成功すると、以下のログが記録されます。

    TASK [redhat.ansible_on_clouds.standalone_gcp_upgrade : [upgrade] Show GCP current version] ***
    ok: [localhost] => {
        "msg": "gcp_current_version: 2.3.20230221-00"
    }
  4. Ansible Automation Platform from GCP Marketplace デプロイメントが新しいバージョンにアップグレードされ、デプロイメント認証情報を使用して Red Hat Ansible Automation Platform Automation Controller および Automation Hub にログインできるようになりました。