10.2. Ansible Automation Platform 업그레이드
10.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
10.2.2. 필요한 권한
스택을 업그레이드하려면 다음 AWS IAM 권한이 있어야 합니다.
required-roles:
ec2:
actions:
- ec2:DescribeInstances
- ec2:GetLaunchTemplateData
- ec2:DescribeAccountAttributes
- ec2:DescribeLaunchTemplates
- ec2:CreateTags
- ec2:RunInstances
- ec2:DescribeInstanceTypes
- ec2:DescribeSubnets
- ec2:DeleteTags
- ec2:DescribeRegions
- ec2:DescribeAvailabilityZones
- ec2:DeleteLaunchTemplate
- ec2:DescribeTags
- ec2:DescribeLaunchTemplateVersions
- ec2:DescribeSecurityGroups
- ec2:CreateLaunchTemplateVersion
- ec2:CreateLaunchTemplate
- ec2:DescribeVpcs
- ec2:ModifyLaunchTemplate
resources:
- "*"
iam:
actions:
- iam:ListRoleTags
- iam:AttachRolePolicy
- iam:PutRolePolicy
- iam:AddRoleToInstanceProfile
- iam:ListAttachedRolePolicies
- iam:GetRole
- iam:GetRolePolicy
- iam:CreateInstanceProfile
- iam:ListInstanceProfilesForRole
- iam:PassRole
- iam:GetInstanceProfile
- iam:CreateServiceLinkedRole
resources:
- "*"
secretsmanager:
actions:
- secretsmanager:DescribeSecret
- secretsmanager:ListSecrets
- secretsmanager:TagResource
- secretsmanager:UntagResource
- secretsmanager:CreateSecret
- secretsmanager:GetSecretValue
- secretsmanager:UpdateSecret
- secretsmanager:GetResourcePolicy
resources:
- "*"
ssm:
actions:
- ssm:StartSession
- ssm:TerminateSession
resources:
- "*"
autoscaling:
actions:
- autoscaling:DescribeAutoScalingGroups
- autoscaling:UpdateAutoScalingGroup
- autoscaling:DescribeInstanceRefreshes
- autoscaling:DeleteTags
- autoscaling:DescribeTags
- autoscaling:CreateOrUpdateTags
- autoscaling:CreateAutoScalingGroup
- autoscaling:DescribeLaunchConfigurations
- autoscaling:DescribeLifecycleHooks
- autoscaling:StartInstanceRefresh
- autoscaling:CreateLaunchConfiguration
- autoscaling:DisableMetricsCollection
- autoscaling:DeleteLaunchConfiguration
- autoscaling:DetachLoadBalancerTargetGroups
- autoscaling:AttachLoadBalancerTargetGroups
resources:
- "*"
s3:
actions:
- s3:DeleteObject
- s3:PutObject
- s3:GetObject
- s3:GetBucketLocation
resources:
- "*"
cloudformation:
actions:
- cloudformation:ListStackResources
- cloudformation:DescribeStacks
- cloudformation:GetTemplate
resources:
- "*"
elasticloadbalancing:
actions:
- elasticloadbalancing:DescribeTargetGroupAttributes
- elasticloadbalancing:DescribeTags
- elasticloadbalancing:DescribeTargetHealth
- elasticloadbalancing:DescribeTargetGroups
- elasticloadbalancing:ModifyTargetGroup
- elasticloadbalancing:DescribeLoadBalancers
- elasticloadbalancing:DescribeLoadBalancerAttributes
- elasticloadbalancing:DescribeListeners
- elasticloadbalancing:CreateListener
- elasticloadbalancing:DeleteListener
- elasticloadbalancing:DescribeRules
- elasticloadbalancing:DeleteTargetGroup
- elasticloadbalancing:CreateTargetGroup
- elasticloadbalancing:ModifyTargetGroupAttributes
- elasticloadbalancing:AddTags
- elasticloadbalancing:RemoveTags
resources:
- "*"10.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 aws_upgrade \ --output-data-file /data/extra_vars.yml
이러한 명령을 실행하면
command_generator_data/extra_vars.yml템플릿 파일이 생성됩니다. 이 템플릿 파일은 다음과 유사합니다.aws_upgrade: ansible_config_path: cloud_credentials_path: deployment_name: extra_vars: aws_backup_taken: aws_region: aws_ssm_bucket_name: seller_name:
10.2.4. 데이터 파일 업데이트
업그레이드를 트리거하기 전에 데이터 파일을 채워야 합니다. 각 매개변수는 선택 사항으로 표시되지 않는 한 필요합니다. 매개 변수가 선택 사항으로 표시되면 해당 키와 값을 모두 데이터 파일에서 제거할 수 있습니다.
다음 변수는 데이터 파일에 나열된 매개변수입니다.
-
ansible_config_path(선택 사항)는 사용자 지정ansible_config로 재정의된 경우에만 사용합니다. -
cloud_credentials_path는 AWS 인증 정보 파일의 경로입니다. deployment_name은 foundation 배포의 이름입니다.- 이 이름은 기반을 배포할 때 사용한 이름과 같습니다.
-
aws_backup_taken은 이 업그레이드를 실행하기 전에 현재 배포에 대한 수동 백업이 최근 생성되었는지 확인합니다. -
aws_region은 foundation 배포가 있는 AWS 리전입니다. aws_ssm_bucket_name은 AWS SSM의 임시 구성 파일이 저장된 S3 버킷의 이름입니다. 기존 버킷을 사용하거나 새 버킷을 생성할 수 있습니다.참고aws_ssm_bucket_name매개변수는 임시 구성 파일을 저장하는 데만 사용됩니다. 다른 플레이북에서 사용하기 위해 저장할 필요가 없습니다. 유효한 기존 버킷을 모두 사용할 수 있습니다. S3 버킷 생성에 대한 자세한 내용은 AWS 문서에서 AWS 생성 A 버킷 을 참조하십시오.버킷 이름에는 uppper 대소문자를 포함하지 않아야 합니다.
-
seller_name(선택 사항)은 AWS Marketplace Seller를 지정하는 데 사용됩니다. 기본값은redhatinc입니다. EMEA에 기반을 두고redhatlimitedAWS Marketplace 판매자를 통해 이 제품을 구매한 경우 이 값이redhatlimited로 설정되어 있는지 확인하십시오.
데이터 파일을 채우면 다음과 같아야 합니다.
다음 값은 예제로 제공됩니다.
aws_upgrade:
ansible_config_path:
cloud_credentials_path: ~/.aws/credentials
deployment_name: AnsibleAutomationPlatform
extra_vars:
aws_backup_taken: true
aws_region: us-east-1
aws_ssm_bucket_name: aap-ssm-bucket
seller_name: redhatinc10.2.5. upgrade 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=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro --env ANSIBLE_CONFIG=../aws-ansible.cfg --env DEPLOYMENT_NAME=AnsibleAutomationPlatform --env GENERATE_INVENTORY=true $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc' ===============================================
지정된 업그레이드 명령을 실행하여 업그레이드를 트리거합니다.
$ docker run --rm --env PLATFORM=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro --env ANSIBLE_CONFIG=../aws-ansible.cfg --env DEPLOYMENT_NAME=AnsibleAutomationPlatform --env GENERATE_INVENTORY=true $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc'
업그레이드를 완료하는 데 시간이 다소 걸릴 수 있지만 시스템의 확장 노드 수에 따라 더 오래 걸릴 수 있습니다. 성공적인 업그레이드는 아래 로그에 표시됩니다.
TASK [redhat.ansible_on_clouds.standalone_aws_upgrade : [upgrade] [LOG] upgrade version] *** ok: [localhost] => { "msg": "Successfully upgraded from '2.3.20230221-00' -> '2.4.20230630-00'." }- 이제 AWS Marketplace 배포의 Ansible Automation Platform이 최신 버전으로 업그레이드되고 배포 인증 정보를 사용하여 Red Hat Ansible Automation Platform 자동화 컨트롤러 및 자동화 허브에 로그인할 수 있습니다.