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. データファイルの生成
このセクションのコマンドは、ディレクトリーを作成し、そのディレクトリーに空のデータテンプレートを設定します。このテンプレートは、設定するとアップグレード中に使用されます。
手順
次のコマンドを実行して、必要なデータファイルを生成します。
# Create a folder to hold the configuration files $ mkdir command_generator_data
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
これらのコマンドを実行すると、
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-b11.2.5. アップグレード Playbook の実行
Ansible Automation Platform を 2.4.20230630 にアップグレードすると、内部ロードバランサーのプロトコルが更新されます。インストール後に追加のネットワーク設定が指定された場合は、接続を確保するために更新が必要になる場合もあります。詳細は、アップグレードに関する注意事項 を参照してください。
アップグレードを実行するために、コマンドジェネレーターを実行してアップグレード 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' ===============================================
生成されたアップグレードコマンドを実行して、アップグレードをトリガーします。
$ 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'
アップグレードが完了するまでに時間がかかることがありますが、システム上の拡張ノードの数によってはさらに時間がかかる場合があります。アップグレードが成功すると、以下のログが記録されます。
TASK [redhat.ansible_on_clouds.standalone_gcp_upgrade : [upgrade] Show GCP current version] *** ok: [localhost] => { "msg": "gcp_current_version: 2.3.20230221-00" }- Ansible Automation Platform from GCP Marketplace デプロイメントが新しいバージョンにアップグレードされ、デプロイメント認証情報を使用して Red Hat Ansible Automation Platform Automation Controller および Automation Hub にログインできるようになりました。