9.2. Ansible Automation Platform 배포 복원
다음 절차를 사용하여 원활한 복원 프로세스를 보장합니다.
복원된 배포에는 원래의 백업 배포와 동일한 VPC 네트워킹 설정이 포함되어 있습니다. 기존 VPC 내에 백업 배포가 배포된 경우 복원된 배포도 해당 VPC에 배포됩니다. 새 VPC를 사용하여 백업 배포가 배포된 경우 복원된 배포도 새 VPC와 함께 배포됩니다.
9.2.1. AWS 권한
복원하려는 배포를 복원하려면 다음 권한이 부여되어야 합니다.
다음 표에는 필요한 IAM 정책 목록이 포함되어 있습니다.
| 새 VPC를 사용한 배포의 경우 | 기존 VPC를 사용한 배포의 경우 |
|---|---|
| 자동 스케일링
| 자동 스케일링
|
| Backup
| Backup
|
| cloudformation
| cloudformation
|
| ec2
| ec2
|
| elasticfilesystem
| elasticfilesystem
|
| elasticloadbalancing
| elasticloadbalancing
|
| IAM
| IAM
|
| kms
| kms
|
| rds
| rds
|
| s3
| s3
|
| secretsmanager
| secretsmanager
|
| Cryostat
| Cryostat
|
9.2.2. ansible-on-clouds-ops 컨테이너 이미지 설정
ansible-on-clouds-ops 이미지 태그는 기본 배포 버전과 일치해야 합니다. 예를 들어 기반 배포 버전이 2.4.20230630-00인 경우 태그 2.4.20230630을 사용하여 ansible-on-clouds-ops 이미지를 가져옵니다.
절차
기본 배포와 동일한 태그 버전을 사용하여
ansible-on-clouds-ops컨테이너 이미지를 가져옵니다.참고docker 이미지를 가져오기 전에 docker를 사용하여 registry.redhat.io에 로그인했는지 확인합니다. 다음 명령을 사용하여 registry.redhat.io에 로그인합니다.
$ docker login registry.redhat.io
레지스트리 로그인에 대한 자세한 내용은 레지스트리 인증을 참조하십시오.
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 $ docker pull $IMAGE --platform=linux/amd64
9.2.3. 복원 데이터 파일 생성
다음 명령은 디렉터리를 생성하고 복원 중에 완료되면 이 템플릿을 빈 데이터 템플릿으로 채웁니다.
절차
구성을 저장할 폴더를 생성
$ mkdir command_generator_data
$(pwd)/command_generator_data폴더를 구성 파일 템플릿으로 채웁니다.참고Linux에서 명령 생성기가 생성한 모든 파일 또는 디렉터리는 기본적으로
root:root에 의해 소유됩니다. 파일과 디렉터리의 소유권을 변경하려면 파일이 생성된 후sudo chmod명령을 실행할 수 있습니다. 자세한 내용은 root가 소유한 명령 생성기 - Linux 파일을 참조하십시오.$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars aws_restore_stack \ --output-data-file /data/restore.yml
이러한 명령을 실행하면
$(pwd)/command_generator_data/restore.yml템플릿 파일이 생성됩니다. 이 템플릿 파일은 다음과 유사합니다.aws_restore_stack: ansible_config_path: cloud_credentials_path: deployment_name: extra_vars: aws_backup_iam_role_arn: aws_backup_name: aws_backup_restore_point_arn: aws_backup_vault_name: aws_rds_db_snapshot_arn: aws_region: aws_s3_bucket: aws_ssm_bucket_name:
9.2.4. 복원 데이터 파일 업데이트
복원을 트리거하기 전에 데이터 파일을 채워야 합니다. 다음 변수는 데이터 파일에 나열된 매개 변수입니다.
-
ansible_config_path(선택 사항)는 사용자 지정ansible_config로 재정의된 경우에만 사용합니다. -
cloud_credentials_path는 AWS 인증 정보 파일의 경로입니다. -
deployment_name은 복원된 배포에 사용할 이름입니다. aws_backup_iam_role_arn(선택 사항)은 백업 작업을 수행할 수 있는 권한이 있는 AWS IAM 역할의 Amazon Resource Name (ARN)입니다.참고제공된 경우 플레이북은 S3의 백업 파일에서 참조되는 IAM 역할의 값에 대해 기본적으로 이 값으로 설정됩니다. 자세한 내용은 Ansible Automation Platform 배포백업을 참조하십시오.
-
aws_backup_name은 S3에 저장된 백업 폴더의 이름입니다. 이 값은 백업 플레이북을 실행한 후 출력되었습니다. aws_backup_restore_point_arn(선택 사항)은 복원에 사용할 EFS 복구 지점의 ARN입니다.참고제공된 경우 플레이북은 기본적으로 S3의 백업 파일에서 참조되는 EFS 복원 지점을 통해 이 값으로 설정됩니다. AWS 권한을 참조하십시오.
또한 제공된 복원 지점이 복원을 실행하는 ansible-on-clouds-ops 컨테이너 이미지와 일치하는 Cloud(AoC) 버전의 Ansible인지 확인해야 합니다. 예를 들어 AoC 버전 2.4.20230630-00에 배포된 복원 지점은
ansible-on-clouds-ops컨테이너 이미지 버전2.4.20230630을 사용해야 합니다.aws_backup_vault_name(선택 사항)은 EFS 복구 포인트를 보유한 백업 자격 증명 모음의 이름입니다.참고제공된 경우 플레이북은 백업 작업을 실행할 때 생성된 S3의 백업 파일에서 참조되는 backup vault를 통해 기본적으로 이 값으로 설정됩니다. AWS 권한을 참조하십시오. 또한 이 백업 자격 증명 모음이 배포를 백업하는 데 사용된 것과 일치하는지 확인해야 합니다.
aws_rds_db_snapshot_arn(선택 사항)은 복원에 사용할 RDS 스냅샷의 ARN입니다.참고제공된 경우 플레이북은 S3의 백업 파일에서 참조되는 RDS 스냅샷을 통해 기본적으로 이 값으로 설정됩니다. 또한 제공된 RDS 스냅샷이 복원을 실행하는
ansible-on-clouds-ops컨테이너 이미지와 일치하는 Cloud의 Ansible 버전에서 사용 중인지 확인해야 합니다. 예를 들어 AoC 버전 2.4.20230630-00의 배포에서 가져온 RDS 스냅샷은ansible-on-clouds-ops컨테이너 이미지 버전2.4.20230630을 사용해야 합니다.-
aws_region은 foundation 배포가 배포된 리전입니다. -
aws_s3_bucket은 백업 파일이 저장된 S3 버킷의 이름입니다. 백업에 사용된 버킷과 동일해야 합니다. aws_ssm_bucket_name은 AWS SSM의 임시 구성 파일이 저장된 S3 버킷의 이름입니다. 기존 버킷을 사용하거나 새 버킷을 생성할 수 있습니다.참고aws_ssm_bucket_name매개변수는 임시 구성 파일을 저장하는 데만 사용됩니다. 다른 플레이북에서 사용하기 위해 저장할 필요가 없습니다. 유효한 기존 버킷을 모두 사용할 수 있습니다. S3 버킷 생성에 대한 자세한 내용은 AWS 문서에서 AWS 생성 A 버킷 을 참조하십시오.데이터 파일을 채우면 다음과 같아야 합니다. 이 파일의 값은 예제로 제공됩니다.
참고이 데이터 파일 예제의 선택적 값이 제거되었습니다. 이러한 선택적 값을 사용하지 않고 이러한 변수에 기본값을 사용하려면 아래 예제에서와 같이 데이터 파일에 대한 기본값도 제거해야 합니다. 이러한 선택적 변수를 사용하려는 경우 데이터 파일에 'must'를 포함시키고 값을 할당합니다.
aws_restore_stack: cloud_credentials_path: ~/.aws/credentials deployment_name: AnsibleAutomationPlatform extra_vars: aws_backup_name: ansible-automation-platform-bucket-20230706T163309 aws_region: us-east-1 aws_s3_bucket: ansible-automation-platform-bucket aws_ssm_bucket_name: aap-ssm-bucket
9.2.5. 복원 플레이북 실행
다음 절차에서는 복원 플레이북을 컨테이너로 실행합니다.
절차
복원을 실행하려면 명령 생성기를 실행합니다.
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator aws_restore_stack --data-file /data/restore.yml
이렇게 하면 복원 CLI 명령이 생성됩니다.
---------------------------------------------- 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 --env CHECK_GENERATED_INVENTORY=false \ $IMAGE redhat.ansible_on_clouds.aws_restore_stack -e 'aws_foundation_stack_name=AnsibleAutomationPlatform \ aws_backup_name=ansible-automation-platform-bucket-20230706T163309 aws_region=us-east-1 \ aws_s3_bucket=ansible-automation-platform-bucket aws_ssm_bucket_name=aap-ssm-bucket' ===============================================
생성된 명령을 실행하여 복원을 트리거합니다.
$ 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 --env CHECK_GENERATED_INVENTORY=false \ $IMAGE redhat.ansible_on_clouds.aws_restore_stack -e 'aws_foundation_stack_name=AnsibleAutomationPlatform \ aws_backup_name=ansible-automation-platform-bucket-20230706T163309 aws_region=us-east-1 \ aws_s3_bucket=ansible-automation-platform-bucket aws_ssm_bucket_name=aap-ssm-bucket'
-
Playbook은 복원된 배포를 생성하는 데 다소 시간이 걸릴 수 있습니다. 플레이북을 성공적으로 실행하면 AWS CloudFormation에서 복원된 배포를
restore.yml파일에 제공된 이름과 일치시킬 수 있습니다.
복원된 배포에는 원래의 백업 배포와 동일한 VPC 네트워킹 설정이 포함되어 있습니다. 기존 VPC 내에 백업 배포가 배포된 경우 복원된 배포도 해당 VPC에 배포됩니다. 새 VPC를 사용하여 백업 배포가 배포된 경우 복원된 배포도 새 VPC와 함께 배포됩니다.