5장. 가상 환경을 실행 환경으로 마이그레이션
Ansible Automation Platform 2에는 자동화 컨트롤 플레인 및 실행 플레인을 완전히 분리하는 재지정된 아키텍처가 포함되어 있습니다. 새로운 기능을 사용하면 전 세계적으로 자동화를 더 쉽게 확장할 수 있으며 단일 데이터 센터에서 자동화를 실행하는 데 바인딩되지 않고도 소스에 가까운 만큼 자동화를 실행할 수 있습니다. Ansible Automation Platform 1.2에 비해 동적이고 확장 가능하며 탄력적이며 유연합니다.
자동화 실행 환경이 도입되면서 이러한 컨테이너 이미지를 사용하면 Ansible Core, Ansible Content Collections, Python 종속성, Red Hat Enterprise Linux UBI 8 및 추가 패키지 종속 항목과 같은 주요 구성 요소를 포함하여 모든 자동화를 패키징하고 실행할 수 있습니다.
이 장에서는 Ansible Automation Platform 1.2 클러스터의 사용자 지정 Python 가상 환경을 사용자 빌드 자동화 실행 환경으로 마이그레이션하는 데 중점을 둡니다.
이러한 일회성 노력으로 최신 Ansible Automation Platform 2 기능과 장기 유지보수가 더 낮은 여러 플랫폼에서 일관된 자동화를 실행할 수 있는 기능을 활용할 수 있습니다.
사용자 빌드 실행 환경에 액세스하려면 프라이빗 자동화 허브 또는 컨테이너 레지스트리 내에서 호스팅해야 합니다. 프라이빗 자동화 허브를 설치하는 방법에 대한 자세한 내용은 Ansible Automation Platform 2.1 배포 참조 아키텍처를 참조하십시오.
5.1. 가상 환경 실행 환경으로의 마이그레이션 자동화 링크 복사링크가 클립보드에 복사되었습니다!
단순화를 위해 Ansible 명령을 간단히 실행하여 프로세스를 자동화하는 추가 Ansible 플레이북을 포함합니다.
완전성을 위해 수동 프로세스는 다음으로 구성됩니다.
- 사용자 지정 Python 가상 환경이 있는 Ansible Automation Platform 1.2 환경
-
awx-manage명령줄 유틸리티를 사용하여 사용자 지정 Python 가상 환경 목록을 가져옵니다. -
각 Python 가상 환경에서
awx-manage export_custom_venv명령을 실행하여 설치된 Python 패키지 목록을 가져옵니다. -
awx-manage custom_venv_associations명령을 사용하여 Python 가상 환경 연결 확인 -
ansible-builder툴을 사용하여 실행 환경을 생성하도록 위의 정보 필터링
자동화된 프로세스는 다음으로 구성됩니다.
- Ansible Automation Platform 1.2 환경에 있는 각 사용자 지정 Python 가상 환경에서 패키지 목록 가져오기
- 이전 단계의 패키지 목록과 Ansible-2.9의 패키지 목록 비교[1] 기본 Ansible-2.9 실행 환경에 없는 패키지를 찾으려면 다음을 수행합니다.
- Ansible-2.9 실행 환경을 기반으로 사용하고 이전 단계에서 목록에서 누락된 종속성을 포함하는 새 사용자 지정 실행 환경을 생성합니다.
다음과 같은 시나리오를 실행하려면 다음 예제를 살펴보겠습니다.
기존 Ansible Automation Platform 1.2에는 custom-venv1 및 custom-venv2 라는 두 개의 사용자 지정 Python 가상 환경이 있습니다.
redhat_cop.ee_utilities 컬렉션에 패키지된 virtualenv_ migrate 역할을 사용하여 Ansible Tower 노드에 대한 ssh 액세스를 통해 Ansible Automation Platform 1.2 환경에 대해 이를 실행하여 현재 비교 중인 기본 실행 환경의 패키지 및 해당 버전을 추출합니다(Ansible 2.9 실행 환경).
redhat_cop.ee_utilities 컬렉션은 커뮤니티 프로젝트이며 Red Hat에서 공식적으로 지원하지 않습니다.
각 환경에 대한 샘플 플레이북 및 인벤토리 파일은 다음과 같습니다.
playbook.yml
인벤토리
-
Ansible Tower 노드에
ssh에 필요한 사용자를 기반으로 ansible_user=<ANSIBLE_USER>를 추가합니다. -
이 참조 환경은 암호화된 인증 정보를 사용하며 일반 텍스트에 암호를 포함하지 않습니다. 부록 C. 암호화된 credentials.yml 파일 생성 에서 자세한 내용은
ansible-vault를 사용하여 레지스트리 인증 정보를 암호화하는 방법에 대해 확인할 수 있습니다. 암호화된 credentials.yml 파일은registry_password를 제공하는 데 사용됩니다.
podman 명령을 실행하려면 이 역할에는 sudo 권한이 필요합니다.
Ansible 플레이북의 샘플 출력에는 사용자 정의 Python 가상 환경에 필요한 추가 패키지 목록이 표시됩니다. 이 경우 custom-venv1 Python 가상 환경에 다음과 같은 패키지가 Ansible 2.9 실행 환경의 일부에 추가로 필요합니다.
- certifi
- charset-normalizer
- enum34
- future
- solidfire-sdk-python
custom-venv2 Python 가상 환경은 이미 표준 Ansible-2.9 실행 환경의 일부 외에 zabbix-api 만 필요했습니다.
Ansible 2.9 실행 환경은 대부분의 Ansible Automation Platform 1.2 환경이 Ansible 2.9를 사용하고 있기 때문에 사용자 지정 Python 가상 환경과 비교하여 사용됩니다. 이렇게 하면 이전 버전과의 호환성으로 인해 마이그레이션 전환이 쉬워집니다.
각 사용자 지정 Python 가상 환경에 대해 패키지를 캡처하면 Ansible 플레이북은 로컬 사용자 환경에서 실행 환경 생성을 자동화하는 redhat_cop.ee_utilities 컬렉션의 일부인 ee_builder 역할을 사용합니다.
제공된 Ansible 플레이북을 실행하기 전에 localhost 시스템에 ansible-builder를 설치하기 전에 플레이북 실행이 사용자 지정 Python 가상 환경과 제공된 기본 실행 환경 간의 패키지 delta를 기반으로 로컬 시스템에서 실행 환경을 생성합니다.
5.1.1. 프라이빗 자동화 허브로 푸시 링크 복사링크가 클립보드에 복사되었습니다!
로컬 실행 환경을 사용하여 다음을 통해 프라이빗 자동화 허브로 푸시할 수 있습니다.
이 참조 아키텍처에서는 단순화를 위해 자동화 실행 환경의 이름을 사용자 지정 Python 가상 환경의 이름으로 유지합니다. 이름 변경이 필요한 경우 실행 환경을 프라이빗 자동화 허브 또는 선택한 컨테이너 레지스트리로 푸시하기 전에 podman tag 명령을 사용하십시오.
podman login [automation-hub-url] Enter the username and password to access Private Automation Hub. podman tag [image-id] [automation-hub-url]/[container image name] podman push [automation-hub-url]/[container image name]
$ podman login [automation-hub-url]
# Enter the username and password to access Private Automation Hub.
$ podman tag [image-id] [automation-hub-url]/[container image name]
$ podman push [automation-hub-url]/[container image name]
자세한 내용은 프라이빗 자동화 허브에서 컨테이너관리를 참조하십시오.
컨트롤러 사용자 인터페이스 내에서 프라이빗 자동화 허브의 레지스트리 인증 정보를 생성하여 실행 환경을 자동화 컨트롤러와 동기화합니다.
자동화 컨트롤러 내에서 레지스트리 인증 정보를 생성하려면 다음을 수행합니다.
- 리소스 인증 정보 선택
- 인증 정보 에서 파란색 추가 버튼을 선택합니다.
새 인증 정보 생성 창에서 다음을 수행합니다.
- 내 개인 자동화 허브 자격 증명과 같은 이름을 입력합니다.
- 인증 정보 유형 아래에서 드롭다운을 선택하고 컨테이너 레지스트리를 선택합니다.
유형 세부 정보에서
- 인증 URL 제공 (예: pah.example.com)
- 사용자 이름 필드에 프라이빗 자동화 허브 사용자 이름 제공
- 암호 또는 토큰 필드 내에 개인 자동화 허브 암호 또는 토큰 제공
- 프라이빗 자동화 허브 환경에서 SSL을 지원하는 경우 SSL 확인을 선택합니다.
- 저장을클릭합니다.
자동화 컨트롤러 내에서 실행 환경을 사용하려면 프라이빗 자동화 허브에서 이미지를 가져올 새 실행 환경을 생성합니다.
자동화 컨트롤러 내에서,
- Administration >Execution Environments선택
- 실행 환경 내에서 파란색 추가 버튼을 선택합니다.
새 실행 환경 만들기 창에서 다음을 수행합니다.
- 이름 제공(예: 내 실행 환경)
- 실행 환경의 이미지 위치(예: repo/project/image-name:tag)를 제공합니다.
레지스트리 인증 정보 돋보기 선택
- 개인 자동화 허브 자격 증명의 라디오 버튼을 클릭합니다(예: 개인 자동화 허브 인증 정보).
이제 자동화 컨트롤러 내에서 실행 환경을 사용할 수 있으므로 기존 작업 템플릿 또는 새로 생성된 작업 템플릿에 대해 사용할 수 있습니다.
이전 버전과의 호환성이 제한되지 않은 새 사용자 빌드 실행 환경을 생성할 때는 ee-minimal 실행 환경을 기본 실행 환경으로 사용하여 새 이미지를 빌드하는 것이 좋습니다.