11.2. Ansible Automation Platform 업그레이드
11.2.1. ansible-on-clouds-ops 컨테이너 이미지 가져오기
절차
업그레이드할 버전과 동일한 태그를 사용하여 Clouds 작동 컨테이너에서 Ansible의 Docker 이미지를 가져옵니다.
참고docker 이미지를 가져오기 전에 docker를 사용하여 registry.redhat.io에 로그인했는지 확인합니다. 다음 명령을 사용하여 registry.redhat.io에 로그인합니다.
$ docker login registry.redhat.io
레지스트리 로그인에 대한 자세한 내용은 레지스트리 인증을 참조하십시오.
참고클라우드의 Ansible 운영 이미지 태그는 업그레이드하려는 버전과 일치해야 합니다. 예를 들어 기반 배포 버전이 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은 foundation 배포의 이름입니다.- 이 이름은 기반을 배포할 때 사용한 이름과 같습니다.
-
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으로 업그레이드하면 내부 로드 밸런서의 프로토콜이 업데이트됩니다. 설치 후 추가 네트워킹 구성을 추가한 경우 연결을 보장하기 위해 업데이트해야 할 수도 있습니다. 자세한 내용은 업그레이드 노트를 참조하십시오.
업그레이드를 실행하려면 명령 생성기를 실행하여 upgrade 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" }- 이제 GCP Marketplace 배포의 Ansible Automation Platform이 최신 버전으로 업그레이드되고 배포 인증 정보를 사용하여 Red Hat Ansible Automation Platform 자동화 컨트롤러 및 자동화 허브에 로그인할 수 있습니다.