검색

Ansible을 사용하도록 Satellite 구성

download PDF
Red Hat Satellite 6.10

반복적인 작업 자동화에 도움이 되도록 Satellite에서 Ansible 구성

Red Hat Satellite Documentation Team

초록

이 가이드에서는 Ansible을 사용하여 원격 실행을 수행하고 반복적인 작업을 자동화하도록 Red Hat Satellite를 설정하고 구성하는 방법을 설명합니다.

1장. Satellite에서 Ansible 시작하기

이 가이드를 사용하여 Ansible을 사용하도록 Satellite를 구성한 다음 원격 실행을 위해 Ansible을 사용하는 방법에 대한 정보입니다.

1.1. Ansible 역할을 실행하도록 배포 구성

Satellite에서는 일상적인 작업 자동화에 도움이 되도록 Ansible 역할을 가져올 수 있습니다. Ansible은 기본적으로 Satellite에서만 활성화됩니다.

Ansible 역할을 실행하도록 Satellite 배포를 구성하려면 다음 절차를 완료합니다.

절차

  1. 역할을 사용하려는 위치에 있는 Satellite의 /etc/ansible/roles 디렉터리 및 모든 Capsule에 역할을 추가합니다. 사용자 지정 또는 타사 Ansible 역할을 사용하려면 Satellite와 Capsule 간에 역할을 동기화하도록 외부 버전 제어 시스템을 구성해야 합니다.
  2. 호스트에서 Ansible 역할을 실행하는 데 사용할 모든 Capsule에서 Ansible 플러그인을 활성화합니다.

    # satellite-installer --scenario capsule \
    --enable-foreman-proxy-plugin-ansible
  3. SSH 키를 배포하여 SSH를 사용하여 Capsule이 호스트에 연결할 수 있도록 합니다. 자세한 내용은 호스트 관리 가이드에서 원격 실행을 위한 SSH 키 배포를 참조하십시오. Satellite는 원격 실행 작업을 실행하는 방식과 동일하게 Ansible 역할을 실행합니다.
  4. Ansible 역할을 Satellite로 가져옵니다.
  5. Ansible 역할을 사용하여 Satellite 호스트에서 중요한 작업을 자동화하여 Ansible 을 사용하도록 Satellite 구성으로 이동합니다.

1.2. Ansible 역할 및 변수 가져오기

Satellite의 /etc/ansible/roles 디렉터리 또는 Ansible이 활성화된 Capsule에서 Ansible 역할 및 변수를 가져올 수 있습니다. 가져오는 역할과 변수가 역할을 사용하려는 모든 Capsule의 /etc/ansible/roles 디렉터리에 있는지 확인합니다. 일부 역할이 표시되지 않는 경우 일부 역할을 가져오는 데 시간이 더 오래 걸릴 수 있습니다. .Procedure

  1. Satellite 웹 UI에서 Configure > Roles 로 이동하여 가져올 역할 및 변수가 포함된 Capsule을 클릭합니다.
  2. Submit 을 클릭합니다.

1.3. Satellite에서 Ansible 변수 덮어쓰기

Satellite에서 Ansible 역할을 실행하는 경우 Satellite를 사용하여 해당 역할의 Ansible 변수를 재정의할 수 있습니다.

변수 덮어쓰기의 우선순위

Ansible 역할을 사용하여 효과적인 사용자가 아닌 사용자로 작업을 실행하는 경우 Ansible 변수를 재정의하기 위한 엄격한 우선 순위가 있습니다. 재정의한 변수가 올바른 우선 순위를 따르도록 하려면 변수 우선 순위: Ansible 사용자 가이드에서 변수를 배치해야 하는 위치를 참조하십시오.

사전 요구 사항

  • Satellite에 Ansible 변수가 있어야 합니다.

    • Ansible 변수를 가져오려면 Ansible 변수 가져오기를참조하십시오.
    • Ansible 변수를 생성하려면 Ansible 변수 생성을참조하십시오.

다음 절차에서는 호스트 및 호스트 그룹을 참조합니다. 호스트 및 호스트 그룹에 대한 자세한 내용은 호스트 관리 가이드를 참조하십시오.

절차

  1. Satellite 웹 UI에서 Configure > Variables 로 이동합니다.
  2. Satellite를 사용하여 재정의하고 관리할 Ansible 변수를 선택합니다.
  3. 기본 ECDHE 영역으로 이동하여 Override 확인란을 선택합니다.
  4. Parameter Type 에서 유효성 검사를 위한 값 유형을 선택합니다. 예를 들어 string 또는 boolean 변수가 있습니다.
  5. Default Value 필드에 변수에 일치하는 항목이 없는 경우 사용할 기본값을 입력합니다.
  6. 선택 사항: Ansible 변수를 일반 텍스트에 표시하지 않으려면 Hidden Values 확인란을 선택하여 변수의 내용을 Satellite 웹 UI에 별표로 표시합니다.
  7. 재정의 설정을 저장하려면 Submit 을 클릭합니다.

Ansible 변수를 사용하려면 변수를 호스트 또는 호스트 그룹에 매개 변수로 추가하거나 변수를 글로벌 매개 변수로 추가합니다.

호스트 그룹의 경우:

  1. Satellite 웹 UI에서 Configure > Host Groups 로 이동하여 사용할 호스트 그룹을 선택합니다.
  2. Parameters 탭을 클릭하고 Host Group Parameters 영역에서 매개 변수 추가를 클릭합니다.
  3. 이름 필드에 Ansible 변수 이름을 추가합니다.
  4. 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
  5. 필드에 변수 값을 입력합니다.

호스트의 경우:

  1. Satellite 웹 UI에서 호스트 > 모든 호스트 및 사용하려는 호스트에서 편집 버튼을 클릭합니다.
  2. Parameters 탭을 클릭하고 Host Parameters 영역에서 Add Parameter 를 클릭합니다.
  3. 이름 필드에 Ansible 변수 이름을 추가합니다.
  4. 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
  5. 필드에 변수 값을 입력합니다.

전역 매개 변수로 추가하려면 다음을 수행합니다.

  1. Satellite 웹 UI에서 Configure > Global Parameters 로 이동하여 Create Parameter 를 클릭합니다.
  2. 이름 필드에 Ansible 변수 이름을 추가합니다.
  3. 유형 목록에서 검증을 위해 변수 유형을 선택합니다.
  4. 필드에 변수 값을 입력합니다.
  5. 선택 사항: 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 제품 라이프 사이클 문서를 참조하십시오.

절차

  1. rhel-7-server-extras-rpms 리포지토리가 활성화되어 있는지 확인합니다.

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
  2. rhel-system-roles 패키지를 설치합니다.

    # satellite-maintain packages install rhel-system-roles

    rhel-system-roles 패키지는 /usr/share/ansible/roles/. 가져오기 전에 파일을 보고 수정할 수 있습니다.

  3. Satellite 웹 UI에서 Configure > Roles 로 이동하여 가져오려는 역할이 포함된 Capsule을 클릭합니다.
  4. 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 역할을 구성하고 가져왔는지 확인합니다.

절차

  1. Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
  2. Ansible 역할을 할당하려는 호스트에서 편집 을 클릭합니다.
  3. Ansible Roles 탭을 선택하고 모든 항목 목록에서 추가할 역할을 검색합니다.
  4. 추가할 역할을 선택하고 화살표 아이콘을 클릭하여 역할을 Selected items (선택한 항목) 목록으로 이동합니다.
  5. Submit 을 클릭합니다.

호스트에 Ansible 역할을 할당한 후 Ansible을 사용하여 원격 실행을 수행할 수 있습니다. 자세한 내용은 원격 실행을 위한 SSH 키 배포를 참조하십시오.

매개변수 덮어쓰기

Parameters 탭에서 매개 변수 추가 를 클릭하여 런타임에 작업 템플릿에 전달할 매개변수 변수를 추가합니다. 여기에는 호스트와 연결할 모든 Ansible 플레이북 매개변수 및 호스트 매개변수가 포함됩니다. Ansible 작업 템플릿으로 매개변수 변수를 사용하려면 호스트 매개 변수를 추가해야 합니다.

2.2. 호스트에서 Ansible 역할 실행

Satellite 웹 UI를 통해 호스트에서 Ansible 역할을 실행할 수 있습니다.

사전 요구 사항

절차

  1. Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
  2. 실행할 Ansible 역할이 포함된 호스트의 확인란을 선택합니다.
  3. Select Action (작업 선택) 목록에서 Play Ansible roles 를 선택합니다.

Ansible 역할 실행 페이지에서 Ansible 작업의 상태를 볼 수 있습니다. 작업을 다시 실행하려면 Rerun 버튼을 클릭합니다.

2.3. 호스트 그룹에 Ansible 역할 할당

Red Hat Enterprise Linux 버전 8, 7, 6.9 이상을 원격 관리하는 데 Ansible 역할을 사용할 수 있습니다.

사전 요구 사항

절차

  1. Satellite 웹 UI에서 Configure > Host Groups 로 이동합니다.
  2. 호스트 그룹 목록에서 Ansible 역할을 추가할 호스트 그룹 이름을 클릭합니다.
  3. Ansible Roles 탭을 선택하고 모든 항목 목록에서 추가할 역할을 검색합니다.
  4. 추가할 역할을 선택하고 화살표 아이콘을 클릭하여 역할을 Selected items (선택한 항목) 목록으로 이동합니다.
  5. Submit 을 클릭합니다.

2.4. 호스트 그룹에서 Ansible 역할 실행

Satellite 웹 UI를 통해 호스트 그룹에서 Ansible 역할을 실행할 수 있습니다.

사전 요구 사항

절차

  1. Satellite 웹 UI에서 Configure > Host Groups 로 이동합니다.
  2. 호스트 그룹의 Actions (작업) 열의 목록에서 Run all Ansible roles 를 선택합니다.

Ansible 역할 실행 페이지에서 Ansible 작업의 상태를 볼 수 있습니다. 작업을 다시 실행하려면 Rerun 버튼을 클릭합니다.

2.5. 확인 모드에서 Ansible 역할 실행

Satellite 웹 UI를 통해 확인 모드에서 Ansible 역할을 실행할 수 있습니다.

사전 요구 사항

절차

  1. Satellite 웹 UI에서 호스트 &gt ; 모든 호스트로 이동합니다.
  2. 확인 모드를 활성화할 호스트에 대해 Edit (편집)를 클릭합니다.
  3. Parameters 탭에서 호스트에 부울 유형이 true 로 설정된 ansible_roles_check_mode 라는 매개 변수가 있는지 확인합니다.
  4. 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만 검색합니다.

  1. Satellite는 원격 실행 확인란이 선택된 호스트의 인터페이스를 찾습니다.
  2. Satellite는 이러한 인터페이스의 서브넷을 찾습니다.
  3. Satellite는 이러한 서브넷에 할당된 원격 실행 Capsule을 찾습니다.
  4. 이 Capsule 세트에서 Satellite는 실행 중인 작업의 수가 가장 적은 Capsule을 선택합니다. 이렇게 하면 Satellite가 작업 부하가 원격 실행 Capsule 간에 균형을 유지합니다.
  5. 이 단계에서 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
  6. 이 단계에서 Satellite에서 원격 실행 Capsule을 찾지 못하고 Enable Global Capsule 설정이 활성화된 경우 Satellite는 호스트 조직 및 위치의 모든 Capsule 세트에서 가장 가볍게 로드된 원격 실행 Capsule을 선택하여 원격 작업을 실행합니다.

3.3. 원격 실행 권한

대상 호스트를 포함하여 인프라 내에서 어떤 작업을 실행할 수 있는 사용자를 제어할 수 있습니다. 원격 실행 기능은 다음 두 가지 기본 제공 역할을 제공합니다.

  • 원격 실행 관리자: 이 역할을 사용하면 모든 원격 실행 기능 및 기능에 액세스할 수 있습니다.
  • 원격 실행 사용자: 이 역할은 실행 중인 작업만 허용합니다. 작업 템플릿을 수정할 수 있는 권한을 제공하지 않습니다.

원격 실행 사용자 역할을 복제하고 세분화 증가를 위해 해당 필터를 사용자 지정할 수 있습니다. view_job_templates 권한을 사용하여 필터를 조정하는 경우 사용자는 일치하는 작업 템플릿을 기반으로 작업만 보고 트리거할 수 있습니다. view_hostsview_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

이 예제의 첫 번째 줄에서는 사용자가 Reboot 템플릿을 하나의 선택한 호스트에 적용할 수 있습니다. 두 번째 줄은 .staging.example.com 으로 끝나는 이름으로 호스트 풀을 정의합니다. 세 번째 줄은 템플릿을 호스트 그룹과 바인딩합니다.

참고

사용자에게 할당된 권한은 시간에 따라 변경될 수 있습니다. 사용자가 이미 일부 작업을 나중에 실행하도록 예약하고 권한이 변경된 경우 작업이 실행되기 전에 권한이 즉시 확인되므로 실행 오류가 발생할 수 있습니다.

3.4. 작업 템플릿 생성

이 절차를 사용하여 작업 템플릿을 생성합니다. 웹 UI 대신 CLI를 사용하려면 CLI 절차 를 참조하십시오.

절차

  1. 호스트 > 작업 템플릿으로 이동합니다.
  2. New Job Template 을 클릭합니다.
  3. 템플릿 탭을 클릭하고 이름 필드에 작업 템플릿의 고유한 이름을 입력합니다.
  4. 모든 조직 및 위치에 템플릿을 사용할 수 있도록 하려면 기본값 을 선택합니다.
  5. 템플릿 편집기에서 템플릿을 직접 생성하거나 가져오기 를 클릭하여 텍스트 파일에서 업로드합니다.
  6. 선택 사항: 감사 주석 필드에서 변경 사항에 대한 정보를 추가합니다.
  7. Job 탭을 클릭하고 Job category 필드에 고유한 카테고리를 입력하거나 Default Job Template Categories 에 나열된 기본 카테고리에서 선택합니다.
  8. 선택 사항: 설명 형식 필드에 설명 템플릿을 입력합니다. 예: Install package %{package_name}. 템플릿에서 %{template_name}%{job_category} 를 사용할 수도 있습니다.
  9. Provider Type (프로바이더 유형) 목록에서 쉘 스크립트에 대한 SSHAnsible 작업 또는 플레이북에 대해 Ansible을 선택합니다.
  10. 선택 사항: Timeout to kill 필드에 시간 초과 값을 입력하여 작업이 완료되지 않으면 종료합니다.
  11. 선택 사항: 입력 추가 를 클릭하여 입력 매개 변수를 정의합니다. 매개 변수는 작업을 실행할 때 요청되며 템플릿에 정의할 필요가 없습니다. 자세한 내용은 도움말 탭을 참조하십시오.
  12. 선택 사항: 이 작업의 다른 템플릿을 포함하려면 Foreign 입력 세트를 클릭합니다.
  13. 선택 사항: 효과적인 사용자 영역에서 명령이 기본 remote_execution_effective_user 설정을 사용할 수 없는 경우 사용자를 구성합니다.
  14. 선택 사항: 이 템플릿이 다른 템플릿에 포함된 스니펫인 경우 유형 탭을 클릭하고 Snippet 을 선택합니다.
  15. 위치 탭을 클릭하고 템플릿을 사용할 위치를 추가합니다.
  16. Organizations 탭을 클릭하고 템플릿을 사용할 조직을 추가합니다.
  17. 제출을 클릭하여 변경 사항을 저장합니다.

템플릿 구문에 다른 템플릿을 포함하여 작업 템플릿을 확장하고 사용자 지정할 수 있습니다. 자세한 내용은 호스트 관리 가이드의 부록을 참조하십시오.

CLI 절차

  1. template-definition 파일을 사용하여 작업 템플릿을 생성하려면 다음 명령을 입력합니다.

    # hammer job-template create \
    --file "path_to_template_file" \
    --name "template_name" \
    --provider-type SSH \
    --job-category "category_name"

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

절차

  1. Satellite 웹 UI에서 Administer > Settings 로 이동합니다.
  2. RemoteExecution 을 클릭합니다.
  3. 모든 Capsule 설정으로 폴백을 구성합니다.

CLI 절차

Satellite에 hammer settings set 명령을 입력하여 Fallback을 Any Capsule 설정으로 구성합니다. 예를 들어 값을 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을 선택합니다.

절차

  1. Satellite 웹 UI에서 Administer > Settings 로 이동합니다.
  2. RemoteExection 을 클릭합니다.
  3. Enable Global Capsule 설정을 구성합니다.

CLI 절차

  • Satellite에서 hammer settings set 명령을 입력하여 Enable Global Capsule 설정을 구성합니다. 예를 들어 값을 true 로 설정하려면 다음 명령을 입력합니다.

    # hammer settings set --name=remote_execution_global_proxy --value=true

3.7. 호스트에서 원격 작업을 실행하도록 대체 디렉터리를 사용하도록 Satellite 구성

Ansible은 $HOME/.ansible/tmp 디렉터리에 필요한 자체 파일을 저장합니다. 여기서 $HOME 은 원격 사용자의 홈 디렉터리입니다. 필요한 경우 다른 디렉터리를 설정하는 옵션이 있습니다.

절차

  1. 새 디렉토리를 만듭니다(예: new_place ).

    # mkdir /remote_working_dir
  2. 기본 var 디렉터리에서 SELinux 컨텍스트를 복사합니다.

    # chcon --reference=/var /remote_working_dir
  3. 시스템을 구성합니다.
# {foreman-installer} --foreman-proxy-plugin-ansible-working-dir _/remote_working_dir_

3.8. 원격 실행을 위한 SSH 키 배포

원격 실행 연결을 인증하는 데 SSH 키를 사용하려면 공개 SSH 키를 Capsule에서 관리하려는 연결된 호스트에 배포해야 합니다. SSH 서비스가 활성화되어 호스트에서 실행 중인지 확인합니다. 포트 22에 액세스할 수 있도록 네트워크 또는 호스트 기반 방화벽을 구성합니다.

다음 방법 중 하나를 사용하여 Capsule에서 대상 호스트에 공용 SSH 키를 배포합니다.

Satellite는 원격 실행 기능에 대한 SSH 키를 기본적으로 Satellite에서 프로비저닝한 호스트에 배포합니다.

호스트가 Amazon Web Services에서 실행중인 경우 암호 인증을 활성화합니다. 자세한 내용은 https://aws.amazon.com/premiumsupport/knowledge-center/new-user-accounts-linux-instance 에서 참조하십시오.

3.9. 원격 실행을 위한 SSH 키 배포 수동으로

SSH 키를 수동으로 배포하려면 다음 단계를 완료합니다.

절차

  1. Capsule에 다음 명령을 입력합니다. 관리하려는 각 대상 호스트에 대해 반복합니다.

    # ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
  2. 키가 대상 호스트에 성공적으로 복사되었는지 확인하려면 Capsule에 다음 명령을 입력합니다.

    # ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.com

3.10. Satellite API를 사용하여 원격 실행을 위한 SSH 키 가져오기

Satellite API를 사용하여 Capsule에서 공개 키를 다운로드하려면 각 대상 호스트에서 이 절차를 완료합니다.

절차

  1. 대상 호스트에서 SSH 키를 저장할 ~/.ssh 디렉터리를 생성합니다.

    # mkdir ~/.ssh
  2. Capsule에서 SSH 키를 다운로드합니다.

    # curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
  3. ~/.ssh 디렉터리에 대한 권한을 구성합니다.

    # chmod 700 ~/.ssh
  4. authorized_keys 파일에 대한 권한을 구성합니다.

    # chmod 600 ~/.ssh/authorized_keys

3.11. 프로비저닝 시 SSH 키를 배포하도록 Kickstart 템플릿 구성

사용자 지정 Kickstart 템플릿에 remote_execution_ssh_keys 스니펫을 추가하여 프로비저닝 중에 호스트에 SSH 키를 배포할 수 있습니다. Satellite에서 제공하는 Kickstart 템플릿에는 기본적으로 이 스니펫이 포함됩니다. 따라서 Satellite는 프로비저닝 중에 원격 실행을 위해 시스템에 SSH 키를 복사합니다.

절차

  • 새로 프로비저닝된 호스트에 공개 키를 포함하려면 사용하는 Kickstart 템플릿에 다음 스니펫을 추가합니다.

    <%= snippet 'remote_execution_ssh_keys' %>

3.12. Kerberos 티켓 부여 티켓 구성

다음 절차에 따라 키 탭을 사용하여 티켓을 부여하는 Kerberos 티켓을 가져오도록 Satellite를 구성합니다. keytab을 설정하지 않으면 티켓을 수동으로 검색해야 합니다.

절차

  1. foreman-proxy 사용자의 ID를 찾습니다.

    # id -u foreman-proxy
  2. 새 파일에 권한 600 이 있도록 CloudEvent 값을 수정합니다.

    # umask 077
  3. keytab의 디렉터리를 생성합니다.

    # mkdir -p "/var/kerberos/krb5/user/USER_ID"
  4. 키 탭을 생성하거나 기존 키탭을 디렉터리에 복사합니다.

    # cp your_client.keytab /var/kerberos/krb5/user/USER_ID/client.keytab
  5. 디렉터리 소유자를 foreman-proxy 사용자로 변경합니다.

    # chown -R foreman-proxy:foreman-proxy "/var/kerberos/krb5/user/USER_ID"
  6. keytab 파일이 읽기 전용인지 확인합니다.

    # chmod -wx "/var/kerberos/krb5/user/USER_ID/client.keytab"
  7. SELinux 컨텍스트를 복원하십시오.

    # restorecon -RvF /var/kerberos/krb5

3.13. 원격 실행을 위한 Kerberos 인증 구성

Kerberos 인증을 사용하여 Satellite 호스트에서 원격 실행을 위한 SSH 연결을 설정할 수 있습니다.

사전 요구 사항

  • Kerberos 서버에 Satellite Server 등록
  • Kerberos 서버에 Satellite 대상 호스트 등록
  • 원격 실행을 위해 Kerberos 사용자 계정 구성 및 초기화
  • Satellite의 foreman-proxy 사용자에게 유효한 Kerberos 티켓이 있는지 확인합니다.

절차

  1. 원격 실행을 위해 Kerberos 인증을 설치 및 활성화하려면 다음 명령을 입력합니다.

    # satellite-installer --scenario satellite \
     --foreman-proxy-plugin-remote-execution-ssh-ssh-kerberos-auth true
  2. 원격 실행을 위해 기본 사용자를 편집하려면 Satellite 웹 UI에서 Administer > Settings 로 이동하여 RemoteExecution 탭을 클릭합니다. SSH 사용자 행에서 두 번째 열을 편집하고 Kerberos 계정의 사용자 이름을 추가합니다.
  3. remote_execution_ effective_user 로 이동하여 두 번째 열을 편집하여 Kerberos 계정의 사용자 이름을 추가합니다.

Kerberos 인증을 사용할 준비가 되었는지 확인하려면 호스트에서 원격 작업을 실행합니다.

3.14. 작업 템플릿 설정

Satellite는 작업 실행에 사용할 수 있는 기본 작업 템플릿을 제공합니다. 작업 템플릿 목록을 보려면 호스트 > 작업 템플릿으로 이동합니다. 변경하지 않고 템플릿을 사용하려면 원격 작업 실행을 진행합니다.

기본 템플릿을 기반으로 사용하여 고유한 템플릿을 개발할 수 있습니다. 기본 작업 템플릿은 편집할 수 있도록 잠겼습니다. 템플릿을 복제하고 복제본을 편집합니다.

절차

  1. 템플릿을 복제하려면 Actions 열에서 Clone 을 선택합니다.
  2. 복제본의 고유 이름을 입력하고 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 절차 를 참조하십시오.

절차

  1. 호스트 > 모든 호스트로 이동하여 원격 작업을 실행할 대상 호스트를 선택합니다. 검색 필드를 사용하여 호스트 목록을 필터링할 수 있습니다.
  2. Select Action (작업 선택) 목록에서 Schedule Remote Job 을 선택합니다.
  3. Job invocation 페이지에서 기본 작업 설정을 정의합니다.
  4. Job category (작업 카테고리)와 사용할 Job template 을 선택합니다.
  5. 선택 사항: Bookmark 목록에서 저장된 검색 문자열을 선택하여 대상 호스트를 지정합니다.
  6. 선택 사항: 검색 쿼리를 입력하여 대상 호스트를 제한합니다. Resolves to line은 쿼리의 영향을 받는 호스트 수를 표시합니다. 새로 고침 버튼을 사용하여 쿼리를 변경한 후 숫자를 다시 계산합니다. 프리뷰 아이콘은 대상 호스트가 나열됩니다.
  7. 나머지 설정은 선택한 작업 템플릿에 따라 다릅니다. 템플릿에 사용자 지정 매개변수를 추가하는 방법에 대한 자세한 내용은 작업 템플릿 생성을 참조하십시오.
  8. 선택 사항: 작업의 고급 설정을 구성하려면 고급 필드 표시를 클릭합니다. 고급 설정 중 일부는 작업 템플릿에 따라 달라지며 다음 설정은 일반적입니다.

    • effective 사용자는 기본적으로 작업을 실행할 사용자를 정의합니다. 기본적으로 SSH 사용자입니다.
    • 동시성 수준은 한 번에 실행되는 최대 작업 수를 정의하므로 다수의 호스트에서 작업을 실행하는 경우 시스템 리소스 과부하를 방지할 수 있습니다.
    • 종료 시간 초과는 작업이 아직 완료되지 않은 경우 종료되어야 하는 시간 간격(초)을 정의합니다. 예를 들어 이전 작업을 완료하는 데 시간이 너무 오래 걸리는 경우, 예를 들어 정의된 간격 중에 시작할 수 없는 작업이 취소됩니다.
    • 유형의 쿼리 는 검색 쿼리가 평가될 때를 정의합니다. 이는 예약된 작업에 대한 쿼리를 최신 상태로 유지하는 데 도움이 됩니다.
    • 실행 순서에 따라 호스트에서 작업이 실행되는 순서에 따라 알파벳 또는 무작위로 지정됩니다.

      동시성 수준 및 종료 설정을 통해 작업 실행을 인프라 하드웨어 및 요구 사항에 맞게 조정할 수 있습니다.

  9. 작업을 즉시 실행하려면 일정이 Execute now 로 설정되어 있는지 확인합니다. 일회성 향후 작업을 정의하거나 반복 작업을 설정할 수도 있습니다. 반복 작업의 경우 시작 및 종료 날짜, 실행 수 및 빈도를 정의할 수 있습니다. cron 구문을 사용하여 반복을 정의할 수도 있습니다. cron에 대한 자세한 내용은 Red Hat Enterprise Linux 7 시스템 관리자 가이드의 시스템 작업 자동 섹션을 참조하십시오.
  10. Submit 을 클릭합니다. 그러면 작업 개요 페이지가 표시되고 작업이 완료되면 작업 상태도 표시됩니다.

CLI 절차

  • Satellite에서 다음 명령을 입력합니다.
# hammer settings set --name=remote_execution_global_proxy --value=false

사용자 지정 매개변수를 사용하여 원격 작업을 실행하려면 다음 단계를 완료합니다.

  1. 사용할 작업 템플릿의 ID를 찾습니다.

    # hammer job-template list
  2. 템플릿에 필요한 매개변수를 보려면 템플릿 세부 정보를 표시합니다.

    # hammer job-template info --id template_ID
  3. 사용자 지정 매개변수를 사용하여 원격 작업을 실행합니다.

    # hammer job-invocation create \
    --job-template "template_name" \
    --inputs key1="value",key2="value",... \
    --search-query "query"

    query 를 호스트를 정의하는 필터 표현식으로 바꿉니다(예: "name ~ rex01" ). hammer로 원격 명령을 실행하는 방법에 대한 자세한 내용은 hammer job-template --helphammer job-invocation --help 를 입력합니다.

3.16. 작업 모니터링

실행 중인 작업의 진행 상황을 모니터링할 수 있습니다. 이는 필요할 수 있는 모든 문제 해결에 도움이 될 수 있습니다.

Ansible 작업은 호스트 100개로 이루어진 일괄 처리에서 실행되므로 특정 호스트에서 실행 중인 작업을 취소할 수 없습니다. 작업은 Ansible 플레이북이 배치의 모든 호스트에서 실행된 후에만 완료됩니다.

절차

  1. Job(작업) 페이지로 이동합니다. 이 페이지는 Execute now 설정으로 작업을 트리거한 경우 자동으로 표시됩니다. 예약된 작업을 모니터링하려면 Monitor > Jobs 로 이동하여 검사할 작업 실행을 선택합니다.
  2. 작업 페이지에서 호스트 탭을 클릭합니다. 그러면 작업이 실행 중인 호스트 목록이 표시됩니다.
  3. Host 열에서 검사할 호스트의 이름을 클릭합니다. 그러면 작업 실행을 실시간으로 모니터링할 수 있는 명령 페이지의 세부 정보가 표시됩니다.
  4. 언제든지 Back to Job 을 클릭하여 Job Details 페이지로 돌아갑니다.

CLI 절차

실행 중인 작업의 진행 상황을 모니터링하려면 다음 단계를 완료합니다.

  1. 작업 ID를 찾습니다.

    # hammer job-invocation list
  2. 작업 출력을 모니터링합니다.

    # hammer job-invocation output \
    --id job_ID \
    --host host_name
  3. 선택 사항: 작업을 취소하려면 다음 명령을 입력합니다.

    # hammer job-invocation cancel \
    --id job_ID

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 역할을 Satellite Server 사용자에게 할당해야 합니다. 사용자, 역할 및 권한 필터 관리에 대한 자세한 내용은 Red Hat Satellite 관리에서 역할 생성 및 관리를 참조하십시오.
  • 동일한 네트워크 또는 서브넷에서 Satellite 서버 및 Ansible Tower를 호스팅해야 합니다.

절차

  1. Ansible Tower 웹 UI에서 Satellite에 대한 자격 증명을 생성합니다. 자격 증명 생성에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 새 자격 증명 및 Red Hat Satellite 6 자격 증명 추가 를 참조하십시오.

    표 4.1. Satellite 인증 정보
    인증 정보 유형:Red Hat Satellite 6

    Satellite 6 URL:

    https://satellite.example.com

    사용자 이름:

    통합 역할이 있는 Satellite 사용자의 사용자 이름입니다.

    암호:

    Satellite 사용자의 암호입니다.

  2. Ansible Tower 사용자를 새 자격 증명에 추가합니다. 자격 증명에 사용자를 추가하는 방법에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 자격 증명 시작하기 를 참조하십시오.
  3. 새 인벤토리를 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 새 인벤토리 추가 를 참조하십시오.
  4. 새 인벤토리에서 다음 인벤토리 소스 옵션을 지정하여 Satellite 서버를 인벤토리 소스로 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드에서 소스 추가 를 참조하십시오.

    표 4.2. 인벤토리 소스 옵션
    소스Red Hat Satellite 6

    인증 정보

    Satellite Server에 대해 생성한 자격 증명입니다.

    overwrite

    선택 사항

    변수 덮어쓰기

    선택 사항

    시작 시 업데이트

    선택 사항

    캐시 시간 제한

    90

  5. 추가하는 소스를 동기화해야 합니다.

4.2. 호스트에 대한 프로비저닝 콜백 구성

Satellite에서 호스트를 생성할 때 Ansible Tower를 사용하여 새로 생성된 호스트를 구성하는 플레이북을 실행할 수 있습니다. 이를 Ansible Tower에서 프로비저닝 콜백 이라고 합니다.

프로비저닝 콜백 함수는 프로비저닝 프로세스의 일부로 Ansible Tower에서 실행되는 플레이북을 트리거합니다. 플레이북은 Kickstart를 배포한 후 호스트를 구성합니다.

프로비저닝 콜백에 대한 자세한 내용은 Ansible Tower 사용자 가이드에서 콜백 프로비저닝 을 참조하십시오.

Satellite Server에서 Kickstart 기본값 및 Kickstart Default Finish 템플릿에는 다음 세 가지 스니펫이 포함됩니다.

  1. ansible_provisioning_callback
  2. ansible_tower_callback_script
  3. ansible_tower_callback_service

호스트 또는 호스트 그룹에 매개변수를 추가하여 이러한 스니펫에서 새로 생성된 호스트에서 Ansible 플레이북을 실행하는 데 사용할 수 있는 자격 증명을 제공할 수 있습니다.

사전 요구 사항

프로비저닝 콜백을 구성하려면 먼저 Ansible Tower에서 Satellite를 동적 인벤토리로 추가해야 합니다. 자세한 내용은 Satellite 및 Ansible Tower 통합을 참조하십시오.

Ansible Tower 웹 UI에서 다음 작업을 완료해야 합니다.

  1. 새 호스트에 대한 시스템 자격 증명을 생성합니다. Satellite에서 생성하는 호스트에 할당하려는 자격 증명에 동일한 암호를 입력해야 합니다. 자세한 내용은 Ansible Tower 사용자 가이드에서 새 자격 증명 추가 를 참조하십시오.
  2. 프로젝트를 생성합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 프로젝트를 참조하십시오.
  3. 프로젝트에 작업 템플릿을 추가합니다. 자세한 내용은 Ansible Tower 사용자 가이드의 작업 템플릿을 참조하십시오.
  4. 작업 템플릿에서 프로비저닝 콜백을 활성화하고, 호스트 구성 키를 생성하고, 작업 템플릿의 template_ID 를 기록해야 합니다. 작업 템플릿에 대한 자세한 내용은 Ansible Tower 사용자 가이드의 작업 템플릿을 참조하십시오.

절차

  1. Red Hat Satellite 웹 UI에서 Configure > Host Group 으로 이동합니다.
  2. 호스트 그룹을 생성하거나 기존 호스트 그룹을 편집합니다.
  3. Host Group 창에서 Parameters 탭을 클릭합니다.
  4. 매개 변수 추가를 클릭합니다.
  5. 각 새 매개변수에 대해 다음 정보를 입력합니다.

    표 4.3. 호스트 매개변수
    이름현재의설명

    ansible_tower_provisioning

    true

    프로비저닝 콜백을 활성화합니다.

    ansible_tower_fqdn

    tower.example.com

    Ansible Tower의 정규화된 도메인 이름(FQDN)입니다. Ansible Tower에서 추가되므로 https 를 추가하지 마십시오.

    ansible_job_template_id

    template_ID

    템플릿의 URL에서 찾을 수 있는 프로비저닝 템플릿의 ID: /templates/job_template/5.

    ansible_host_config_key

    config_KEY

    작업 템플릿이 Ansible Tower에서 생성하는 호스트 구성 키입니다.

  6. Submit 을 클릭합니다.
  7. 호스트 그룹을 사용하여 호스트를 생성합니다.
  8. 새 호스트에서 다음 명령을 입력하여 ansible-callback 서비스를 시작합니다.

    # systemctl start ansible-callback
  9. 새 호스트에서 다음 명령을 입력하여 ansible-callback 서비스의 상태를 출력합니다.

    # systemctl status ansible-callback

    명령에서 다음 출력을 반환하는 경우 프로비저닝 콜백이 올바르게 구성됩니다.

    SAT_host systemd[1]: Started Provisioning callback to Ansible Tower...

수동 프로비저닝 콜백

프로비저닝 콜백 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/

프로비저닝 콜백 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' %>

위의 템플릿은 렌더링된 템플릿의 매개변수 값을 직접 지정합니다. 또한 input() 메서드를 사용하여 사용자가 작업 실행 시 렌더링된 템플릿에 대한 입력을 정의할 수 있습니다. 예를 들어 다음 구문을 사용할 수 있습니다.

<%= 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 이라는 템플릿을 생성하는 방법을 보여줍니다.

  1. 호스트 > 작업 템플릿으로 이동합니다. New Job Template 을 클릭합니다.
  2. Name 필드에 Run Command - restorecon 을 입력합니다. 모든 조직에서 템플릿을 사용할 수 있도록 하려면 기본값 을 선택합니다. 템플릿 편집기에 다음 텍스트를 추가합니다.

    restorecon -RvF <%= input("directory") %>

    & lt;%= input("directory") % > 문자열은 작업을 호출하는 동안 사용자 정의 디렉터리로 교체됩니다.

  3. Job 탭에서 Job categoryCommands 로 설정합니다.
  4. Add Input (입력 추가)을 클릭하여 작업 사용자 지정을 허용합니다. Name 필드에 directory 를 입력합니다. 입력 이름은 템플릿 편집기에 지정된 값과 일치해야 합니다.
  5. user specified 매개 변수 없이 명령을 실행할 수 없도록 Required 를 클릭합니다.
  6. 입력 유형 목록에서 사용자 입력을 선택합니다. 작업 호출 중에 표시할 설명을 입력합니다(예: restorecon의 대상 디렉터리 ).
  7. 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") %>

A.5. 여러 호스트에서 restorecon 템플릿 실행

이 예제에서는 여러 호스트에서 예제 restorecon 템플릿에 생성된 템플릿을 기반으로 작업을 실행하는 방법을 보여줍니다. 작업은 /home/ 디렉터리에 있는 모든 파일에 SELinux 컨텍스트를 복원합니다.

  1. 호스트 > 모든 호스트로 이동하고 대상 호스트를 선택합니다. Select Action (작업 선택) 목록에서 Schedule Remote Job (원격 작업 예약)을 선택합니다.
  2. Job invocation 페이지에서 Commands 작업 카테고리와 Run Command - restorecon 작업 템플릿을 선택합니다.
  3. 디렉터리 필드에 /home 을 입력합니다.
  4. ScheduleExecute now 로 설정합니다.
  5. Submit 을 클릭합니다. 작업 실행 상태를 모니터링할 수 있는 Job invocation 페이지로 이동합니다.

A.6. 템플릿에 전원 작업 포함

이 예에서는 재부팅과 같은 전원 작업 수행을 위한 작업 템플릿을 설정하는 방법을 보여줍니다. 이 절차에서는 재부팅 시 연결 해제 예외를 오류로 해석하지 않으므로 원격 작업이 제대로 실행됩니다.

작업 템플릿 설정에 설명된 대로 새 템플릿을 생성하고 템플릿 편집기에서 다음 문자열을 지정합니다.

<%= render_template("Power Action - SSH Default", :action => "restart") %>

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.