11.4. Ansible Galaxy 지원
프로젝트 업데이트가 끝나면 자동화 컨트롤러는 < project-top-level-directory>/ 파일을 검색합니다.
roles /requirements.yml 에 있는 roles 디렉터리에서 requirements.yml
이 파일이 있으면 다음 명령이 자동으로 실행됩니다.
ansible-galaxy role install -r roles/requirements.yml -p <project-specific cache location>/requirements_roles -vvv
이 파일을 사용하면 자체 프로젝트와 함께 확인할 수 있는 다른 리포지토리 내의 Ansible Galaxy 역할 또는 역할을 참조할 수 있습니다. Ansible Galaxy 액세스를 추가하면 이 결과를 얻기 위해 git 하위 모듈을 생성할 필요가 없습니다. 역할 또는 컬렉션과 함께 SCM 프로젝트를 개인 작업 환경으로 가져와 실행하는 경우 /tmp 내의 프로젝트와 관련된 < private 작업 디렉터리 >가 기본적으로 생성됩니다.
캐시 디렉터리는 글로벌 프로젝트 폴더 내부의 하위 디렉터리입니다. 캐시 위치의 콘텐츠를 < job 개인 디렉터리>/requirements_roles 에 복사할 수 있습니다.
기본적으로 자동화 컨트롤러에는 SCM 프로젝트의 roles/requirements.yml 파일에서 역할을 동적으로 다운로드할 수 있는 시스템 전체 설정이 있습니다. 역할 다운로드 사용 확인란을 선택 해제하여 탐색 패널에서 화면에서 이 설정을 끌 수 있습니다.
프로젝트 동기화가 실행될 때마다 자동화 컨트롤러에서 프로젝트 소스 및 Galaxy 또는 Collections의 역할이 프로젝트에서 최신 상태가 아닌지를 결정합니다. 프로젝트 업데이트는 업데이트 내의 역할을 다운로드합니다.
작업에서 업스트림 역할에 대한 변경 사항을 선택해야 하는 경우 프로젝트를 업데이트하면 이러한 상황이 발생합니다. 역할에 대한 변경 사항은 새 커밋이 provision-role 소스 제어로 푸시되었음을 의미합니다.
이 변경 사항을 작업에 적용하기 위해 새 커밋을 playbooks 리포지토리로 푸시할 필요가 없습니다. 역할을 로컬 캐시에 다운로드하는 프로젝트를 업데이트해야 합니다.
예를 들어, 소스 제어에 두 개의 Git 리포지터리가 있다고 가정합니다. 첫 번째는 플레이북 이며 자동화 컨트롤러의 프로젝트는 이 URL을 가리킵니다. 두 번째는 provision-role 이며 Playbook Git 리포지토리 내부의 roles/requirements.yml 파일에서 참조합니다.
작업은 모든 작업을 실행하기 전에 최신 역할을 다운로드합니다. 역할 및 컬렉션은 성능상의 이유로 로컬로 캐시됩니다. 프로젝트 옵션에서 시작 시 버전 업데이트를 선택하여 각 작업을 실행하기 전에 업스트림 역할을 다시 다운로드해야 합니다.
업데이트는 프로세스에서 동기화보다 훨씬 일찍 수행되므로 오류 및 세부 정보가 더 논리적인 위치에서 더 빠르게 식별됩니다.
requirements.yml 파일의 구문에 대한 자세한 내용 및 예제는 Ansible 문서의 역할 요구 사항 섹션을 참조하십시오.
특별히 노출해야 하는 디렉터리가 있는 경우 탐색 패널 설정 작업의 작업 설정 화면에서 해당 디렉터리를 분리된 작업에 노출하는 경로로 지정할 수 있습니다. 설정 파일에서 다음 항목을 업데이트할 수도 있습니다.
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
플레이북에서 AWX_ISOLATION_SHOW_PATHS 에 정의된 키 또는 설정을 사용해야 하는 경우 AWX_ISOLATION_SHOW_PATHS 를 /var/lib/awx/.ssh 에 추가해야 합니다.
설정 파일을 변경한 경우 변경 사항을 저장한 후 automation-controller-service restart 명령을 사용하여 서비스를 다시 시작하십시오.
UI의 작업 설정 창에서 이러한 설정을 구성할 수 있습니다.