Ansible을 사용하도록 Satellite 구성
반복적인 작업 자동화에 도움이 되도록 Satellite에서 Ansible 구성
초록
1장. Satellite에서 Ansible 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드를 사용하여 Ansible을 사용하도록 Satellite를 구성한 다음 원격 실행을 위해 Ansible을 사용하는 방법에 대한 정보입니다.
1.1. Ansible 역할을 실행하도록 배포 구성 링크 복사링크가 클립보드에 복사되었습니다!
Satellite에서는 일상적인 작업 자동화에 도움이 되도록 Ansible 역할을 가져올 수 있습니다. Ansible은 기본적으로 Satellite에서만 활성화됩니다.
Ansible 역할을 실행하도록 Satellite 배포를 구성하려면 다음 절차를 완료합니다.
절차
-
역할을 사용하려는 위치에 있는 Satellite의
/etc/ansible/roles디렉터리 및 모든 Capsule에 역할을 추가합니다. 사용자 지정 또는 타사 Ansible 역할을 사용하려면 Satellite와 Capsule 간에 역할을 동기화하도록 외부 버전 제어 시스템을 구성해야 합니다. 호스트에서 Ansible 역할을 실행하는 데 사용할 모든 Capsule에서 Ansible 플러그인을 활성화합니다.
satellite-installer --scenario capsule \ --enable-foreman-proxy-plugin-ansible
# satellite-installer --scenario capsule \ --enable-foreman-proxy-plugin-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow - SSH 키를 배포하여 SSH를 사용하여 Capsule이 호스트에 연결할 수 있도록 합니다. 자세한 내용은 호스트 관리 가이드에서 원격 실행을 위한 SSH 키 배포를 참조하십시오. Satellite는 원격 실행 작업을 실행하는 방식과 동일하게 Ansible 역할을 실행합니다.
- Ansible 역할을 Satellite로 가져옵니다.
- Ansible 역할을 사용하여 Satellite 호스트에서 중요한 작업을 자동화하여 Ansible 을 사용하도록 Satellite 구성으로 이동합니다.
1.2. Ansible 역할 및 변수 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Satellite의 /etc/ansible/roles 디렉터리 또는 Ansible이 활성화된 Capsule에서 Ansible 역할 및 변수를 가져올 수 있습니다. 가져오는 역할과 변수가 역할을 사용하려는 모든 Capsule의 /etc/ansible/roles 디렉터리에 있는지 확인합니다. 일부 역할이 표시되지 않는 경우 일부 역할을 가져오는 데 시간이 더 오래 걸릴 수 있습니다. .Procedure
- Satellite 웹 UI에서 Configure > Roles 로 이동하여 가져올 역할 및 변수가 포함된 Capsule을 클릭합니다.
- Submit 을 클릭합니다.
1.3. Satellite에서 Ansible 변수 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
Satellite에서 Ansible 역할을 실행하는 경우 Satellite를 사용하여 해당 역할의 Ansible 변수를 재정의할 수 있습니다.
변수 덮어쓰기의 우선순위
Ansible 역할을 사용하여 효과적인 사용자가 아닌 사용자로 작업을 실행하는 경우 Ansible 변수를 재정의하기 위한 엄격한 우선 순위가 있습니다. 재정의한 변수가 올바른 우선 순위를 따르도록 하려면 변수 우선 순위: Ansible 사용자 가이드에서 변수를 배치해야 하는 위치를 참조하십시오.
사전 요구 사항
Satellite에 Ansible 변수가 있어야 합니다.
다음 절차에서는 호스트 및 호스트 그룹을 참조합니다. 호스트 및 호스트 그룹에 대한 자세한 내용은 호스트 관리 가이드를 참조하십시오.
절차
- Satellite 웹 UI에서 Configure > Variables 로 이동합니다.
- Satellite를 사용하여 재정의하고 관리할 Ansible 변수를 선택합니다.
- 기본 ECDHE 영역으로 이동하여 Override 확인란을 선택합니다.
- Parameter Type 에서 유효성 검사를 위한 값 유형을 선택합니다. 예를 들어 string 또는 boolean 변수가 있습니다.
- Default Value 필드에 변수에 일치하는 항목이 없는 경우 사용할 기본값을 입력합니다.
- 선택 사항: Ansible 변수를 일반 텍스트에 표시하지 않으려면 Hidden Values 확인란을 선택하여 변수의 내용을 Satellite 웹 UI에 별표로 표시합니다.
- 재정의 설정을 저장하려면 Submit 을 클릭합니다.
Ansible 변수를 사용하려면 변수를 호스트 또는 호스트 그룹에 매개 변수로 추가하거나 변수를 글로벌 매개 변수로 추가합니다.
호스트 그룹의 경우:
- Satellite 웹 UI에서 Configure > Host Groups 로 이동하여 사용할 호스트 그룹을 선택합니다.
- Parameters 탭을 클릭하고 Host Group Parameters 영역에서 매개 변수 추가를 클릭합니다.
- 이름 필드에 Ansible 변수 이름을 추가합니다.
- 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
- 값 필드에 변수 값을 입력합니다.
호스트의 경우:
- Satellite 웹 UI에서 호스트 > 모든 호스트 및 사용하려는 호스트에서 편집 버튼을 클릭합니다.
- Parameters 탭을 클릭하고 Host Parameters 영역에서 Add Parameter 를 클릭합니다.
- 이름 필드에 Ansible 변수 이름을 추가합니다.
- 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
- 값 필드에 변수 값을 입력합니다.
전역 매개 변수로 추가하려면 다음을 수행합니다.
- Satellite 웹 UI에서 Configure > Global Parameters 로 이동하여 Create Parameter 를 클릭합니다.
- 이름 필드에 Ansible 변수 이름을 추가합니다.
- 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
- 값 필드에 변수 값을 입력합니다.
- 선택 사항: Ansible 변수를 일반 텍스트에 표시하지 않으려면 Hidden Values 확인란을 선택하여 변수의 내용을 Satellite 웹 UI에 별표로 표시합니다.
1.4. Red Hat Enterprise Linux System Roles 추가 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Enterprise Linux System Roles는 Red Hat Enterprise Linux 서버를 원격으로 관리하는 구성 인터페이스입니다. Red Hat Enterprise Linux 시스템 역할을 사용하여 Satellite에 Ansible 역할을 추가할 수 있습니다. Satellite에서 Ansible 역할을 사용하면 구성을 더 빠르고 쉽게 만들 수 있습니다.
일부 Red Hat Enterprise Linux 시스템 역할에 대한 지원 수준은 기술 프리뷰일 수 있습니다. 지원 수준 및 Red Hat Enterprise Linux 시스템 역할에 대한 일반적인 정보는 Red Hat Enterprise Linux 시스템 역할을 참조하십시오.
Extras 채널에 가입하기 전에 Red Hat Enterprise Linux Extras 제품 라이프 사이클 문서를 참조하십시오.
절차
rhel-7-server-extras-rpms리포지토리가 활성화되어 있는지 확인합니다.subscription-manager repos --enable=rhel-7-server-extras-rpms
# subscription-manager repos --enable=rhel-7-server-extras-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow rhel-system-roles패키지를 설치합니다.satellite-maintain packages install rhel-system-roles
# satellite-maintain packages install rhel-system-rolesCopy to Clipboard Copied! Toggle word wrap Toggle overflow rhel-system-roles패키지는/usr/share/ansible/roles/. 가져오기 전에 파일을 보고 수정할 수 있습니다.- Satellite 웹 UI에서 Configure > Roles 로 이동하여 가져오려는 역할이 포함된 Capsule을 클릭합니다.
- Ansible 역할 목록에서 가져올 역할의 확인란을 선택한 다음 업데이트를 클릭합니다.
이제 호스트 또는 호스트 그룹에 Ansible 역할을 할당할 수 있습니다. 자세한 내용은 Ansible을 사용하도록 Satellite 구성에서 기존 호스트에 Ansible 역할 할당을 참조하십시오.
Ansible 작업 템플릿에 추가하여 이러한 역할에 포함된 모듈을 Ansible 플레이북에 추가할 수도 있습니다. 작업 템플릿에 hosts:all 행을 포함해야 합니다. 자세한 내용은 RHEL (Red Hat Enterprise Linux) 시스템 역할 을 참조하십시오.
2장. Ansible 역할을 사용하여 Satellite 호스트에서 반복 작업 자동화 링크 복사링크가 클립보드에 복사되었습니다!
2.1. 기존 호스트에 Ansible 역할 할당 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Enterprise Linux 버전 8, 7, 6.9 이상을 원격 관리하는 데 Ansible 역할을 사용할 수 있습니다.
사전 요구 사항
- Ansible 역할을 구성하고 가져왔는지 확인합니다.
절차
- Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
- Ansible 역할을 할당하려는 호스트에서 편집 을 클릭합니다.
- Ansible Roles 탭을 선택하고 모든 항목 목록에서 추가할 역할을 검색합니다.
- 추가할 역할을 선택하고 화살표 아이콘을 클릭하여 역할을 Selected items (선택한 항목) 목록으로 이동합니다.
- Submit 을 클릭합니다.
호스트에 Ansible 역할을 할당한 후 Ansible을 사용하여 원격 실행을 수행할 수 있습니다. 자세한 내용은 원격 실행을 위한 SSH 키 배포를 참조하십시오.
매개변수 덮어쓰기
Parameters 탭에서 매개 변수 추가 를 클릭하여 런타임에 작업 템플릿에 전달할 매개변수 변수를 추가합니다. 여기에는 호스트와 연결할 모든 Ansible 플레이북 매개변수 및 호스트 매개변수가 포함됩니다. Ansible 작업 템플릿으로 매개변수 변수를 사용하려면 호스트 매개 변수를 추가해야 합니다.
2.2. 호스트에서 Ansible 역할 실행 링크 복사링크가 클립보드에 복사되었습니다!
Satellite 웹 UI를 통해 호스트에서 Ansible 역할을 실행할 수 있습니다.
사전 요구 사항
- Ansible 역할을 실행하도록 배포를 구성해야 합니다. 자세한 내용은 Ansible을 사용하도록 Satellite 구성에서 Ansible 역할을 실행하도록 배포 구성을 참조하십시오.
- 호스트에 Ansible 역할을 할당해야 합니다.
절차
- Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
- 실행할 Ansible 역할이 포함된 호스트의 확인란을 선택합니다.
- Select Action (작업 선택) 목록에서 Play Ansible roles 를 선택합니다.
Ansible 역할 실행 페이지에서 Ansible 작업의 상태를 볼 수 있습니다. 작업을 다시 실행하려면 Rerun 버튼을 클릭합니다.
2.3. 호스트 그룹에 Ansible 역할 할당 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Enterprise Linux 버전 8, 7, 6.9 이상을 원격 관리하는 데 Ansible 역할을 사용할 수 있습니다.
사전 요구 사항
- Ansible 역할을 실행하도록 배포를 구성해야 합니다. 자세한 내용은 Ansible을 사용하도록 Satellite 구성에서 Ansible 역할을 실행하도록 배포 구성을 참조하십시오.
절차
- Satellite 웹 UI에서 Configure > Host Groups 로 이동합니다.
- 호스트 그룹 목록에서 Ansible 역할을 추가할 호스트 그룹 이름을 클릭합니다.
- Ansible Roles 탭을 선택하고 모든 항목 목록에서 추가할 역할을 검색합니다.
- 추가할 역할을 선택하고 화살표 아이콘을 클릭하여 역할을 Selected items (선택한 항목) 목록으로 이동합니다.
- Submit 을 클릭합니다.
2.4. 호스트 그룹에서 Ansible 역할 실행 링크 복사링크가 클립보드에 복사되었습니다!
Satellite 웹 UI를 통해 호스트 그룹에서 Ansible 역할을 실행할 수 있습니다.
사전 요구 사항
- Ansible 역할을 실행하도록 배포를 구성해야 합니다. 자세한 내용은 Ansible을 사용하도록 Satellite 구성에서 Ansible 역할을 실행하도록 배포 구성을 참조하십시오.
- Ansible 역할을 호스트 그룹에 할당해야 합니다.
- 호스트 그룹에 호스트가 하나 이상 있어야 합니다.
절차
- Satellite 웹 UI에서 Configure > Host Groups 로 이동합니다.
- 호스트 그룹의 Actions (작업) 열의 목록에서 Run all Ansible roles 를 선택합니다.
Ansible 역할 실행 페이지에서 Ansible 작업의 상태를 볼 수 있습니다. 작업을 다시 실행하려면 Rerun 버튼을 클릭합니다.
2.5. 확인 모드에서 Ansible 역할 실행 링크 복사링크가 클립보드에 복사되었습니다!
Satellite 웹 UI를 통해 확인 모드에서 Ansible 역할을 실행할 수 있습니다.
사전 요구 사항
- Ansible 역할을 실행하도록 배포를 구성해야 합니다. 자세한 내용은 Ansible을 사용하도록 Satellite 구성에서 Ansible 역할을 실행하도록 배포 구성을 참조하십시오.
- Ansible 역할을 호스트 그룹에 할당해야 합니다.
- 호스트 그룹에 호스트가 하나 이상 있어야 합니다.
절차
- Satellite 웹 UI에서 호스트 > ; 모든 호스트로 이동합니다.
- 확인 모드를 활성화할 호스트에 대해 Edit (편집)를 클릭합니다.
-
Parameters 탭에서 호스트에
부울유형이true로 설정된ansible_roles_check_mode라는 매개 변수가 있는지 확인합니다. - Submit 을 클릭합니다.
3장. 원격 작업 구성 및 설정 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션을 사용하여 원격 호스트에서 작업을 실행하도록 Satellite를 구성하는 방법을 가이드로 사용합니다.
원격 호스트에 적용하려는 모든 명령을 작업 템플릿으로 정의해야 합니다. 작업 템플릿을 정의한 후에는 여러 번 실행할 수 있습니다.
3.1. 호스트에서 작업 실행 정보 링크 복사링크가 클립보드에 복사되었습니다!
쉘 스크립트 또는 Ansible 작업 및 플레이북을 사용하여 Capsule에서 호스트에서 작업을 원격으로 실행할 수 있습니다. 이를 원격 실행이라고 합니다.
생성하는 사용자 지정 Ansible 역할 또는 다운로드한 역할의 경우 Capsule 기본 운영 체제에 역할이 포함된 패키지를 설치해야 합니다. Ansible 역할을 사용하려면 먼저 설치된 Capsule에서 역할을 Satellite로 가져와야 합니다.
통신은 Capsule Server를 통해 이루어집니다. 즉 Satellite Server에서 대상 호스트에 대한 직접 액세스가 필요하지 않으며 여러 호스트를 관리하기 위해 확장할 수 있습니다. 원격 실행에서는 대상 호스트에서 활성화되어 실행해야 하는 SSH 서비스를 사용합니다. 원격 실행 Capsule이 대상 호스트의 포트 22에 액세스할 수 있는지 확인합니다.
Satellite는 ERB 구문 작업 템플릿을 사용합니다. 자세한 내용은 호스트 관리 가이드 의 템플릿 위임 참조 를 참조하십시오.
쉘 스크립트 및 Ansible에 대한 여러 작업 템플릿은 기본적으로 포함되어 있습니다. 자세한 내용은 작업 템플릿 설정을 참조하십시오.
모든 Capsule Server 기본 운영 체제는 Satellite Server의 내부 Capsule 클라이언트이므로 이 섹션은 Capsule을 포함하여 Satellite Server에 연결된 모든 유형의 호스트에 적용됩니다.
한 번에 여러 호스트에서 작업을 실행할 수 있으며 명령의 변수를 사용하여 실행하는 작업을 보다 세밀하게 제어할 수 있습니다. 호스트 팩트 및 매개변수를 사용하여 변수 값을 채울 수 있습니다.
또한 명령을 실행할 때 템플릿의 사용자 지정 값을 지정할 수 있습니다.
자세한 내용은 원격 작업 실행을 참조하십시오.
3.2. 원격 실행 워크플로 링크 복사링크가 클립보드에 복사되었습니다!
호스트에서 원격 작업을 실행할 때 모든 호스트에 대해 Satellite는 다음 작업을 수행하여 사용할 원격 실행 Capsule을 찾습니다.
Satellite는 Ansible 기능이 활성화된 Capsule만 검색합니다.
- Satellite는 원격 실행 확인란이 선택된 호스트의 인터페이스를 찾습니다.
- Satellite는 이러한 인터페이스의 서브넷을 찾습니다.
- Satellite는 이러한 서브넷에 할당된 원격 실행 Capsule을 찾습니다.
- 이 Capsule 세트에서 Satellite는 실행 중인 작업의 수가 가장 적은 Capsule을 선택합니다. 이렇게 하면 Satellite가 작업 부하가 원격 실행 Capsule 간에 균형을 유지합니다.
이 단계에서 Satellite에서 원격 실행 Capsule을 찾지 못하고 Any Capsule 설정으로 폴백 이 활성화된 경우 Satellite는 다른 Capsule 세트를 추가하여 원격 실행 Capsule을 선택합니다. Satellite는 호스트에 할당된 다음 Capsule 유형에서 가장 가볍게 로드된 Capsule을 선택합니다.
- 호스트의 서브넷에 할당된 DHCP, DNS 및 TFTP Capsule
- 호스트 도메인에 할당된 DNS Capsule
- 호스트 영역에 할당된 realm Capsule
- Puppet Master Capsule
- Puppet CA Capsule
- OpenSCAP Capsule
- 이 단계에서 Satellite에서 원격 실행 Capsule을 찾지 못하고 Enable Global Capsule 설정이 활성화된 경우 Satellite는 호스트 조직 및 위치의 모든 Capsule 세트에서 가장 가볍게 로드된 원격 실행 Capsule을 선택하여 원격 작업을 실행합니다.
3.3. 원격 실행 권한 링크 복사링크가 클립보드에 복사되었습니다!
대상 호스트를 포함하여 인프라 내에서 어떤 작업을 실행할 수 있는 사용자를 제어할 수 있습니다. 원격 실행 기능은 다음 두 가지 기본 제공 역할을 제공합니다.
- 원격 실행 관리자: 이 역할을 사용하면 모든 원격 실행 기능 및 기능에 액세스할 수 있습니다.
- 원격 실행 사용자: 이 역할은 실행 중인 작업만 허용합니다. 작업 템플릿을 수정할 수 있는 권한을 제공하지 않습니다.
원격 실행 사용자 역할을 복제하고 세분화 증가를 위해 해당 필터를 사용자 지정할 수 있습니다. view_job_templates 권한을 사용하여 필터를 조정하는 경우 사용자는 일치하는 작업 템플릿을 기반으로 작업만 보고 트리거할 수 있습니다. view_hosts 및 view_smart_proxies 권한을 사용하여 역할에 표시되는 호스트 또는 Capsule을 제한할 수 있습니다.
execute_template_invocation 권한은 작업이 시작되기 직전에 확인되는 특수 권한입니다. 이 권한은 특정 호스트에서 실행할 수 있는 작업 템플릿을 정의합니다. 이렇게 하면 권한을 지정할 때 더 세분화할 수 있습니다. 역할 및 권한 작업에 대한 자세한 내용은 Red Hat Satellite 관리에서 역할 생성 및 관리를 참조하십시오.
다음 예제에서는 execute_template_invocation 권한에 대한 필터를 보여줍니다.
name = Reboot and host.name = staging.example.com name = Reboot and host.name ~ *.staging.example.com name = "Restart service" and host_group.name = webservers
name = Reboot and host.name = staging.example.com
name = Reboot and host.name ~ *.staging.example.com
name = "Restart service" and host_group.name = webservers
이 예제의 첫 번째 줄에서는 사용자가 Reboot 템플릿을 하나의 선택한 호스트에 적용할 수 있습니다. 두 번째 줄은 .staging.example.com 으로 끝나는 이름으로 호스트 풀을 정의합니다. 세 번째 줄은 템플릿을 호스트 그룹과 바인딩합니다.
사용자에게 할당된 권한은 시간에 따라 변경될 수 있습니다. 사용자가 이미 일부 작업을 나중에 실행하도록 예약하고 권한이 변경된 경우 작업이 실행되기 전에 권한이 즉시 확인되므로 실행 오류가 발생할 수 있습니다.
3.4. 작업 템플릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차를 사용하여 작업 템플릿을 생성합니다. 웹 UI 대신 CLI를 사용하려면 CLI 절차 를 참조하십시오.
절차
- 호스트 > 작업 템플릿으로 이동합니다.
- New Job Template 을 클릭합니다.
- 템플릿 탭을 클릭하고 이름 필드에 작업 템플릿의 고유한 이름을 입력합니다.
- 모든 조직 및 위치에 템플릿을 사용할 수 있도록 하려면 기본값 을 선택합니다.
- 템플릿 편집기에서 템플릿을 직접 생성하거나 가져오기 를 클릭하여 텍스트 파일에서 업로드합니다.
- 선택 사항: 감사 주석 필드에서 변경 사항에 대한 정보를 추가합니다.
- Job 탭을 클릭하고 Job category 필드에 고유한 카테고리를 입력하거나 Default Job Template Categories 에 나열된 기본 카테고리에서 선택합니다.
-
선택 사항: 설명 형식 필드에 설명 템플릿을 입력합니다. 예:
Install package %{package_name}. 템플릿에서%{template_name}및%{job_category}를 사용할 수도 있습니다. - Provider Type (프로바이더 유형) 목록에서 쉘 스크립트에 대한 SSH 및 Ansible 작업 또는 플레이북에 대해 Ansible을 선택합니다.
- 선택 사항: Timeout to kill 필드에 시간 초과 값을 입력하여 작업이 완료되지 않으면 종료합니다.
- 선택 사항: 입력 추가 를 클릭하여 입력 매개 변수를 정의합니다. 매개 변수는 작업을 실행할 때 요청되며 템플릿에 정의할 필요가 없습니다. 자세한 내용은 도움말 탭을 참조하십시오.
- 선택 사항: 이 작업의 다른 템플릿을 포함하려면 Foreign 입력 세트를 클릭합니다.
-
선택 사항: 효과적인 사용자 영역에서 명령이 기본
remote_execution_effective_user설정을 사용할 수 없는 경우 사용자를 구성합니다. - 선택 사항: 이 템플릿이 다른 템플릿에 포함된 스니펫인 경우 유형 탭을 클릭하고 Snippet 을 선택합니다.
- 위치 탭을 클릭하고 템플릿을 사용할 위치를 추가합니다.
- Organizations 탭을 클릭하고 템플릿을 사용할 조직을 추가합니다.
- 제출을 클릭하여 변경 사항을 저장합니다.
템플릿 구문에 다른 템플릿을 포함하여 작업 템플릿을 확장하고 사용자 지정할 수 있습니다. 자세한 내용은 호스트 관리 가이드의 부록을 참조하십시오.
CLI 절차
template-definition 파일을 사용하여 작업 템플릿을 생성하려면 다음 명령을 입력합니다.
hammer job-template create \ --file "path_to_template_file" \ --name "template_name" \ --provider-type SSH \ --job-category "category_name"
# hammer job-template create \ --file "path_to_template_file" \ --name "template_name" \ --provider-type SSH \ --job-category "category_name"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. Satellite에서 모든 Capsule 원격 실행 설정에 대한 폴백 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 Capsule 설정으로 폴백을 활성화하여 호스트에 할당된 Capsule 목록에서 원격 실행 Capsule을 검색하도록 Satellite를 구성할 수 있습니다. 이 기능은 서브넷이 구성되지 않은 호스트에서 원격 작업을 실행하거나 원격 실행 기능이 활성화되어 있지 않은 Capsule에 호스트 서브넷이 할당된 경우 유용할 수 있습니다.
Any Capsule 설정으로 폴백 이 활성화되면 Satellite는 다른 Capsule 세트를 추가하여 원격 실행 Capsule을 선택합니다. Satellite는 또한 호스트에 할당된 모든 Capsule 세트에서 가장 가벼하게 로드된 Capsule을 선택합니다(예:).
- 호스트의 서브넷에 할당된 DHCP, DNS 및 TFTP Capsule
- 호스트 도메인에 할당된 DNS Capsule
- 호스트 영역에 할당된 realm Capsule
- Puppet Master Capsule
- Puppet CA Capsule
- OpenSCAP Capsule
절차
- Satellite 웹 UI에서 Administer > Settings 로 이동합니다.
- RemoteExecution 을 클릭합니다.
- 모든 Capsule 설정으로 폴백을 구성합니다.
CLI 절차
Satellite에 hammer settings set 명령을 입력하여 Fallback을 Any Capsule 설정으로 구성합니다. 예를 들어 값을 true 로 설정하려면 다음 명령을 입력합니다.
hammer settings set --name=remote_execution_fallback_proxy --value=true
# hammer settings set --name=remote_execution_fallback_proxy --value=true
3.6. Satellite에서 글로벌 Capsule 원격 실행 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Satellite는 Capsule이 호스트 서브넷에 할당되었는지 여부에 관계없이 호스트 및 위치에서 원격 실행 Capsule을 검색합니다. 검색을 호스트 서브넷에 할당된 Capsule로 제한하려면 Enable Global Capsule 설정을 비활성화할 수 있습니다.
Enable Global Capsule 설정이 활성화된 경우 Satellite는 다른 Capsule 세트를 추가하여 원격 실행 Capsule을 선택합니다. 또한 Satellite는 호스트 조직 및 원격 작업을 실행할 위치의 모든 Capsule 세트에서 가장 가벼워 로드된 원격 실행 Capsule을 선택합니다.
절차
- Satellite 웹 UI에서 Administer > Settings 로 이동합니다.
- RemoteExection 을 클릭합니다.
- Enable Global Capsule 설정을 구성합니다.
CLI 절차
Satellite에서
hammer settings set명령을 입력하여Enable Global Capsule설정을 구성합니다. 예를 들어 값을true로 설정하려면 다음 명령을 입력합니다.hammer settings set --name=remote_execution_global_proxy --value=true
# hammer settings set --name=remote_execution_global_proxy --value=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 호스트에서 원격 작업을 실행하도록 대체 디렉터리를 사용하도록 Satellite 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible은 $HOME/.ansible/tmp 디렉터리에 필요한 자체 파일을 저장합니다. 여기서 $HOME 은 원격 사용자의 홈 디렉터리입니다. 필요한 경우 다른 디렉터리를 설정하는 옵션이 있습니다.
절차
새 디렉토리를 만듭니다(예: new_place ).
mkdir /remote_working_dir
# mkdir /remote_working_dirCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본
var디렉터리에서 SELinux 컨텍스트를 복사합니다.chcon --reference=/var /remote_working_dir
# chcon --reference=/var /remote_working_dirCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 시스템을 구성합니다.
{foreman-installer} --foreman-proxy-plugin-ansible-working-dir _/remote_working_dir_
# {foreman-installer} --foreman-proxy-plugin-ansible-working-dir _/remote_working_dir_
3.8. 원격 실행을 위한 SSH 키 배포 링크 복사링크가 클립보드에 복사되었습니다!
원격 실행 연결을 인증하는 데 SSH 키를 사용하려면 공개 SSH 키를 Capsule에서 관리하려는 연결된 호스트에 배포해야 합니다. SSH 서비스가 활성화되어 호스트에서 실행 중인지 확인합니다. 포트 22에 액세스할 수 있도록 네트워크 또는 호스트 기반 방화벽을 구성합니다.
다음 방법 중 하나를 사용하여 Capsule에서 대상 호스트에 공용 SSH 키를 배포합니다.
- 3.9절. “원격 실행을 위한 SSH 키 배포 수동으로”.
- 3.10절. “Satellite API를 사용하여 원격 실행을 위한 SSH 키 가져오기”.
- 3.11절. “프로비저닝 시 SSH 키를 배포하도록 Kickstart 템플릿 구성”.
- 새 Satellite 호스트의 경우 글로벌 등록 템플릿을 사용하여 등록하는 동안 Satellite 호스트에 SSH 키를 배포할 수 있습니다. 자세한 내용은 글로벌 등록 템플릿을 사용하여 Red Hat Satellite에 호스트 등록을 참조하십시오.
Satellite는 원격 실행 기능에 대한 SSH 키를 기본적으로 Satellite에서 프로비저닝한 호스트에 배포합니다.
호스트가 Amazon Web Services에서 실행중인 경우 암호 인증을 활성화합니다. 자세한 내용은 https://aws.amazon.com/premiumsupport/knowledge-center/new-user-accounts-linux-instance 에서 참조하십시오.
3.9. 원격 실행을 위한 SSH 키 배포 수동으로 링크 복사링크가 클립보드에 복사되었습니다!
SSH 키를 수동으로 배포하려면 다음 단계를 완료합니다.
절차
Capsule에 다음 명령을 입력합니다. 관리하려는 각 대상 호스트에 대해 반복합니다.
ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
# ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 키가 대상 호스트에 성공적으로 복사되었는지 확인하려면 Capsule에 다음 명령을 입력합니다.
ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.com
# ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.10. Satellite API를 사용하여 원격 실행을 위한 SSH 키 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Satellite API를 사용하여 Capsule에서 공개 키를 다운로드하려면 각 대상 호스트에서 이 절차를 완료합니다.
절차
대상 호스트에서 SSH 키를 저장할
~/.ssh디렉터리를 생성합니다.mkdir ~/.ssh
# mkdir ~/.sshCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule에서 SSH 키를 다운로드합니다.
curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
# curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow ~/.ssh디렉터리에 대한 권한을 구성합니다.chmod 700 ~/.ssh
# chmod 700 ~/.sshCopy to Clipboard Copied! Toggle word wrap Toggle overflow authorized_keys파일에 대한 권한을 구성합니다.chmod 600 ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.11. 프로비저닝 시 SSH 키를 배포하도록 Kickstart 템플릿 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 Kickstart 템플릿에 remote_execution_ssh_keys 스니펫을 추가하여 프로비저닝 중에 호스트에 SSH 키를 배포할 수 있습니다. Satellite에서 제공하는 Kickstart 템플릿에는 기본적으로 이 스니펫이 포함됩니다. 따라서 Satellite는 프로비저닝 중에 원격 실행을 위해 시스템에 SSH 키를 복사합니다.
절차
새로 프로비저닝된 호스트에 공개 키를 포함하려면 사용하는 Kickstart 템플릿에 다음 스니펫을 추가합니다.
<%= snippet 'remote_execution_ssh_keys' %>
<%= snippet 'remote_execution_ssh_keys' %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.12. Kerberos 티켓 부여 티켓 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 키 탭을 사용하여 티켓을 부여하는 Kerberos 티켓을 가져오도록 Satellite를 구성합니다. keytab을 설정하지 않으면 티켓을 수동으로 검색해야 합니다.
절차
foreman-proxy사용자의 ID를 찾습니다.id -u foreman-proxy
# id -u foreman-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 파일에 권한
600이 있도록 CloudEvent 값을 수정합니다.umask 077
# umask 077Copy to Clipboard Copied! Toggle word wrap Toggle overflow keytab의 디렉터리를 생성합니다.
mkdir -p "/var/kerberos/krb5/user/USER_ID"
# mkdir -p "/var/kerberos/krb5/user/USER_ID"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 탭을 생성하거나 기존 키탭을 디렉터리에 복사합니다.
cp your_client.keytab /var/kerberos/krb5/user/USER_ID/client.keytab
# cp your_client.keytab /var/kerberos/krb5/user/USER_ID/client.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow 디렉터리 소유자를
foreman-proxy사용자로 변경합니다.chown -R foreman-proxy:foreman-proxy "/var/kerberos/krb5/user/USER_ID"
# chown -R foreman-proxy:foreman-proxy "/var/kerberos/krb5/user/USER_ID"Copy to Clipboard Copied! Toggle word wrap Toggle overflow keytab 파일이 읽기 전용인지 확인합니다.
chmod -wx "/var/kerberos/krb5/user/USER_ID/client.keytab"
# chmod -wx "/var/kerberos/krb5/user/USER_ID/client.keytab"Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux 컨텍스트를 복원하십시오.
restorecon -RvF /var/kerberos/krb5
# restorecon -RvF /var/kerberos/krb5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13. 원격 실행을 위한 Kerberos 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kerberos 인증을 사용하여 Satellite 호스트에서 원격 실행을 위한 SSH 연결을 설정할 수 있습니다.
사전 요구 사항
- Kerberos 서버에 Satellite Server 등록
- Kerberos 서버에 Satellite 대상 호스트 등록
- 원격 실행을 위해 Kerberos 사용자 계정 구성 및 초기화
- Satellite의 foreman-proxy 사용자에게 유효한 Kerberos 티켓이 있는지 확인합니다.
절차
원격 실행을 위해 Kerberos 인증을 설치 및 활성화하려면 다음 명령을 입력합니다.
satellite-installer --scenario satellite \ --foreman-proxy-plugin-remote-execution-ssh-ssh-kerberos-auth true
# satellite-installer --scenario satellite \ --foreman-proxy-plugin-remote-execution-ssh-ssh-kerberos-auth trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 원격 실행을 위해 기본 사용자를 편집하려면 Satellite 웹 UI에서 Administer > Settings 로 이동하여 RemoteExecution 탭을 클릭합니다. SSH 사용자 행에서 두 번째 열을 편집하고 Kerberos 계정의 사용자 이름을 추가합니다.
- remote_execution_ effective_user 로 이동하여 두 번째 열을 편집하여 Kerberos 계정의 사용자 이름을 추가합니다.
Kerberos 인증을 사용할 준비가 되었는지 확인하려면 호스트에서 원격 작업을 실행합니다.
3.14. 작업 템플릿 설정 링크 복사링크가 클립보드에 복사되었습니다!
Satellite는 작업 실행에 사용할 수 있는 기본 작업 템플릿을 제공합니다. 작업 템플릿 목록을 보려면 호스트 > 작업 템플릿으로 이동합니다. 변경하지 않고 템플릿을 사용하려면 원격 작업 실행을 진행합니다.
기본 템플릿을 기반으로 사용하여 고유한 템플릿을 개발할 수 있습니다. 기본 작업 템플릿은 편집할 수 있도록 잠겼습니다. 템플릿을 복제하고 복제본을 편집합니다.
절차
- 템플릿을 복제하려면 Actions 열에서 Clone 을 선택합니다.
- 복제본의 고유 이름을 입력하고 Submit 을 클릭하여 변경 사항을 저장합니다.
작업 템플릿은ERB(ERB) 구문을 사용합니다. 템플릿 작성에 대한 자세한 내용은 호스트 관리 가이드의 템플릿 reference 를 참조하십시오.
Ansible 고려 사항
Ansible 작업 템플릿을 생성하려면 다음 절차를 사용하고 ERB 구문 대신 YAML 구문을 사용합니다. --- 로 템플릿을 시작합니다. Ansible 플레이북 YAML 파일을 작업 템플릿 본문에 포함할 수 있습니다. ERB 구문을 추가하여 YAML Ansible 템플릿을 사용자 지정할 수도 있습니다. Satellite에서 Ansible 플레이북을 가져올 수도 있습니다. 자세한 내용은 호스트 관리 가이드에서 리포지토리 템플릿 동기화 를 참조하십시오.
매개변수 변수
런타임에 작업 템플릿은 호스트에 대해 정의한 매개변수 변수를 허용할 수 있습니다. 호스트의 편집 페이지의 Parameters 탭에 표시되는 매개변수만 작업 템플릿에 대한 입력 매개변수로 사용할 수 있습니다. Ansible 작업 템플릿이 런타임에 매개 변수 변수를 허용하지 않도록 하려면 Satellite 웹 UI에서 Administer > Settings 로 이동하여 Ansible 탭을 클릭합니다. 최상위 수준의 Ansible 변수 행에서 Value 매개변수를 No 로 변경합니다.
3.15. 원격 작업 실행 링크 복사링크가 클립보드에 복사되었습니다!
하나 이상의 호스트에 대해 작업 템플릿을 기반으로 하는 작업을 실행할 수 있습니다.
웹 UI 대신 CLI를 사용하려면 CLI 절차 를 참조하십시오.
절차
- 호스트 > 모든 호스트로 이동하여 원격 작업을 실행할 대상 호스트를 선택합니다. 검색 필드를 사용하여 호스트 목록을 필터링할 수 있습니다.
- Select Action (작업 선택) 목록에서 Schedule Remote Job 을 선택합니다.
- Job invocation 페이지에서 기본 작업 설정을 정의합니다.
- Job category (작업 카테고리)와 사용할 Job template 을 선택합니다.
- 선택 사항: Bookmark 목록에서 저장된 검색 문자열을 선택하여 대상 호스트를 지정합니다.
- 선택 사항: 검색 쿼리를 입력하여 대상 호스트를 제한합니다. Resolves to line은 쿼리의 영향을 받는 호스트 수를 표시합니다. 새로 고침 버튼을 사용하여 쿼리를 변경한 후 숫자를 다시 계산합니다. 프리뷰 아이콘은 대상 호스트가 나열됩니다.
- 나머지 설정은 선택한 작업 템플릿에 따라 다릅니다. 템플릿에 사용자 지정 매개변수를 추가하는 방법에 대한 자세한 내용은 작업 템플릿 생성을 참조하십시오.
선택 사항: 작업의 고급 설정을 구성하려면 고급 필드 표시를 클릭합니다. 고급 설정 중 일부는 작업 템플릿에 따라 달라지며 다음 설정은 일반적입니다.
- effective 사용자는 기본적으로 작업을 실행할 사용자를 정의합니다. 기본적으로 SSH 사용자입니다.
- 동시성 수준은 한 번에 실행되는 최대 작업 수를 정의하므로 다수의 호스트에서 작업을 실행하는 경우 시스템 리소스 과부하를 방지할 수 있습니다.
- 종료 시간 초과는 작업이 아직 완료되지 않은 경우 종료되어야 하는 시간 간격(초)을 정의합니다. 예를 들어 이전 작업을 완료하는 데 시간이 너무 오래 걸리는 경우, 예를 들어 정의된 간격 중에 시작할 수 없는 작업이 취소됩니다.
- 유형의 쿼리 는 검색 쿼리가 평가될 때를 정의합니다. 이는 예약된 작업에 대한 쿼리를 최신 상태로 유지하는 데 도움이 됩니다.
실행 순서에 따라 호스트에서 작업이 실행되는 순서에 따라 알파벳 또는 무작위로 지정됩니다.
동시성 수준 및 종료 설정을 통해 작업 실행을 인프라 하드웨어 및 요구 사항에 맞게 조정할 수 있습니다.
- 작업을 즉시 실행하려면 일정이 Execute now 로 설정되어 있는지 확인합니다. 일회성 향후 작업을 정의하거나 반복 작업을 설정할 수도 있습니다. 반복 작업의 경우 시작 및 종료 날짜, 실행 수 및 빈도를 정의할 수 있습니다. cron 구문을 사용하여 반복을 정의할 수도 있습니다. cron에 대한 자세한 내용은 Red Hat Enterprise Linux 7 시스템 관리자 가이드의 시스템 작업 자동 섹션을 참조하십시오.
- Submit 을 클릭합니다. 그러면 작업 개요 페이지가 표시되고 작업이 완료되면 작업 상태도 표시됩니다.
CLI 절차
- Satellite에서 다음 명령을 입력합니다.
hammer settings set --name=remote_execution_global_proxy --value=false
# hammer settings set --name=remote_execution_global_proxy --value=false
사용자 지정 매개변수를 사용하여 원격 작업을 실행하려면 다음 단계를 완료합니다.
사용할 작업 템플릿의 ID를 찾습니다.
hammer job-template list
# hammer job-template listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 템플릿에 필요한 매개변수를 보려면 템플릿 세부 정보를 표시합니다.
hammer job-template info --id template_ID
# hammer job-template info --id template_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 매개변수를 사용하여 원격 작업을 실행합니다.
hammer job-invocation create \ --job-template "template_name" \ --inputs key1="value",key2="value",... \ --search-query "query"
# hammer job-invocation create \ --job-template "template_name" \ --inputs key1="value",key2="value",... \ --search-query "query"Copy to Clipboard Copied! Toggle word wrap Toggle overflow query 를 호스트를 정의하는 필터 표현식으로 바꿉니다(예:
"name ~ rex01"). hammer로 원격 명령을 실행하는 방법에 대한 자세한 내용은hammer job-template --help및hammer job-invocation --help를 입력합니다.
3.16. 작업 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
실행 중인 작업의 진행 상황을 모니터링할 수 있습니다. 이는 필요할 수 있는 모든 문제 해결에 도움이 될 수 있습니다.
Ansible 작업은 호스트 100개로 이루어진 일괄 처리에서 실행되므로 특정 호스트에서 실행 중인 작업을 취소할 수 없습니다. 작업은 Ansible 플레이북이 배치의 모든 호스트에서 실행된 후에만 완료됩니다.
절차
-
Job(작업) 페이지로 이동합니다. 이 페이지는
Execute now설정으로 작업을 트리거한 경우 자동으로 표시됩니다. 예약된 작업을 모니터링하려면 Monitor > Jobs 로 이동하여 검사할 작업 실행을 선택합니다. - 작업 페이지에서 호스트 탭을 클릭합니다. 그러면 작업이 실행 중인 호스트 목록이 표시됩니다.
- Host 열에서 검사할 호스트의 이름을 클릭합니다. 그러면 작업 실행을 실시간으로 모니터링할 수 있는 명령 페이지의 세부 정보가 표시됩니다.
- 언제든지 Back to Job 을 클릭하여 Job Details 페이지로 돌아갑니다.
CLI 절차
실행 중인 작업의 진행 상황을 모니터링하려면 다음 단계를 완료합니다.
작업 ID를 찾습니다.
hammer job-invocation list
# hammer job-invocation listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작업 출력을 모니터링합니다.
hammer job-invocation output \ --id job_ID \ --host host_name
# hammer job-invocation output \ --id job_ID \ --host host_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 작업을 취소하려면 다음 명령을 입력합니다.
hammer job-invocation cancel \ --id job_ID
# hammer job-invocation cancel \ --id job_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. Red Hat Satellite 및 Ansible Tower 통합 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Satellite 및 Ansible Tower를 통합하여 Satellite 서버를 Ansible Tower의 동적 인벤토리 소스로 사용할 수 있습니다.
프로비저닝 콜백 함수를 사용하여 호스트 또는 Ansible Tower에서 Satellite에서 관리하는 호스트에서 플레이북을 실행할 수도 있습니다. Satellite 서버에서 새 호스트를 프로비저닝할 때 프로비저닝 콜백 함수를 사용하여 Ansible Tower에서 플레이북 실행을 트리거할 수 있습니다. 플레이북은 Kickstart 배포 후 호스트를 구성합니다.
4.1. 동적 인벤토리로 Ansible Tower에 Satellite 서버 추가 링크 복사링크가 클립보드에 복사되었습니다!
동적 인벤토리 항목으로 Satellite Server를 Ansible Tower에 추가하려면 Ansible Tower에서 Satellite Server 사용자에 대한 자격 증명을 생성하고, Ansible Tower에 Ansible Tower 사용자를 추가한 다음, 인벤토리 소스를 구성해야 합니다.
사전 요구 사항
- 예를 들어 Satellite 배포가 수만 개의 호스트를 관리하는 경우 관리자가 아닌 사용자를 사용하면 권한 부여 검사 중에 발생되는 시간 때문에 성능에 부정적인 영향을 미칠 수 있습니다. 대규모 배포의 경우 admin 사용자를 사용하는 것이 좋습니다.
-
관리자가 아닌 사용자의 경우
Ansible Tower Inventory gRPC 역할을 SatelliteServer 사용자에게 할당해야 합니다. 사용자, 역할 및 권한 필터 관리에 대한 자세한 내용은 Red Hat Satellite 관리에서 역할 생성 및 관리를 참조하십시오. - 동일한 네트워크 또는 서브넷에서 Satellite 서버 및 Ansible Tower를 호스팅해야 합니다.
절차
Ansible Tower 웹 UI에서 Satellite에 대한 자격 증명을 생성합니다. 자격 증명 생성에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 새 자격 증명 및 Red Hat Satellite 6 자격 증명 추가 를 참조하십시오.
Expand 표 4.1. Satellite 인증 정보 인증 정보 유형: Red Hat Satellite 6 Satellite 6 URL:
https://satellite.example.com
사용자 이름:
통합 역할이 있는 Satellite 사용자의 사용자 이름입니다.
암호:
Satellite 사용자의 암호입니다.
- Ansible Tower 사용자를 새 자격 증명에 추가합니다. 자격 증명에 사용자를 추가하는 방법에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 자격 증명 시작하기 를 참조하십시오.
- 새 인벤토리를 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 새 인벤토리 추가 를 참조하십시오.
새 인벤토리에서 다음 인벤토리 소스 옵션을 지정하여 Satellite 서버를 인벤토리 소스로 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드에서 소스 추가 를 참조하십시오.
Expand 표 4.2. 인벤토리 소스 옵션 소스 Red Hat Satellite 6 인증 정보
Satellite Server에 대해 생성한 자격 증명입니다.
overwrite
선택 사항
변수 덮어쓰기
선택 사항
시작 시 업데이트
선택 사항
캐시 시간 제한
90
- 추가하는 소스를 동기화해야 합니다.
4.2. 호스트에 대한 프로비저닝 콜백 구성 링크 복사링크가 클립보드에 복사되었습니다!
Satellite에서 호스트를 생성할 때 Ansible Tower를 사용하여 새로 생성된 호스트를 구성하는 플레이북을 실행할 수 있습니다. 이를 Ansible Tower에서 프로비저닝 콜백 이라고 합니다.
프로비저닝 콜백 함수는 프로비저닝 프로세스의 일부로 Ansible Tower에서 실행되는 플레이북을 트리거합니다. 플레이북은 Kickstart를 배포한 후 호스트를 구성합니다.
프로비저닝 콜백에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 콜백 프로비저닝 을 참조하십시오.
Satellite Server에서 Kickstart 기본값 및 템플릿에는 다음 세 가지 스니펫이 포함됩니다.
Kickstart Default Finish
-
ansible_provisioning_callback -
ansible_tower_callback_script -
ansible_tower_callback_service
호스트 또는 호스트 그룹에 매개변수를 추가하여 이러한 스니펫에서 새로 생성된 호스트에서 Ansible 플레이북을 실행하는 데 사용할 수 있는 자격 증명을 제공할 수 있습니다.
사전 요구 사항
프로비저닝 콜백을 구성하려면 먼저 Ansible Tower에서 Satellite를 동적 인벤토리로 추가해야 합니다. 자세한 내용은 Satellite 및 Ansible Tower 통합을 참조하십시오.
Ansible Tower 웹 UI에서 다음 작업을 완료해야 합니다.
- 새 호스트에 대한 시스템 자격 증명을 생성합니다. Satellite에서 생성하는 호스트에 할당하려는 자격 증명에 동일한 암호를 입력해야 합니다. 자세한 내용은 Ansible Tower 사용자 가이드에서 새 자격 증명 추가 를 참조하십시오.
- 프로젝트를 생성합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 프로젝트를 참조하십시오.
- 프로젝트에 작업 템플릿을 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 작업 템플릿을 참조하십시오.
- 작업 템플릿에서 프로비저닝 콜백을 활성화하고, 호스트 구성 키를 생성하고, 작업 템플릿의 template_ID 를 기록해야 합니다. 작업 템플릿에 대한 자세한 내용은 Ansible Tower 사용자 가이드의 작업 템플릿을 참조하십시오.
절차
- Red Hat Satellite 웹 UI에서 Configure > Host Group 으로 이동합니다.
- 호스트 그룹을 생성하거나 기존 호스트 그룹을 편집합니다.
- Host Group 창에서 Parameters 탭을 클릭합니다.
- 매개 변수 추가를 클릭합니다.
각 새 매개변수에 대해 다음 정보를 입력합니다.
Expand 표 4.3. 호스트 매개변수 이름 현재의 설명 ansible_tower_provisioningtrue
프로비저닝 콜백을 활성화합니다.
ansible_tower_fqdntower.example.com
Ansible Tower의 정규화된 도메인 이름(FQDN)입니다. Ansible Tower에서 추가되므로
https를 추가하지 마십시오.ansible_job_template_idtemplate_ID
템플릿의 URL에서 찾을 수 있는 프로비저닝 템플릿의 ID:
/templates/job_template/5.ansible_host_config_keyconfig_KEY
작업 템플릿이 Ansible Tower에서 생성하는 호스트 구성 키입니다.
- Submit 을 클릭합니다.
- 호스트 그룹을 사용하여 호스트를 생성합니다.
새 호스트에서 다음 명령을 입력하여
ansible-callback서비스를 시작합니다.systemctl start ansible-callback
# systemctl start ansible-callbackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 호스트에서 다음 명령을 입력하여
ansible-callback서비스의 상태를 출력합니다.systemctl status ansible-callback
# systemctl status ansible-callbackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 다음 출력을 반환하는 경우 프로비저닝 콜백이 올바르게 구성됩니다.
SAT_host systemd[1]: Started Provisioning callback to Ansible Tower...
SAT_host systemd[1]: Started Provisioning callback to Ansible Tower...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
수동 프로비저닝 콜백
프로비저닝 콜백 URL과 호스트 구성 키를 사용하여 Ansible Tower를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
curl -k -s --data curl --insecure --data host_config_key=my_config_key \ https://tower.example.com/api/v2/job_templates/8/callback/
# curl -k -s --data curl --insecure --data host_config_key=my_config_key \
https://tower.example.com/api/v2/job_templates/8/callback/
프로비저닝 콜백 URL을 입력할 때 https 를 사용하는지 확인합니다.
이렇게 하면 호스트에 대해 템플릿에 지정된 플레이북이 실행됩니다.
부록 A. 작업 템플릿 예 및 확장 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션을 참조로 사용하여 요구 사항에 맞게 작업 템플릿을 수정, 사용자 정의 및 확장할 수 있습니다.
A.1. 작업 템플릿 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
작업 템플릿을 생성할 때 템플릿 편집기 필드에 기존 템플릿을 포함할 수 있습니다. 이렇게 하면 템플릿을 결합하거나 일반 템플릿에서 더 구체적인 템플릿을 만들 수 있습니다.
다음 템플릿은 기본 템플릿을 결합하여 Red Hat Enterprise Linux 시스템에서 httpd 서비스를 설치하고 시작합니다.
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %> <%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %>
<%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
위의 템플릿은 렌더링된 템플릿의 매개변수 값을 직접 지정합니다. 또한 input() 메서드를 사용하여 사용자가 작업 실행 시 렌더링된 템플릿에 대한 입력을 정의할 수 있습니다. 예를 들어 다음 구문을 사용할 수 있습니다.
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
위의 템플릿을 사용하여 렌더링된 템플릿에서 매개변수 정의를 가져와야 합니다. 이렇게 하려면 작업 탭으로 이동하여 Add Foreign Input Set 을 클릭하고 대상 템플릿 목록에서 렌더링된 템플릿을 선택합니다. 모든 매개변수를 가져오거나 쉼표로 구분된 목록을 지정할 수 있습니다.
A.2. 기본 작업 템플릿 카테고리 링크 복사링크가 클립보드에 복사되었습니다!
| 작업 템플릿 카테고리 | 설명 |
|---|---|
| 패키지 | 패키지 관련 작업을 수행하기 위한 템플릿입니다. 설치, 업데이트 및 제거 작업은 기본적으로 포함됩니다. |
| Puppet | Puppet 실행을 위한 템플릿은 대상 호스트에서 실행됩니다. |
| power | 전원 관련 작업을 수행하기 위한 템플릿입니다. 재시작 및 종료 작업은 기본적으로 포함됩니다. |
| 명령 | 원격 호스트에서 사용자 지정 명령을 실행하는 템플릿입니다. |
| 서비스 | 서비스 관련 작업을 수행하기 위한 템플릿입니다. start, stop, restart 및 status 작업이 기본적으로 포함됩니다. |
| Katello | 콘텐츠 관련 작업을 수행하기 위한 템플릿입니다. 이러한 템플릿은 주로 Satellite 웹 UI의 여러 부분(예: 콘텐츠 호스트의 일괄 작업 UI)에서 사용되지만 에라타 설치와 같은 작업을 별도로 수행할 수 있습니다. |
A.3. restorecon 템플릿 예 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서는 대상 호스트의 선택한 디렉터리에 있는 모든 파일에 대한 기본 SELinux 컨텍스트를 복원하는 Run Command - restorecon 이라는 템플릿을 생성하는 방법을 보여줍니다.
- 호스트 > 작업 템플릿으로 이동합니다. New Job Template 을 클릭합니다.
Name 필드에 Run Command - restorecon 을 입력합니다. 모든 조직에서 템플릿을 사용할 수 있도록 하려면 기본값 을 선택합니다. 템플릿 편집기에 다음 텍스트를 추가합니다.
restorecon -RvF <%= input("directory") %>restorecon -RvF <%= input("directory") %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;%= input("directory") %> 문자열은 작업을 호출하는 동안 사용자 정의 디렉터리로 교체됩니다.-
Job 탭에서 Job category 를
Commands로 설정합니다. -
Add Input (입력 추가)을 클릭하여 작업 사용자 지정을 허용합니다. Name 필드에
directory를 입력합니다. 입력 이름은 템플릿 편집기에 지정된 값과 일치해야 합니다. - user specified 매개 변수 없이 명령을 실행할 수 없도록 Required 를 클릭합니다.
-
입력 유형 목록에서 사용자 입력을 선택합니다. 작업 호출 중에 표시할 설명을 입력합니다(예:
restorecon의 대상 디렉터리). - Submit 을 클릭합니다.
이 템플릿을 기반으로 작업을 실행하는 방법에 대한 자세한 내용은 여러 호스트에서 restorecon 템플릿 실행을 참조하십시오.
A.4. restorecon 템플릿 렌더링 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 Run 명령에서 파생된 템플릿 - restorecon 템플릿으로 작성된 템플릿을 생성하는 방법을 보여줍니다. https://access.redhat.com/documentation/en-us/red_hat_satellite/6.10/html-single/managing_hosts/index#default-example-restorecon-template_managing-hosts 이 템플릿은 작업 실행에 대한 사용자 입력이 필요하지 않으며 대상 호스트의 /home/ 디렉터리에 있는 모든 파일의 SELinux 컨텍스트를 복원합니다.
작업 템플릿 설정에 설명된 대로 새 템플릿을 생성하고 템플릿 편집기에서 다음 문자열을 지정합니다.
<%= render_template("Run Command - restorecon", :directory => "/home") %>
<%= render_template("Run Command - restorecon", :directory => "/home") %>
A.5. 여러 호스트에서 restorecon 템플릿 실행 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서는 여러 호스트에서 예제 restorecon 템플릿에 생성된 템플릿을 기반으로 작업을 실행하는 방법을 보여줍니다. 작업은 /home/ 디렉터리에 있는 모든 파일에 SELinux 컨텍스트를 복원합니다.
- 호스트 > 모든 호스트로 이동하고 대상 호스트를 선택합니다. Select Action (작업 선택) 목록에서 Schedule Remote Job (원격 작업 예약)을 선택합니다.
-
Job invocation 페이지에서
Commands작업 카테고리와Run Command - restorecon작업 템플릿을 선택합니다. -
디렉터리 필드에
/home을 입력합니다. -
Schedule 을
Execute now로 설정합니다. - Submit 을 클릭합니다. 작업 실행 상태를 모니터링할 수 있는 Job invocation 페이지로 이동합니다.
A.6. 템플릿에 전원 작업 포함 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 재부팅과 같은 전원 작업 수행을 위한 작업 템플릿을 설정하는 방법을 보여줍니다. 이 절차에서는 재부팅 시 연결 해제 예외를 오류로 해석하지 않으므로 원격 작업이 제대로 실행됩니다.
작업 템플릿 설정에 설명된 대로 새 템플릿을 생성하고 템플릿 편집기에서 다음 문자열을 지정합니다.
<%= render_template("Power Action - SSH Default", :action => "restart") %>
<%= render_template("Power Action - SSH Default", :action => "restart") %>