Documentation

16. 프로젝트

:term:`Project`는 Ansible 플레이북의 논리 컬렉션입니다.

플레이북과 플레이북 디렉터리는 서버의 프로젝트 기본 경로 아래에 수동으로 배치하거나 Git, Subversion, Red Hat Insights를 포함하여 |at|에서 지원하는 소스 코드 관리(SCM) 시스템에 플레이북을 배치하여 관리할 수 있습니다. Red Hat Insights 프로젝트를 만들려면 :ref:`insights`을 참조하십시오.

참고

기본적으로 프로젝트 기본 경로는 ``/var/lib/awx/projects``지만 관리자가 경로를 수정했을 수 있습니다. 이 경로는 ``/etc/tower/conf.d/custom.py``에 구성되어 있습니다. 잘못 설정하면 설치가 비활성화될 수 있으므로 이 파일을 편집할 때 주의하십시오.

프로젝트 페이지에는 현재 사용 가능한 프로젝트 목록이 표시됩니다. 기본 뷰는 프로젝트 이름 및 해당 상태와 함께 접혀 있지만(콤팩트), 각 항목 옆에 있는 화살표를 사용하여 확장하면 자세한 정보를 볼 수 있습니다.

Projects - home with example project

_images/projects-list-all-expanded.png

나열된 각 프로젝트에 대해 각 프로젝트 옆에 있는 해당 아이콘을 사용하여 최신 SCM 버전을 가져오거나(refresh) 프로젝트를 편집하거나(edit) 프로젝트 특성을 복사(copy)할 수 있습니다. 프로젝트는 관련 작업이 실행되는 동안 업데이트할 수 있습니다. 큰 프로젝트(약 10GB)가 있는 경우 ``/tmp``의 디스크 공간이 문제가 될 수 있습니다.

**상태**는 프로젝트의 상태를 나타내며 다음 중 하나일 수 있습니다(특정 상태 유형에 따라 뷰를 필터링할 수도 있음).

  • 보류 중 - 소스 제어 업데이트가 생성되었지만 아직 대기열에 추가되거나 시작되지 않았습니다. 시스템에서 실제로 실행할 준비가 될 때까지 (소스 제어 업데이트뿐만 아니라) 모든 작업이 보류 중 상태로 유지됩니다. 작업이 준비되지 않은 이유는 현재 실행 중인 종속 항목이 있어 작업이 완료될 때까지 기다려야 하거나 구성된 위치에 실행할 수 있는 용량이 충분하지 않기 때문입니다.

  • 대기 중 - 소스 제어 업데이트가 대기열에 있으며 실행 대기 중입니다.

  • 실행 중 - 현재 소스 제어 업데이트가 진행 중입니다.

  • 성공 - 이 프로젝트의 마지막 소스 제어 업데이트가 성공했습니다.

  • 실패 - 이 프로젝트의 마지막 소스 제어 업데이트가 실패했습니다.

  • 오류 - 마지막 소스 제어 업데이트 작업이 전혀 실행되지 않았습니다. (더 이상 사용되지 않습니다.)

  • 취소됨 - 프로젝트의 마지막 소스 제어 업데이트가 취소되었습니다.

  • 업데이트되지 않음 - 프로젝트가 소스 제어용으로 구성되어 있지만 업데이트되지 않았습니다.

  • 확인 - 프로젝트가 소스 제어용으로 구성되지 않았으며 올바르게 설치되어 있습니다. (더 이상 사용되지 않습니다.)

  • 누락 - 프로젝트가 프로젝트 기본 경로 /var/lib/awx/projects (수동 또는 소스 제어 관리형 프로젝트에 해당)에 존재하지 않습니다.

참고

인증 정보 유형이 수동인 프로젝트는 소스 제어 기반 작업을 업데이트하거나 스케줄하려면 SCM 유형 인증 정보로 재구성해야 합니다.

참고

다른 작업 항목에서 사용하는 항목을 삭제하면 삭제의 영향을 받는 항목이 나열된 메시지가 열리고, 삭제를 확인하라는 메시지가 표시됩니다. 일부 화면에는 유효하지 않거나 이전에 삭제된 항목이 포함되며 이러한 항목은 실행되지 않습니다. 다음은 이러한 메시지의 예입니다.

_images/warning-deletion-dependencies.png

16.1. 새 프로젝트 추가

새 프로젝트를 생성하려면 다음을 수행합니다.

  1. 추가 버튼을 클릭합니다. 그러면 프로젝트 생성 창이 시작됩니다.

Projects - create new project

  1. 다음 필수 필드에 적절한 세부 정보를 입력합니다.

  • 이름

  • 설명 (선택 사항)

  • 조직 - 프로젝트에는 하나 이상의 조직이 있어야 합니다. 하나의 조직을 선택하여 프로젝트를 생성한 다음 프로젝트가 생성된 후 조직을 추가할 수 있습니다.

  • 실행 환경 (선택 사항) - 실행 환경의 이름을 입력하거나 이 프로젝트를 실행할 기존 실행 환경 목록에서 검색합니다. 자세한 내용은 |atumg|의 :ref:`upgrade_venv`를 참조하십시오.

  • 소스 제어 유형 - 드롭다운 메뉴 목록에서 이 프로젝트와 연결된 SCM 유형을 선택합니다. 후속 섹션의 옵션은 선택한 유형에 따라 제공됩니다. 자세한 내용은 다음 섹션에서 플레이북 수동 관리 또는 :ref:`ug_projects_scm_types`를 참조하십시오.

  • 컨텐츠 서명 유형성 검사 인증 정보 - 이 선택적 필드를 사용하여 콘텐츠 확인을 활성화합니다. 프로젝트 동기화 중에 컨텐츠 서명을 검증하는 데 사용할 GPG 키를 지정합니다. 콘텐츠가 변조된 경우 작업이 실행되지 않습니다. 자세한 내용은 :ref:`ug_content_signing`에서 참조하십시오.

  1. 완료되면 **저장**을 클릭합니다.

16.1.1. 플레이북 수동 관리

  • 프로젝트 기본 경로 아래에 플레이북을 저장할 하나 이상의 디렉터리를 생성합니다(예: /var/lib/awx/projects/).

  • 플레이북 파일을 생성하거나 플레이북 디렉터리에 복사합니다.

  • automation controller 서비스가 실행되는 것과 동일한 UNIX 사용자 및 그룹이 플레이북 디렉터리 및 파일을 소유하고 있는지 확인합니다.

  • 권한이 플레이북 디렉터리 및 파일에 적합한지 확인합니다.

수동 프로젝트를 추가하는 경우 프로젝트 루트 폴더 내부의 각 프로젝트 경로는 하나의 프로젝트에만 할당할 수 있습니다. 다음 메시지가 표시되면 기존 프로젝트에 프로젝트 경로가 아직 할당되지 않았는지 확인하십시오.

All of the project paths have been assigned to existing projects, or there are no directories found in the base path. You will need to add a project path before creating a new project.

프로젝트 경로를 추가하는 데 문제가 있는 경우 프로젝트 디렉터리 및 파일의 권한 및 SELinux 컨텍스트 설정을 확인하십시오.

경고

Ansible 플레이북 디렉터리를 기본 프로젝트 경로에 추가하지 않은 경우 다음 메시지가 표시됩니다.

Projects - create new warning

적절한 플레이북 디렉터리를 생성하고 SCM에서 플레이북을 체크아웃하거나 플레이북을 적절한 플레이북 디렉터리에 복사하여 이 문제를 해결하십시오.

16.1.2. 소스 제어를 사용하여 플레이북 관리

16.1.2.1. SCM 유형 - Git 및 Subversion

소스 컨트롤을 사용하도록 플레이북을 구성하려면 프로젝트 세부 정보 탭에서 다음을 수행합니다.

  1. SCM 유형 드롭다운 메뉴 목록에서 적절한 옵션(Git 또는 Subversion)을 선택합니다.

Projects - create SCM project

  1. 다음 필드에 적절한 세부 정보를 입력합니다.

  • SCM URL - 툴팁 |tooltip|에서 예제를 참조하십시오.

  • SCM 분기/태그/커밋 - 필요한 경우 체크아웃할 소스 제어(Git 또는 Subversion)의 SCM 분기, 태그, 커밋 해시, 임의의 참조 또는 버전 번호(해당하는 경우)를 입력합니다. 일부 커밋 해시 및 참조는 다음 필드에 사용자 정의 참조 사양을 제공하지 않으면 사용하지 못할 수 없습니다. 비워 두는 경우 기본값은 HEAD인데, 이는 이 프로젝트에 대해 마지막으로 체크아웃된 분기/태그/커밋입니다.

  • SCM 참조 사양 - 이 필드는 Git 소스 제어와 관련된 옵션이며, Git에 익숙하고 편안한 고급 사용자만 원격 리포지터리에서 다운로드할 참조를 지정해야 합니다. 자세한 내용은 :ref:`job branch overriding <ug_job_branching>`를 참조하십시오.

  • 소스 제어 인증 정보 - 인증이 필요한 경우 적절한 소스 제어 인증 정보를 선택합니다.

  1. 필요한 경우 **SCM 업데이트 옵션**에서 시작 동작을 선택합니다(해당하는 경우).

  • 정리 - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.

  • 삭제 - 업데이트를 수행하기 전에 전체 로컬 리포지터리를 삭제합니다. 리포지터리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.

  • 하위 모듈 추적 - 최신 커밋을 추적합니다. 자세한 내용은 툴팁 tooltip 에서 참조하십시오.

  • 시작 시 버전 업데이트 - 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Galaxy 또는 :ref:`Collections <ug_collections>`의 역할 디렉터리를 캐시합니다. |At|는 로컬 버전이 일치하고 역할 및 컬렉션이 마지막 업데이트와 함께 최신 상태인지 확인합니다. 또한 프로젝트에서 동기화할 수 있는 것보다 작업이 더 빨리 생성되는 경우 작업 오버플로를 방지하기 위해 이 옵션을 선택하면 캐시 제한 시간을 구성하여 특정 시간 동안 이전 프로젝트 동기화를 캐시할 수 있습니다.

  • 분기 덮어쓰기 허용 - 이 프로젝트를 사용하는 작업 템플릿에서 프로젝트의 해당 항목 이외에 지정된 SCM 분기 또는 버전을 사용하여 시작할 수 있습니다. 자세한 내용은 :ref:`job branch overriding <ug_job_branching>`를 참조하십시오.

_images/projects-create-scm-project-branch-override-checked.png
  1. **저장**을 클릭하여 프로젝트를 저장합니다.

GitHub 링크를 사용하면 플레이북을 쉽게 사용할 수 있습니다. https://github.com/ansible/tower-example.git에 있는 helloworld.yml 파일을 사용하면 시작하는 데 도움이 됩니다.

이 링크에서는 :ref:`Automation Controller Quick Setup Guide <qs_start>`에 있는 지침에서 수동으로 생성한 것과 매우 유사한 플레이북을 제공합니다. 이 플레이북을 사용함으로써 시스템이 변경되거나 손상되지 않습니다.

16.1.2.2. SCM 유형 - Red Hat Insights

Red Hat Insights를 사용하도록 플레이북을 구성하려면 프로젝트 세부 정보 탭에서 다음을 수행합니다.

  1. SCM 유형 드롭다운 메뉴 목록에서 **Red Hat Insights**를 선택합니다.

  2. 인증을 위해 Red Hat Insights에 인증 정보가 있어야 합니다. 인증 정보 필드에서 Insights에 사용할 적절한 인증 정보를 선택합니다.

  3. 필요한 경우 **SCM 업데이트 옵션**에서 시작 동작을 선택합니다(해당하는 경우).

  • 정리 - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.

  • 삭제 - 업데이트를 수행하기 전에 전체 로컬 리포지터리를 삭제합니다. 리포지터리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.

  • 시작 시 버전 업데이트 - 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Galaxy 또는 :ref:`Collections <ug_collections>`의 역할 디렉터리를 캐시합니다. |At|는 로컬 버전이 일치하고 역할 및 컬렉션이 마지막 업데이트와 함께 최신 상태인지 확인합니다. 또한 프로젝트에서 동기화할 수 있는 것보다 작업이 더 빨리 생성되는 경우 작업 오버플로를 방지하기 위해 이 옵션을 선택하면 캐시 제한 시간을 구성하여 특정 시간 동안 이전 프로젝트 동기화를 캐시할 수 있습니다.

_images/projects-create-scm-insights.png
  1. **저장**을 클릭하여 프로젝트를 저장합니다.

16.1.2.3. SCM 유형 - 원격 아카이브

원격 아카이브를 사용하는 플레이북에서는 버전이 지정된 아티팩트 또는 릴리스를 생성하여 해당 프로젝트에 대한 모든 요구 사항을 단일 아카이브에 포함하는 빌드 프로세스를 기반으로 프로젝트를 제공할 수 있습니다.

소스 아카이브를 사용하도록 플레이북을 구성하려면 프로젝트 세부 정보 탭에서 다음을 수행합니다.

  1. SCM 유형 드롭다운 메뉴 목록에서 **원격 아카이브**를 선택합니다.

  2. 다음 필드에 적절한 세부 정보를 입력합니다.

  • SCM URL - 원격 아카이브(GitHub 릴리스 또는 *Artifactory*에 저장된 빌드 아티팩트 등)에 대한 URL이 필요하고, 사용할 프로젝트 경로에 압축을 풉니다.

  • SCM 인증 정보 - 인증이 필요한 경우 적절한 SCM 인증 정보를 선택합니다.

  1. 필요한 경우 **SCM 업데이트 옵션**에서 시작 동작을 선택합니다(해당하는 경우).

  • 정리 - 업데이트를 수행하기 전에 로컬 수정 사항을 제거합니다.

  • 삭제 - 업데이트를 수행하기 전에 전체 로컬 리포지터리를 삭제합니다. 리포지터리 크기에 따라 업데이트를 완료하는 데 필요한 시간이 크게 증가할 수 있습니다.

  • 시작 시 버전 업데이트 - 이 옵션은 프로젝트의 버전을 원격 소스 제어의 현재 버전으로 업데이트하고 Galaxy 또는 :ref:`Collections <ug_collections>`의 역할 디렉터리를 캐시하므로 사용하지 않는 것이 좋습니다.

  • 분기 덮어쓰기 허용 - 이 옵션을 사용하면 이 프로젝트를 사용하는 작업 템플릿에서 프로젝트의 해당 항목 이외에 지정된 SCM 분기 또는 버전을 사용하여 시작할 수 있으므로 사용하지 않는 것이 좋습니다.

_images/projects-create-scm-rm-archive.png

참고

이 SCM 유형은 변경되지 않는 아티팩트 개념을 지원하기 위한 것이므로 Galaxy 통합을 비활성화하는 것이 좋습니다(역할의 경우 최소 수준).

  1. **저장**을 클릭하여 프로젝트를 저장합니다.

16.2. 소스 제어를 통한 프로젝트 업데이트

  1. 프로젝트를 선택하고 refresh 버튼을 클릭하여 기존 SCM 기반 프로젝트를 업데이트합니다.

참고

소스 제어를 사용하기 위해 프로젝트 설정을 추가하는 즉시 《동기화》가 시작되어 구성된 소스 제어에서 프로젝트 세부 정보를 가져옵니다.

projects - list all

  1. 업데이트 프로세스에 대한 자세한 내용을 보려면 상태 열에서 프로젝트의 상태를 클릭합니다.

_images/projects-list-status-more.png

Project - update status

16.3. 권한 작업

이 프로젝트(역할 기반 액세스 제어)에 할당되어 프로젝트, 인벤토리, 작업 템플릿 및 기타 automation controller 요소를 읽고, 수정하고, 관리하는 기능을 제공하는 권한 세트가 바로 권한입니다.

세부 정보 탭 옆에 있는 액세스 탭을 통해 프로젝트 권한에 액세스할 수 있습니다. 이 화면에는 현재 이 프로젝트에 대한 권한이 있는 사용자 목록이 표시됩니다. 목록은 사용자 이름, 또는 **이름**으로 정렬할 수 있습니다.

Projects - permissions list for example project

16.3.1. 권한 추가

  1. 액세스 탭에서 추가 버튼을 클릭합니다.

  2. 추가할 사용자 또는 팀을 선택하고 **다음**을 클릭합니다.

  3. 이름 옆에 있는 체크박스를 클릭하여 목록에서 하나 이상의 사용자 또는 팀을 선택하여 멤버로 추가하고 **다음**을 클릭합니다.

_images/organizations-add-users-for-example-organization.png

이 예에서는 두 명의 사용자를 추가하도록 선택했습니다.

  1. 선택한 사용자 또는 팀에 부여할 역할을 선택합니다. 전체 역할 목록을 보려면 아래로 스크롤하십시오. 리소스에 따라 다양한 옵션을 사용할 수 있습니다.

_images/organizations-add-users-roles.png
  1. 저장 버튼을 클릭하여 선택한 사용자 또는 팀에 역할을 적용하고 멤버로 추가합니다.

사용자/팀 추가 창이 닫히고 각 사용자 및 팀에 할당된 역할이 업데이트되어 표시됩니다.

Permissions tab with Role Assignments

특정 사용자의 역할을 제거하려면 리소스 옆에 있는 연결 해제(x) 버튼을 클릭합니다.

_images/permissions-disassociate.png

그러면 연결을 해제할지 묻는 확인 대화 상자가 열립니다.

_images/permissions-disassociate-confirm.png

16.4. 알림 작업

알림 탭을 클릭하면 설정한 알림 통합을 검토할 수 있습니다.

_images/projects-notifications-example-list.png

특정 프로젝트에 사용할 알림을 활성화하거나 비활성화하려면 토글을 사용합니다. 자세한 내용은 :ref:`ug_notifications_on_off`를 참조하십시오.

알림이 설정되지 않은 경우 왼쪽 탐색 모음의 알림 링크에서 알림을 구성하여 새 알림을 생성할 수 있습니다.

_images/project-notifications-empty.png

다양한 알림 유형 구성에 대한 자세한 내용은 :ref:`ug_notifications_types`을 참조하십시오.

16.5. 작업 템플릿 작업

**작업 템플릿**을 클릭하면 이 프로젝트와 연결된 작업 템플릿 또는 워크플로우 템플릿을 추가하고 검토할 수 있습니다.

_images/projects-templates-example-list.png

해당 템플릿을 사용하여 실행된 최근 작업을 클릭하여 세부 정보 및 기타 유용한 정보를 확인합니다. 이 목록을 다양한 기준으로 정렬하고 검색하여 관심 있는 템플릿을 필터링할 수 있습니다.

_images/projects-templates-search-dropdown.png

이 보기에서 템플릿 구성을 시작(launch), 편집(edit), 복사(copy) 할 수도 있습니다.

16.6. 스케줄 작업

**스케줄**을 클릭하면 이 프로젝트에 설정된 모든 스케줄을 검토할 수 있습니다.

_images/generic-schedules-list-configured.png

16.6.1. 프로젝트 스케줄

프로젝트 스케줄링하려면 스케줄 탭을 클릭합니다.

  • 스케줄이 이미 설정되어 있는 경우 스케줄 기본 설정을 검토, 편집 또는 활성화/비활성화합니다.

  • 스케줄이 설정되지 않은 경우 :ref:`ug_scheduling`에서 자세한 내용을 참조하십시오.

16.7. Ansible Galaxy 지원

프로젝트 업데이트가 종료되면 |at|는 roles 디렉터리의 ``<project-top-level-directory>/roles/requirements.yml``에 있는 ``requirements.yml``이라는 파일을 검색합니다. 이 파일이 있으면 다음 명령이 자동으로 실행됩니다.

ansible-galaxy role install -r roles/requirements.yml -p <project-specific cache location>/requirements_roles -vvv

이 파일을 사용하면 자체 프로젝트와 함께 체크아웃할 수 있는 기타 리포지터리 내의 역할 또는 Galaxy 역할을 참조할 수 있습니다. 이 Ansible Galaxy 지원을 추가하면 해당 결과를 얻기 위해 git 하위 모듈을 생성할 필요가 없습니다. (역할/컬렉션과 함께) SCM 프로젝트를 개인 작업 환경으로 가져와 실행하는 경우 /tmp 내에 해당 프로젝트 전용 <private job directory>가 기본적으로 생성됩니다. 그러나 설정 창의 작업 설정 탭에서 환경에 따라 다른 **작업 실행 경로**를 지정할 수 있습니다.

_images/configure-tower-jobs-execution-path.png

캐시 디렉터리는 글로벌 프로젝트 폴더 내부의 하위 디렉터리입니다. 해당 콘텐츠는 캐시 위치에서 <job private directory>/requirements_roles 위치로 복사할 수 있습니다.

기본적으로 |at|에는 SCM 프로젝트의 roles/requirements.yml 파일에서 역할을 동적으로 다운로드할 수 있는 시스템 전체 설정이 있습니다. 설정 메뉴의 작업 설정 화면에서 역할 다운로드 활성화 토글 버튼을 **끄기**로 전환하여 이 설정을 끌 수 있습니다.

_images/configure-tower-jobs-download-roles.png

프로젝트 동기화가 실행될 때마다 |at|에서 프로젝트 소스와 Galaxy 및/또는 컬렉션의 역할이 프로젝트에서 오래되었는지 확인합니다. 프로젝트를 업데이트하면 업데이트 내에서 해당 역할이 다운로드됩니다.

작업에서 업스트림 역할에 대한 변경 사항을 선택해야 하는 경우 프로젝트를 업데이트하면 이러한 상황이 발생합니다. 역할 변경은 새 커밋이 provision-role 소스 제어에 푸시되었음을 의미합니다. 이러한 변경 사항을 작업에 적용하기 위해 playbooks 리포지터리에 새 커밋을 푸시할 필요는 없지만, 프로젝트를 **업데이트**하여 역할을 로컬 캐시에 다운로드해야 합니다. 예를 들어, 소스 제어에 두 개의 Git 리포지터리가 있다고 가정합니다. 첫 번째는 playbooks*이고 |at|의 프로젝트는 이 URL을 가리킵니다. 두 번째는 *provision-role*이며 *playbooks Git 리포지터리 내부의 roles/requirements.yml 파일에서 참조합니다.

간단히 말하면 모든 작업이 실행되기 전에 작업에서 최신 역할을 다운로드합니다. 역할 및 컬렉션은 성능상의 이유로 로컬로 캐시되고, 프로젝트 SCM 업데이트 옵션에서 **시작 시 버전 업데이트**를 선택하여 각 작업을 실행하기 전에 업스트림 역할을 다시 다운로드해야 합니다.

update-on-launch

업데이트는 프로세스에서 동기화보다 훨씬 일찍 수행되므로 오류 및 세부 정보가 더 빠르고 더 논리적인 위치에 표시됩니다.

requirements.yml 파일 구문에 대한 자세한 내용 및 예제는 Ansible 문서의 `role requirements section`_을 참조하십시오.

특별히 노출해야 하는 디렉터리가 있는 경우 **격리된 작업에 노출할 경로**에 있는 설정 화면의 작업 섹션에 지정하거나 설정 파일에서 다음 항목을 업데이트하여 해당 디렉터리를 지정할 수 있습니다.

AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']

참고

플레이북에서 경로에 정의된 키 또는 설정을 사용해야 하는 경우 AWX_ISOLATION_SHOW_PATHS``에 ``/var/lib/awx/.ssh 파일을 추가하는 것이 좋습니다.

설정 파일을 변경한 경우 변경 사항을 저장하고 automation-controller-service restart 명령을 사용하여 서비스를 다시 시작하십시오.

사용자 인터페이스의 작업 설정 창에서 이러한 설정을 구성할 수 있습니다.

_images/configure-tower-jobs-path-to-expose.png

참고

기본 Galaxy 서버 사용자 이름기본 Galaxy 서버 암호 필드는 automation controller 3.8에서 더 이상 구성할 수 없습니다. 대신 Galaxy 또는 |ah|에 액세스하는 데 토큰을 사용하는 것이 좋습니다.

16.8. 컬렉션 지원

Automation controller 작업 실행에서 프로젝트별 `Ansible collections <https://docs.ansible.com/ansible/latest/user_guide/collections_using.html>`_을/를 지원합니다. ``collections/requirements.yml``의 SCM에 컬렉션 요구 사항 파일을 지정하면 |at|는 작업을 실행하기 전에 암시적 프로젝트 동기화에서 해당 파일에 컬렉션을 설치합니다.

기본적으로 |at|에는 SCM 프로젝트의 collections/requirements.yml 파일에서 컬렉션을 동적으로 다운로드할 수 있는 시스템 전체 설정이 있습니다. 설정 메뉴의 작업 설정 탭에서 컬렉션 다운로드 활성화 토글 버튼을 **끄기**로 전환하여 이 설정을 끌 수 있습니다.

_images/configure-tower-jobs-download-collections.png

역할 및 컬렉션은 성능상의 이유로 로컬로 캐시되고, 프로젝트 SCM 업데이트 옵션에서 다음과 같이 **시작 시 버전 업데이트**를 선택해야 합니다.

update-on-launch

16.8.1. Hub를 통해 컬렉션 사용

|at|에서 컬렉션 콘텐츠의 기본 소스로 |ah|를 사용하려면 |at|에서 지정할 수 있도록 |ah| UI에서 API 토큰을 생성해야 합니다. 비공개 Automation Hub 또는 공개 Automation Hub 컬렉션에 연결할 수도 있으며, 유일한 차이점은 지정하는 URL입니다.

  1. https://cloud.redhat.com/ansible/automation-hub/token으로 이동하여 **토큰 로드**를 클릭합니다.

  2. 복사 아이콘을 클릭하여 API 토큰을 클립보드에 복사합니다.

_images/projects-ah-loaded-token-shown.png
  1. 공개 |ah|를 사용하려면 복사한 토큰을 사용하고 토큰 페이지의 **서버 URL** 및 **SSO URL** 필드에 표시된 URL을 가리키는 |ah| 인증 정보를 생성합니다.

  • Galaxy Server URL = https://cloud.redhat.com/api/automation-hub/

  • AUTH SEVER URL = https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token

  1. 비공개 |ah|를 사용하려면 다음과 같이 로컬 |ah|의 리포지터리 관리 대시보드에서 검색되는 토큰을 사용하고 게시된 리포지터리 URL을 가리키는 |ah| 인증 정보를 생성합니다.

_images/projects-ah-repo-mgmt-get-token.png _images/projects-ah-repo-mgmt-repos-published.png

다양한 네임스페이스/컬렉션을 사용하여 다양한 리포지터리를 생성할 수 있습니다. 그러나 |ah|의 리포지터리별로 서로 다른 |ah| 인증 정보를 생성해야 합니다. Automation Hub UI에서 https://$<hub_url>/api/galaxy/content/<repo you want to pull from> 형식으로 Ansible CLI URL**을 *인증 정보 생성* 양식의 **Galaxy 서버 URL 필드에 복사합니다.

_images/projects-create-ah-credential.png

Automation Hub UI 관련 지침은 `Managing Red Hat Certified and Ansible Galaxy Collections in Ansible Hub <https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/1.2/html/managing_red_hat_certified_and_ansible_galaxy_collections_in_automation_hub/index>`_를 참조하십시오.

  1. |ah|에서 콘텐츠를 동기화할 수 있는 조직으로 이동하여 새 |ah| 인증 정보를 조직에 추가합니다. 이 단계를 통해 각 조직을 콘텐츠를 사용하기 원하는 Automation Hub 인증 정보(즉, 리포지터리)와 연결할 수 있습니다.

_images/projects-organizations-add-ah-credential.png

참고

두 개의 리포지터리가 있다고 가정합니다.

  • Prod: Namespace 1Namespace 2, 각각 컬렉션이 AB``이므로 ``namespace1.collectionA:v2.0.0``namespace2.collectionB:v2.0.0``입니다.

  • 단계: 컬렉션 ``A``만 있는 ``Namespace 1``으로, |ah|의 ``namespace1.collectionA:v1.5.0``에 Prod*단계*에 대한 리포지터리 URL이 있습니다.

각각에 대해 Automation Hub 인증 정보를 생성할 수 있습니다. 그런 다음 다양한 조직에 서로 다른 수준의 액세스 권한을 할당할 수 있습니다. 예를 들어, 개발자 조직은 두 리포지터리에 모두 액세스할 수 있는 반면 운영 조직은 |ah|**Prod** 리포지터리에만 액세스하도록 생성할 수 있습니다.

Automation Hub UI 관련 지침은 `Managing User Access in Ansible Hub <https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/1.0/html/managing_user_access_in_automation_hub/index>`_를 참조하십시오.

  1. |ah|에 자체 서명된 인증서가 있는 경우 토글을 클릭하여 Ansible Galaxy SSL 인증서 확인 무시 설정을 활성화합니다. 서명된 인증서를 사용하는 **공용 자동화 허브**의 경우 토글을 클릭하여 대신 비활성화합니다. 이는 글로벌 설정입니다.

_images/settings-jobs-ignore-galaxy-certs.png
  1. 소스 리포지터리에서 collections/requirements.yml 파일에 있는 요구 사항 파일의 필수 컬렉션을 지정하는 프로젝트를 생성합니다. Ansible 설명서에 설명된 구문 ( https://docs.ansible.com/ansible/latest/user_guide/collections_using html#install-multiple-collections-with-a-requirements-file)을 참조하십시오.

_images/projects-add-ah-source-repo.png
  1. 프로젝트 목록 뷰에서 |update|을 클릭하여 이 프로젝트에 대한 업데이트를 실행합니다. |At|는 collections/requirements.yml 파일에서 Galaxy 컬렉션을 가져와서 변경된 것으로 보고합니다. 그러면 이 프로젝트를 사용하는 모든 작업 템플릿에 컬렉션이 설치됩니다.

참고

Galaxy 또는 Collections의 업데이트가 필요한 경우 필수 역할을 다운로드하는 동기화가 수행되며, /tmp 파일의 더 많은 공간이 사용됩니다. 큰 프로젝트(약 10GB)가 있는 경우 ``/tmp``의 디스크 공간이 문제가 될 수 있습니다.

컬렉션에 대한 자세한 내용은 Using Collections <https://docs.ansible.com/ansible/latest/user_guide/collections_using.html>`_을 참조하십시오. Red Hat이 자체적으로 |at| 설치를 직접 자동화하는 데 사용할 수 있는 이러한 공식 컬렉션 중 하나를 게시하는 방법에 대한 자세한 내용은 `AWX Ansible Collection 문서를 참조하십시오. 이 페이지는 Red Hat Ansible Automation Platform 서브스크립션의 일부로 Red Hat 고객 인증 정보를 사용하여 액세스할 수 있습니다.