Documentation

27. 백업 및 복원

시스템을 백업하고 복원하는 기능은 플랫폼 설정 플레이북에 통합되어 있습니다. 추가 고려 사항은 :ref:`ag_clustering_backup_restore`를 참조하십시오.

참고

복원할 때는 백업 시 사용된 것과 동일한 버전으로 복원해야 합니다. 그러나 플랫폼 설치 버전을 백업 및/또는 복원하려면 항상 릴리스의 최신 부 버전을 사용해야 합니다. 예를 들어 현재 사용 중인 플랫폼 버전이 2.0.x인 경우 최신 2.0 설치 프로그램만 사용합니다.

또한 백업 및 복원은 현재 플랫폼 버전이 지원하는 PostgreSQL 버전에서*만* 실행됩니다. 자세한 내용은 `System Requirements <https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.0-ea/html-single/red_hat_ansible_automation_platform_installation_guide/index?lb_target=production#red_hat_ansible_automation_platform_system_requirements>`_을 참조하십시오.

플랫폼 설정 플레이북은 플랫폼 설치 프로그램 tarball의 압축을 푼 경로에서 ``setup.sh``로 호출됩니다. 설치 플레이북이 사용하는 것과 동일한 인벤토리 파일을 사용합니다. 설정 스크립트는 백업 및 복원을 위해 다음 인수를 사용합니다.

  • -b 설치 대신 데이터베이스 백업을 수행합니다.

  • -r 설치 대신 데이터베이스 복원을 수행합니다.

적절한 매개변수를 포함하여 root 사용자로 ``setup.sh``를 호출하면 플랫폼이 구성된 대로 백업 또는 복원됩니다.

root@localhost:~# ./setup.sh -b
root@localhost:~# ./setup.sh -r

setup.sh 스크립트가 있는 곳과 동일한 경로에 백업 파일이 생성됩니다. 다음 ``EXTRA_VARS``를 지정하면 경로를 변경할 수 있습니다.

root@localhost:~# ./setup.sh -e 'backup_dest=/path/to/backup_dir/' -b

아래 예제와 같이 ``EXTRA_VARS``에 기본 경로가 아닌 경로를 제공하지 않는 한, 기본 복원 경로가 사용됩니다.

root@localhost:~# ./setup.sh -e 'restore_backup_file=/path/to/nondefault/backup.tar.gz' -r

선택적으로 설정 스크립트에 인수로 전달하여 사용되는 인벤토리 파일을 덮어쓸 수 있습니다.

setup.sh -i <inventory file>

27.1. 백업/복원 플레이북

install.yml 설정 플레이북에 포함된 setup.sh 파일 외에도 백업 및 복원에 필요한 backup.ymlrestore.yml 파일이 있습니다.

해당 플레이북은 백업 및 복원이라는 두 가지 기능을 제공합니다.

  • 전체 백업은 다음을 백업합니다.

    1. 데이터베이스

    2. SECRET_KEY 파일

  • 시스템별 백업에는 다음이 포함됩니다.

    1. 사용자 지정 사용자 구성 파일

    2. 수동 프로젝트

  • 복원은 백업된 파일과 데이터를 새로 설치되어 작동 중인 두 번째 컨트롤러 인스턴스로 복원합니다.

시스템을 복원할 때 설치 관리자는 복원을 시작하기 전에 백업 파일이 있는지 확인합니다. 백업 파일을 사용할 수 없는 경우 복원에 실패합니다.

참고

호스트 파일에서 SSH 키 또는 사용자/암호 변수를 사용하여 컨트롤러 호스트가 올바르게 설정되었는지, 사용자에게 sudo 액세스 권한이 있는지 확인합니다.

27.2. 백업 및 복원 고려 사항

  • 디스크 공간: 디스크 공간 요구 사항을 검토하여 구성 파일, 키, 기타 관련 파일 및 플랫폼 설치 데이터베이스를 백업할 충분한 공간이 있는지 확인합니다.

  • 시스템 인증 정보: 로컬 데이터베이스 또는 원격 데이터베이스로 작업할 때 필요한 시스템 인증 정보가 있는지 확인합니다. 로컬 시스템에서는 인증 정보가 설정된 방식에 따라 root 또는 sudo 액세스 권한이 필요할 수 있습니다. 원격 시스템에서는 백업 또는 복원하려는 원격 시스템에 대한 액세스 권한을 부여하기 위해 다른 인증 정보가 필요할 수 있습니다.

  • 플랫폼 설치 버전을 백업 및/또는 복원하려면 항상 릴리스의 최신 부 버전을 사용해야 합니다. 예를 들어 현재 사용 중인 플랫폼 버전이 2.0.x인 경우 최신 2.0 설치 프로그램만 사용합니다.

  • setup.sh``를 사용하여 기본 복원 파일 경로인 ``/var/lib/awx``에서 복원을 수행하는 경우 복원을 수행하려면 ``-r``이 여전히 필요하지만 이상 인수를 허용하지 않습니다. 기본 경로가 아닌 복원 파일 경로가 필요한 경우 사용자가 추가 var(``root@localhost:~# ./setup.sh -e 'restore_backup_file=/path/to/nondefault/backup.tar.gz' -r)로 제공해야 합니다.

  • 백업 파일이 setup.sh 설치 프로그램과 동일한 디렉터리에 배치된 경우 복원 플레이북이 복원 파일을 자동으로 찾습니다. 이 경우에는 restore_backup_file 추가 var을 사용하여 백업 파일의 위치를 지정할 필요가 없습니다.

27.3. 클러스터형 환경의 백업 및 복원

클러스터형 환경의 백업 및 복원 절차는 이 섹션에서 설명하는 몇 가지 고려 사항을 제외하고 단일 설치와 유사합니다.

  • 새 클러스터로 복원하는 경우 데이터베이스에 액세스할 때 서로 충돌할 수 있으므로 계속 진행하기 전에 이전 클러스터가 종료되었는지 확인합니다.

  • 노드별 백업은 백업과 동일한 호스트 이름을 사용하는 노드로만 복원됩니다.

기존 클러스터로 복원하는 경우 복원에는 다음이 포함됩니다.

  • PostgreSQL 데이터베이스 덤프

  • UI 아티팩트(데이터베이스 덤프에 포함)

  • 컨트롤러 구성(``/etc/tower``에서 검색)

  • 컨트롤러 시크릿 키

  • 수동 프로젝트

27.3.1. 다른 클러스터로 복원

백업을 별도의 인스턴스 또는 클러스터로 복원하는 경우 /etc/tower 아래의 사용자 지정 설정과 수동 프로젝트는 유지됩니다. 작업 출력과 작업 이벤트는 데이터베이스에 저장되므로 영향을 받지 않습니다.

복원 프로세스는 복원 전에 있던 인스턴스 그룹을 변경하지 않습니다(새 인스턴스 그룹도 추가되지 않음). 인스턴스 그룹에 연결된, 복원된 컨트롤러 리소스를 새 컨트롤러 클러스터에 있는 인스턴스 그룹에 다시 할당해야 합니다.