11장. 프로젝트
프로젝트는 자동화 컨트롤러에 표시되는 Ansible 플레이북의 논리 컬렉션입니다. 플레이북 및 플레이북 디렉터리를 다양한 방법으로 관리할 수 있습니다.
- 자동화 컨트롤러 서버의 프로젝트 기본 경로 아래에 수동으로 배치하여 다음을 수행합니다.
- 플레이북을 자동화 컨트롤러에서 지원하는 SCM(소스 코드 관리) 시스템에 배치하여 다음을 수행합니다. 여기에는 Git, Subversion, Mercurial 및 Red Hat Insights가 포함됩니다.
Red Hat Insights 프로젝트 생성에 대한 자세한 내용은 Red Hat Ansible Automation Platform 수정을 위한 Red Hat Insights 설정을 참조하십시오.
프로젝트 기본 경로는 /var/lib/awx/projects
입니다. 그러나 시스템 관리자가 수정할 수 있습니다. /etc/tower/conf.d/custom.py
에 구성됩니다.
잘못 설정하면 설치가 비활성화될 수 있으므로 이 파일을 편집할 때 주의하십시오.
프로젝트 페이지에는 현재 사용 가능한 프로젝트 목록이 표시됩니다.
처음에 사용할 수 있는 데모 프로젝트 가 제공됩니다.
기본 뷰는 프로젝트 이름과 해당 상태와 함께 접혀 있지만 각 항목 옆에 있는 를 사용하여 확장하면 자세한 내용을 확인할 수 있습니다.
나열된 각 프로젝트에 대해 각 프로젝트 옆에 있는 아이콘을 사용하여 최신 SCM 버전 을 가져오거나, 프로젝트를 편집하거나, 프로젝트 속성을 복사할 수 있습니다.
관련 작업이 실행되는 동안 프로젝트를 업데이트할 수 있습니다.
대규모 프로젝트(약 10GB)가 있는 경우 /tmp
의 디스크 공간이 문제가 될 수 있습니다.
Status 는 프로젝트의 상태를 나타내며 다음 중 하나일 수 있습니다(특정 상태 유형에 따라 뷰를 필터링할 수도 있음).
보류 중 - 소스 제어 업데이트가 생성되었지만 아직 대기열에 추가되거나 시작되지 않았습니다. 모든 작업(소스 제어 업데이트뿐만 아니라)은 시스템에서 실행할 준비가 될 때까지 보류 중 상태로 유지됩니다. 준비되지 않은 이유는 다음과 같습니다.
- 현재 실행 중인 종속 항목이 있으므로 완료될 때까지 기다려야 합니다.
- 구성된 위치에서 실행할 수 있는 용량이 충분하지 않습니다.
- waiting - 소스 제어 업데이트가 대기열에 있으며 실행 대기 중입니다.
- Running - 현재 소스 제어 업데이트가 진행 중입니다.
- 성공 - 이 프로젝트의 마지막 소스 제어 업데이트가 성공했습니다.
- Failed - 이 프로젝트의 마지막 소스 제어 업데이트가 실패했습니다.
- 오류 - 마지막 소스 제어 업데이트 작업이 전혀 실행되지 않았습니다.
- 취소됨 - 프로젝트의 마지막 소스 제어 업데이트가 취소되었습니다.
- 업데이트되지 않음 - 프로젝트가 소스 제어용으로 구성되어 있지만 업데이트되지 않았습니다.
- OK - 프로젝트가 소스 제어용으로 구성되지 않았으며 올바르게 설치되어 있습니다.
-
누락됨 - 프로젝트가
/var/lib/awx/projects
의 프로젝트 기본 경로에 없습니다. 이는 수동 또는 소스 제어 관리 프로젝트에 적용됩니다.
인증 정보 유형 Manual
의 프로젝트는 SCM 유형 인증 정보로 재구성하지 않고 소스 제어 기반 작업을 업데이트하거나 예약할 수 없습니다.
11.1. 새 프로젝트 추가
자동화 컨트롤러에서 projects라고 하는 플레이북의 논리 컬렉션을 생성할 수 있습니다.
프로세스
-
탐색 패널에서
선택합니다. - 프로젝트 페이지에서 프로젝트 창을 시작합니다.
다음 필수 필드에 적절한 세부 정보를 입력합니다.
- 이름 (필수)
- 선택 사항: 설명
- 조직 (필수): 프로젝트에는 하나 이상의 조직이 있어야 합니다. 프로젝트를 생성할 하나의 조직을 선택합니다. 프로젝트가 생성되면 조직을 추가할 수 있습니다.
- 선택 사항: 실행 환경: 실행 환경의 이름을 입력하거나 이 프로젝트를 실행할 기존 실행 환경 목록에서 검색합니다. 자세한 내용은 실행 환경 생성 및 사용을 참조하십시오.
- 소스 제어 유형 (필수): 메뉴에서 이 프로젝트와 관련된 SCM 유형을 선택합니다. 다음 섹션의 옵션은 선택한 유형에 따라 사용할 수 있습니다. 자세한 내용은 소스 제어를 사용하여 플레이북을 수동으로 관리하거나 플레이북 관리를 참조하십시오.
- 선택 사항: 콘텐츠 서명 검증 인증 정보: 이 필드를 사용하여 콘텐츠 확인을 활성화합니다. 프로젝트 동기화 중에 콘텐츠 서명을 확인하는 데 사용할 GPG 키를 지정합니다. 콘텐츠가 변조된 경우 작업이 실행되지 않습니다. 자세한 내용은 프로젝트 서명 및 확인을 참조하십시오.
- 클릭합니다.
추가 리소스
다음은 프로젝트를 소싱하는 방법을 설명합니다.
11.1.1. 플레이북 수동 관리
프로세스
-
프로젝트 기본 경로 아래에 플레이북을 저장할 하나 이상의 디렉터리를 생성합니다(예:
/var/lib/awx/projects/
). - 플레이북 파일을 생성하거나 플레이북 디렉터리에 복사합니다.
- 서비스가 실행되는 것과 동일한 UNIX 사용자 및 그룹이 플레이북 디렉터리 및 파일을 소유하고 있는지 확인합니다.
- 권한이 플레이북 디렉터리 및 파일에 적합한지 확인합니다.
문제 해결
Ansible Playbook 디렉터리를 기본 프로젝트 경로에 추가하지 않은 경우 오류 메시지가 표시됩니다. 이 오류 문제를 해결하려면 다음 옵션 중 하나를 선택합니다.
- 적절한 플레이북 디렉터리를 생성하고 (소스 코드 관리) SCM에서 플레이북을 확인합니다.
- 플레이북을 적절한 플레이북 디렉터리에 복사합니다.
11.1.2. 소스 제어를 사용하여 플레이북 관리
소스 제어를 사용하여 플레이북을 관리할 때 다음 옵션 중 하나를 선택합니다.
11.1.2.1. SCM 유형 - Git 및 Subversion을 사용하도록 플레이북 구성
프로세스
-
탐색 패널에서
선택합니다. - 사용할 프로젝트 이름을 클릭합니다.
- 프로젝트 세부 정보 탭에서 클릭합니다.
- 소스 제어 유형 메뉴에서 적절한 옵션(Git 또는 Subversion)을 선택합니다.
다음 필드에 적절한 세부 정보를 입력합니다.
- 소스 제어 URL - 툴팁에서 예제를 참조하십시오.
-
선택 사항: 소스 제어 분기/태그/커밋: 체크아웃할 소스 제어(Git 또는 Subversion)의 SCM 분기, 태그, 커밋 해시, 임의의 refs 또는 버전 번호(해당하는 경우)를 입력합니다. 다음 필드에 사용자 정의 refspec을 지정하지 않는 한 일부 커밋 해시 및 참조를 사용할 수 없습니다. 비워 두는 경우 기본값은
HEAD
이며 이 프로젝트에 대해 마지막으로 체크아웃된 분기, 태그 또는 커밋입니다. - 소스 제어 참조 사양 - 이 필드는 Git 소스 제어와 관련된 옵션이며, Git에 익숙하고 편안한 고급 사용자만 원격 리포지토리에서 다운로드할 참조를 지정해야 합니다. 자세한 내용은 작업 분기 덮어쓰기를 참조하십시오.
- 소스 제어 인증 정보 - 인증이 필요한 경우 적절한 소스 제어 인증 정보를 선택합니다.
선택 사항: 옵션 - 해당하는 경우 시작 동작을 선택합니다.
- clean - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.
- delete - 업데이트를 수행하기 전에 전체 로컬 리포지토리를 삭제합니다. 리포지토리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.
- 하위 모듈 추적 - 최신 커밋을 추적합니다. 툴팁 에 자세한 정보가 있습니다.
- 시작 시 버전 업데이트 - 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Ansible Galaxy 지원 또는 컬렉션 지원 에서 역할 디렉터리를 캐싱합니다. 자동화 컨트롤러를 사용하면 로컬 버전이 일치하고 역할 및 컬렉션이 마지막 업데이트와 함께 최신 상태인지 확인합니다. 또한 프로젝트가 동기화할 수 있는 것보다 작업이 더 빨리 생성되는 경우 작업 오버플로를 방지하기 위해 이를 선택하면 캐시 제한 시간을 구성하여 지정된 초 동안 이전 프로젝트 동기화를 캐시할 수 있습니다.
- 분기 덮어쓰기 허용 - 이 프로젝트를 사용하여 프로젝트의 해당 항목 이외의 지정된 SCM 분기 또는 버전으로 시작하는 작업 템플릿 또는 인벤토리 소스를 활성화합니다. 자세한 내용은 작업 분기 덮어쓰기를 참조하십시오.
- 클릭합니다.
11.1.2.2. SCM 유형 - Red Hat Insights를 사용하도록 플레이북 구성
프로세스
-
탐색 패널에서
선택합니다. - 사용할 프로젝트 이름을 클릭합니다.
- 프로젝트 세부 정보 탭에서 클릭합니다.
- 소스 제어 유형 메뉴에서 Red Hat Insights 를 선택합니다.
- Insights 인증 정보 필드에서 Red Hat Insights에 인증을 위한 인증 정보가 필요하므로 Insights와 함께 사용할 적절한 인증 정보를 선택합니다.
선택 사항: 옵션 필드에서 해당하는 경우 시작 동작을 선택합니다.
- clean - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.
- delete - 업데이트를 수행하기 전에 전체 로컬 리포지토리를 삭제합니다. 리포지토리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.
- 시작 시 버전 업데이트 - 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Ansible Galaxy 지원 또는 컬렉션 지원 의 역할 디렉터리를 캐시합니다. 자동화 컨트롤러를 사용하면 로컬 버전이 일치하고 역할 및 컬렉션이 최신 상태인지 확인합니다. 프로젝트가 동기화할 수 있는 것보다 작업이 더 빨리 생성되는 경우 이를 선택하면 작업 오버플로를 방지하기 위해 특정 시간(초)에 대한 이전 프로젝트 동기화를 캐시하도록 Cache Timeout을 구성할 수 있습니다.
- 클릭합니다.
11.1.2.3. SCM 유형 - 원격 아카이브를 사용하도록 플레이북 구성
원격 아카이브를 사용하는 플레이북을 사용하면 버전이 지정된 아티팩트 또는 릴리스를 생성하는 빌드 프로세스를 기반으로 프로젝트가 단일 아카이브에 해당 프로젝트의 모든 요구 사항을 포함할 수 있습니다.
프로세스
-
탐색 패널에서
선택합니다. - 사용할 프로젝트 이름을 클릭합니다.
- 프로젝트 세부 정보 탭에서 클릭합니다.
- 소스 제어 유형 메뉴에서 원격 아카이브 를 선택합니다.
다음 필드에 적절한 세부 정보를 입력합니다.
- 소스 제어 URL - GitHub 릴리스 또는 Artifactory 에 저장된 빌드 아티팩트와 같은 원격 아카이브에 대한 URL이 필요하며 사용할 프로젝트 경로에 압축을 풉니다.
- 소스 제어 인증 정보 - 인증이 필요한 경우 적절한 소스 제어 인증 정보를 선택합니다.
선택 사항: 옵션 필드에서 해당하는 경우 시작 동작을 선택합니다.
- clean - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.
- delete - 업데이트를 수행하기 전에 전체 로컬 리포지토리를 삭제합니다. 리포지토리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.
- 시작 시 버전 업데이트 - 권장되지 않습니다. 이 옵션은 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Ansible Galaxy 지원 또는 컬렉션 지원 의 역할 디렉터리를 캐시합니다.
분기 덮어쓰기 허용 - 권장되지 않습니다. 이 옵션을 사용하면 이 프로젝트를 사용하는 작업 템플릿이 프로젝트의 해당 항목 이외에 지정된 SCM 분기 또는 버전을 사용하여 시작할 수 있습니다.
참고이 소스 제어 유형은 변경되지 않는 아티팩트 개념을 지원하기 위한 것이므로 Galaxy 통합을 비활성화하는 것이 좋습니다(역할의 경우 최소한).
- 클릭합니다.