Red Hat Satellite에서 Puppet 통합을 사용하여 구성 관리
Puppet 통합을 사용하여 호스트 구성을 관리하고 호스트 시스템 상태를 Satellite에 보고
초록
Red Hat 문서에 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Red Hat Jira에서 문제 생성 양식을 사용하여 피드백을 제공합니다. Jira 문제는 Red Hat Satellite Jira 프로젝트에서 생성되어 진행 상황을 추적할 수 있습니다.
사전 요구 사항
- Red Hat 계정을 등록했는지 확인합니다.
절차
- 다음 링크를 클릭합니다. 문제 만들기. Jira가 로그인 오류를 표시하는 경우 양식으로 리디렉션된 후 로그인하고 계속 진행합니다.
- 요약 및 설명 필드를 작성합니다. 설명 필드에 문서 URL, 장 또는 섹션 번호, 문제에 대한 자세한 설명을 포함합니다. 양식의 다른 필드를 수정하지 마십시오.
- 생성을 클릭합니다.
1장. Puppet을 사용하여 구성 관리 소개 링크 복사링크가 클립보드에 복사되었습니다!
Puppet을 사용하여 호스트 구성을 관리하고 자동화할 수 있습니다. Puppet은 선언적 언어를 사용하여 원하는 관리 호스트 상태를 설명합니다.
Puppet은 여러 호스트를 동시에 관리할 수 있으므로 생산성을 높입니다. 동시에 Puppet을 사용하면 호스트 상태를 쉽게 확인하고 수정할 수 있으므로 구성 작업이 감소합니다.
추가 리소스
- 오픈 소스 Puppet 문서
- Puppet Forge ECDHE-ECDHEa 사전 빌드된 Puppet 모듈 리포지토리
1.1. Puppet을 Satellite와 통합하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
Puppet은 server-agent 아키텍처를 사용합니다. Puppet 서버는 구성 정의를 저장하는 중앙 구성 요소입니다. Satellite Server 또는 Capsule은 일반적으로 Puppet 서버와 Satellite를 사용하여 이러한 Puppet 서버의 ENC(외부 노드 분류기) 역할을 하여 배포됩니다. 관리 호스트는 Puppet 서버와 통신하는 Puppet 에이전트를 실행합니다.
Puppet 에이전트는 호스트에 대한 팩트 를 수집하고 각 실행 시 Puppet 서버에 보고합니다. 호스트에서 puppet 팩트를 실행하여 Puppet 팩트 를 JSON 형식으로 표시할 수 있습니다.
Puppet 서버는 나중에 사용할 수 있도록 팩트 를 Satellite 및 Satellite에 전달합니다. 사실 및 기타 정의를 기반으로 Satellite는 Puppet 서버에 ENC 응답을 구성합니다. Puppet 서버는 ENC 응답을 기반으로 카탈로그 를 컴파일하고 카탈로그 를 Puppet 에이전트로 보냅니다.
Puppet 에이전트는 호스트에서 시스템 상태를 평가합니다. Puppet 에이전트에서 드리프트 라고 하는 차이점을 발견하면 카탈로그에 정의된 원하는 상태와 실제 상태 사이에서 호스트 상태를 수정합니다. 그런 다음 Puppet 에이전트는 수정 결과를 Puppet 서버에 다시 보고하여 Satellite에 보고합니다.
Puppet 모듈
원하는 호스트 상태는 카탈로그에 정의됩니다. 카탈로그 는 호스트에 할당된 하나 이상의 Puppet 모듈로 구성된 Puppet 매니페스트에서 컴파일됩니다. Puppet 모듈은 클래스, 매니페스트, 리소스, 파일 및 템플릿의 컬렉션입니다. Puppet 모듈은 호스트 구성 정의의 구성 요소로 작동합니다.
스마트 클래스 매개변수
모듈에서 매개변수 사용을 지원하는 경우 Smart Class 매개변수를 사용하여 Puppet 모듈의 매개변수를 재정의할 수 있습니다. Satellite의 매개 변수를 호스트 매개 변수 또는 Ansible 변수와 유사한 키-값 쌍으로 정의할 수 있습니다.
Puppet 환경
여러 Puppet 환경을 생성하여 구성 정의 버전을 제어하거나 정의 변형을 관리하고, 프로덕션에 배포하기 전에 정의를 테스트할 수도 있습니다.
높은 수준의 통합 단계
Puppet Satellite와 Satellite 통합에는 다음과 같은 고급 단계가 포함됩니다.
- Puppet 통합을 활성화합니다.
- Puppet 에이전트 패키지를 Satellite로 가져옵니다. Puppet 에이전트 패키지는 Red Hat 리포지토리를 활성화하고 활성화 키 및 콘텐츠 뷰를 사용하여 Satellite를 사용하여 다른 컨텐츠 와 마찬가지로 관리할 수 있습니다.
- 프로비저닝 중 호스트에 Puppet 에이전트를 설치,등록,수동으로 또는 원격 작업 실행을 통해.
추가 리소스
- 콘텐츠 관리
- 호스트 관리 가이드에서 호스트등록
- 호스트 관리 가이드에서 원격 작업 구성 및 설정
다음 절차에서는 Puppet 모듈을 사용하여 ntp 서비스를 설치, 구성, 관리하는 방법을 간략하게 설명합니다.
1.2. 지원되는 Puppet 버전 및 시스템 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
Puppet 통합을 시작하기 전에 지원되는 Puppet 버전 및 시스템 요구 사항을 검토하십시오.
- 지원되는 Puppet 버전
Satellite는 다음 Puppet 버전을 지원합니다.
- Puppet 7
- 시스템 요구 사항
- Puppet을 Satellite와 통합하기 전에 시스템 요구 사항을 충족해야 합니다. 자세한 내용은 오픈 소스 Puppet 설명서에서 Puppet 7의 시스템 요구 사항을 참조하십시오.
1.3. Satellite와 Puppet 통합 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Satellite에는 Puppet 통합이 구성되어 있지 않습니다. 상황에 적합한 경우 통합을 활성화해야 합니다. 즉, Satellite Server 또는 Capsule에 Puppet 서버를 관리하고 배포하도록 Satellite를 구성할 수 있습니다. 또한 Puppet 서버를 외부에서 Satellite에 배포하고 이를 Satellite와 통합하여 ENC(외부 노드 분류)를 보고, 팩트 및 외부 노드 분류를 수행할 수 있습니다.
절차
Puppet 통합을 활성화하고 Satellite 서버에 Puppet 서버를 설치합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule에서 Puppet 통합을 사용하려면 Puppet 통합을 활성화하고 Capsule에 Puppet 서버를 설치합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --puppet-server-foreman-url인수 값으로 Satellite 서버의 URL을 입력합니다.
1.4. 호스트 프로비저닝 중 Puppet 에이전트 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
프로비저닝 프로세스 중에 호스트에 Puppet 에이전트를 설치하고 구성할 수 있습니다. Satellite와 Puppet 통합을 위해 호스트에 구성된 Puppet 에이전트가 필요합니다.
사전 요구 사항
- Satellite에서 Puppet을 활성화해야 합니다. 자세한 내용은 1.3절. “Satellite와 Puppet 통합 활성화”의 내용을 참조하십시오.
- Satellite Client 6 리포지토리를 Satellite에 활성화하고 동기화합니다. 자세한 내용은 콘텐츠 관리에서 콘텐츠 가져오기를 참조하십시오.
- 호스트에 대해 Satellite Client 6 리포지토리를 활성화하는 활성화 키를 생성하셨습니다. 자세한 내용은 콘텐츠 관리의 활성화 키 관리를 참조하십시오.
절차
- 호스트 > 프로비저닝 템플릿으로 이동합니다.
- 호스트 프로비저닝 방법에 따라 프로비저닝 템플릿을 선택합니다. 자세한 내용은 프로비저닝 호스트의 프로비저닝 템플릿 유형을 참조하십시오.
puppet_setup스니펫이 다음과 같이 포함되어 있는지 확인합니다.<%= snippet 'puppet_setup' %>
<%= snippet 'puppet_setup' %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 스니펫은
Kickstart 기본값 또는과 같이 Satellite와 함께 제공되는 템플릿에 이미 포함되어 있습니다.사전정의된 기본값-
글로벌 매개 변수, 호스트 그룹 또는 단일 호스트에서 호스트 매개 변수를 사용하여 Puppet 에이전트를 활성화합니다.
enable-puppet7이라는 호스트 매개 변수를 추가하고 부울 유형을 선택한 다음 값을true로 설정합니다. Puppet 에이전트에 대한 구성을 설정합니다.
- 통합된 Puppet 서버를 사용하는 경우 호스트를 생성할 때 Puppet Capsule, Puppet CA Capsule 및 Puppet 환경을 선택해야 합니다.
통합되지 않은 Puppet 서버를 사용하는 경우 전역 매개변수 또는 호스트 그룹에서 다음 호스트 매개변수를 설정하거나 호스트를 생성할 때 다음을 수행하십시오.
-
puppet_server라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음,puppet.example.com과 같은 Puppet 서버의 호스트 이름으로 값을 설정합니다. -
선택 사항:
puppet_ca_server라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음,puppet-ca.example.com과 같은 Puppet CA 서버의 호스트 이름으로 값을 설정합니다.puppet_ca_server가 설정되지 않은 경우 Puppet 에이전트는puppet_server와 동일한 서버를 사용합니다. -
선택 사항:
puppet_environment라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음 호스트에서 사용할 Puppet 환경으로 값을 설정합니다.
-
- 적절한 활성화 키를 사용하여 호스트가 Satellite 서버에서 Puppet 에이전트 패키지에 액세스할 수 있는지 확인합니다.
1.5. 호스트 등록 시 Puppet 에이전트 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
등록하는 동안 호스트에 Puppet 에이전트를 설치하고 구성할 수 있습니다. Satellite와 Puppet 통합을 위해 호스트에 구성된 Puppet 에이전트가 필요합니다.
사전 요구 사항
- Satellite에서 Puppet을 활성화해야 합니다. 자세한 내용은 1.3절. “Satellite와 Puppet 통합 활성화”의 내용을 참조하십시오.
- Satellite Client 6 리포지토리를 Satellite에 활성화하고 동기화합니다. 자세한 내용은 콘텐츠 관리에서 콘텐츠 가져오기를 참조하십시오.
- 호스트에 대해 Satellite Client 6 리포지토리를 활성화하는 활성화 키를 생성하셨습니다. 자세한 내용은 콘텐츠 관리의 활성화 키 관리를 참조하십시오.
절차
- Satellite 웹 UI에서 Configure > Global Parameters 로 이동하여 호스트 매개 변수를 전역적으로 추가합니다. 또는 Configure > Host Groups 으로 이동하여 호스트 그룹을 편집하거나 생성하여 호스트 매개 변수를 호스트 그룹에만 추가할 수 있습니다.
-
글로벌 매개 변수 또는 호스트 그룹에서 host 매개 변수를 사용하여 Puppet 에이전트를 활성화합니다.
enable-puppet7이라는 호스트 매개 변수를 추가하고 부울 유형을 선택한 다음 값을true로 설정합니다. 전역 매개변수 또는 호스트 그룹에서 다음 호스트 매개변수를 사용하여 Puppet 에이전트의 구성을 지정합니다.
-
puppet_server라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음,puppet.example.com과 같은 Puppet 서버의 호스트 이름으로 값을 설정합니다. -
선택 사항:
puppet_ca_server라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음,puppet-ca.example.com과 같은 Puppet CA 서버의 호스트 이름으로 값을 설정합니다.puppet_ca_server가 설정되지 않은 경우 Puppet 에이전트는puppet_server와 동일한 서버를 사용합니다. -
선택 사항:
puppet_environment라는 호스트 매개 변수를 추가하고 문자열 유형을 선택한 다음 호스트에서 사용할 Puppet 환경으로 값을 설정합니다.
BZ2177730 이 해결될 때까지는 호스트 매개변수를 사용하여 Puppet 서버가 Capsule Server인 통합 설정에서 Puppet 에이전트 구성을 지정해야 합니다.
-
- 호스트 > 호스트 등록 으로 이동하여 적절한 활성화 키를 사용하여 호스트를 등록합니다. 자세한 내용은 호스트 관리의 호스트 등록을 참조하십시오.
- Infrastructure > Capsules 로 이동합니다.
- 필수 Capsule Server에 대한 Actions (작업) 열의 목록에서 CloudEvent 를 선택합니다.
- 필요한 호스트 오른쪽에 있는 Sign 을 클릭하여 Puppet 에이전트의 SSL 인증서에 서명합니다.
1.6. 수동으로 Puppet 에이전트 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스트에 Puppet 에이전트를 수동으로 설치하고 구성할 수 있습니다. Satellite와 Puppet 통합을 위해 호스트에 구성된 Puppet 에이전트가 필요합니다.
사전 요구 사항
- Satellite에서 Puppet을 활성화해야 합니다. 자세한 내용은 1.3절. “Satellite와 Puppet 통합 활성화”의 내용을 참조하십시오.
- 호스트에는 Puppet 환경이 할당되어 있어야 합니다.
- Satellite Client 6 리포지토리를 활성화하고 Satellite Server에 동기화하고 호스트에 활성화해야 합니다. 자세한 내용은 콘텐츠 관리에서 콘텐츠 가져오기를 참조하십시오.
절차
-
root사용자로 호스트에 로그인합니다. Puppet 에이전트 패키지를 설치합니다.
Red Hat Enterprise Linux 8 이상을 실행하는 호스트의 경우:
dnf install puppet-agent
# dnf install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 7 이하를 실행하는 호스트의 경우:
yum install puppet-agent
# yum install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 스크립트를 사용하여 현재 쉘의
PATH에 Puppet 에이전트를 추가합니다.. /etc/profile.d/puppet-agent.sh
. /etc/profile.d/puppet-agent.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow Puppet 에이전트를 구성합니다.
환경매개변수를 호스트가 속한 Puppet 환경의 이름으로 설정합니다.puppet config set server satellite.example.com --section agent puppet config set environment My_Puppet_Environment --section agent
# puppet config set server satellite.example.com --section agent # puppet config set environment My_Puppet_Environment --section agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Puppet 에이전트 서비스를 시작합니다.
puppet resource service puppet ensure=running enable=true
# puppet resource service puppet ensure=running enable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에 대한 인증서를 생성합니다.
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite 웹 UI에서 Infrastructure > Capsules 로 이동합니다.
- 필수 Capsule Server에 대한 Actions (작업) 열의 목록에서 CloudEvent 를 선택합니다.
- 필요한 호스트 오른쪽에 있는 Sign 을 클릭하여 Puppet 에이전트의 SSL 인증서에 서명합니다.
호스트에서 Puppet 에이전트를 다시 실행합니다.
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. 구성 관리 수행 링크 복사링크가 클립보드에 복사되었습니다!
호스트에 Puppet 에이전트를 배포한 후 Puppet으로 구성 관리를 수행할 수 있습니다. 여기에는 다음과 같은 고급 단계가 포함됩니다.
- Puppet 서버에서 Puppet 모듈을 설치 및 업데이트합니다.
- Puppet 모듈에서 Satellite로 Puppet 클래스 및 환경 가져오기.
- 선택사항: Puppet 클래스에서 구성 그룹 생성.
- 다양한 수준에서 스마트 클래스 매개 변수의 덮어쓰기 구성.
- 호스트 그룹 또는 개별 호스트에 Puppet 클래스 또는 구성 그룹을 할당합니다.
- 호스트에서 Puppet 에이전트 실행 및 Puppet 서버의 구성 적용 실행 간격 구성.
- Satellite 웹 UI의 보고서를 사용하여 구성 관리 모니터링. 자세한 내용은 Monitoring Resources in Administering Red Hat Satellite 를 참조하십시오.
- 이메일 알림 구성. 자세한 내용은 Red Hat Satellite 관리에서 이메일 알림 기본 설정 구성 을 참조하십시오.
Puppet 클래스 또는 구성 그룹을 할당한 후 Satellite는 구성된 간격으로 구성 관리를 자동으로 실행하여 관리 호스트에 Puppet 구성을 적용하거나 필요에 따라 Puppet once 실행 기능을 사용하여 수동으로 시작할 수 있습니다. 자세한 내용은 9.1절. “SSH를 사용하여 Puppet 한 번 실행”의 내용을 참조하십시오.
1.8. Satellite를 통한 Puppet 통합 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
Satellite에서 Puppet 사용을 중단하려면 다음 절차를 따르십시오.
--remove-all-data 인수가 없는 명령은 Satellite 데이터베이스의 모든 Puppet 관련 데이터를 제거합니다. 이 명령은 --remove-all-data 인수를 사용하여 Puppet 환경을 포함하여 Puppet 서버 데이터 파일을 추가로 제거합니다.
--remove-all-data 인수를 사용하여 Puppet을 비활성화하면 나중에 Puppet을 다시 활성화할 수 없습니다. 이는 알려진 문제입니다. 버그 2087067 을 참조하십시오.
사전 요구 사항
- Puppet은 Satellite에서 활성화됩니다.
절차
Capsule에서 Puppet 서버를 사용한 경우 모든 Capsule에서 Puppet 서버를 비활성화합니다.
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite 서버에서 Puppet 서버를 비활성화합니다.
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2장. Puppet 모듈 관리 링크 복사링크가 클립보드에 복사되었습니다!
2.1. Satellite 서버에 Puppet 모듈 설치 링크 복사링크가 클립보드에 복사되었습니다!
Puppet Forge에서 사전 빌드된 Puppet 모듈을 설치할 수 있습니다. Puppet Forge는 커뮤니티에서 기여한 Puppet 모듈을 제공하는 리포지토리입니다. 지원으로 플래그가 지정된 Puppet 모듈은 공식적으로 Puppet Inc에서 테스트하고 있습니다.
이 예제에서는 관리 호스트에 ntp 모듈을 추가하는 방법을 보여줍니다.
절차
-
forge.puppet.com 으로 이동하여
ntp를 검색합니다. 첫 번째 모듈 중 하나는 puppetlabs/ntp 입니다. SSH를 사용하여 Satellite 서버에 연결하고 Puppet 모듈을 설치합니다.
puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modules
# puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow -i매개변수를 사용하여 경로와 Puppet 환경을 지정합니다(예:production).설치가 완료되면 출력은 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Puppet 모듈을 설치하는 다른 방법은 위에서 언급한 대로 Puppet 모듈이 포함된 폴더를 모듈 경로에 복사하는 것입니다. 해당 종속성을 수동으로 해결하십시오.
2.2. Puppet 모듈 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
puppet 명령을 사용하여 기존 Puppet 모듈을 업데이트할 수 있습니다.
절차
SSH를 사용하여 Puppet 서버에 연결하고 Puppet 모듈이 있는 위치를 확인합니다.
puppet config print modulepath
# puppet config print modulepathCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이 출력이 반환됩니다.
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modules
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위에 표시된 대로 모듈이 경로에 있는 경우 다음 명령은 모듈을 업데이트합니다.
puppet module upgrade module name
# puppet module upgrade module nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3장. Puppet 클래스 및 환경을 Satellite로 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
클래스를 관리 호스트에 할당하기 전에 설치된 Puppet 모듈에서 Satellite Server 또는 연결된 Capsule Server로 Puppet 클래스 및 환경을 가져옵니다.
사전 요구 사항
- 모든 조직 및 컨텍스트로 모든 위치를 선택해야 합니다. 그렇지 않으면 가져오기에 실패할 수 있습니다.
절차
- Satellite 웹 UI에서 Configure > Classes 또는 Configure > Environments로 이동합니다.
- 오른쪽 상단 모서리에서 가져오기 버튼을 클릭하고 모듈을 가져올 Capsule을 선택합니다. 일반적으로 Satellite Server 또는 연결된 Capsule Server 중에서 선택할 수 있습니다.
- 왼쪽에서 확인란을 사용하여 가져올 Puppet 환경을 선택합니다.
- Update 버튼을 클릭하여 Puppet 환경 및 클래스를 Satellite로 가져옵니다.
가져오기에 다음과 같이 알림이 발생해야 합니다.
Successfully updated environments and Puppet classes from the on-disk Puppet installation
Successfully updated environments and Puppet classes from the on-disk Puppet installationCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. 사용자 지정 Puppet 환경 생성 링크 복사링크가 클립보드에 복사되었습니다!
Satellite에 Puppet 환경을 생성할 수 있습니다.
절차
- Satellite 웹 UI에서 Configure > Puppet Environments 로 이동합니다.
- Puppet 환경 생성을 클릭하여 Puppet 환경을 생성합니다.
-
example_environment와 같이 이름, 영숫자 및 밑줄을 입력합니다. - 선택 사항: 위치 컨텍스트를 설정합니다.
- 선택 사항: 조직 컨텍스트를 설정합니다.
- Submit 을 클릭하여 Puppet 환경을 만듭니다.
Puppet 모듈을 Satellite로 가져오기 전에 환경이 이미 Puppet 서버의 /etc/puppetlabs/code/environments/example_environment 폴더로 있어야 하며 설치된 Puppet 모듈이 포함되어 있어야 합니다.
5장. Puppet 구성 그룹 생성 링크 복사링크가 클립보드에 복사되었습니다!
Puppet 구성 그룹은 기능을 결합하고 클릭 한 번에 관리 호스트에 할당할 수 있는 Puppet 클래스의 이름이 지정된 목록입니다. 이는 순수 Puppet의 프로필 개념과 동일합니다.
절차
- Satellite 웹 UI에서 Configure > Config Groups로 이동합니다.
- Create Config Group 버튼을 클릭합니다.
구성 그룹에 추가할 클래스를 선택합니다.
- Puppet 구성 그룹의 의미 있는 이름을 선택합니다.
- 선택한 Puppet 클래스를 포함된 클래스 필드에 추가합니다.
- Submit 을 클릭하여 변경 사항을 저장합니다.
6장. Puppet 스마트 클래스 매개변수 구성 링크 복사링크가 클립보드에 복사되었습니다!
6.1. Puppet 매개 변수 계층 구조 링크 복사링크가 클립보드에 복사되었습니다!
Puppet 매개변수는 계층적으로 구조화됩니다. 더 낮은 수준의 매개변수는 더 높은 수준의 매개변수를 재정의합니다.
- 전역 매개변수
- 조직 매개변수
- 위치 매개변수
- 호스트 그룹 매개변수
- 호스트 매개변수
예를 들어 호스트별 매개변수는 상위 수준에서 매개변수를 재정의하고 위치 매개 변수는 조직 또는 글로벌 수준의 매개변수만 재정의합니다. 이 기능은 위치 또는 조직을 사용하여 호스트를 그룹화할 때 특히 유용합니다.
6.2. 스마트 클래스 매개 변수 재정의 링크 복사링크가 클립보드에 복사되었습니다!
Puppet 클래스를 Satellite 서버로 가져온 후 구성할 수 있습니다. 이 예제에서는 기본 ntp 서버 목록을 덮어씁니다.
절차
- Satellite 웹 UI에서 Configure > Classes로 이동합니다.
- ntp Puppet 클래스를 선택하여 구성을 변경합니다.
- Smart Class Parameter 탭을 선택하고 서버를 검색합니다.
- Override 확인란이 선택되었는지 확인합니다.
- 매개 변수 유형 드롭다운 메뉴를 array 로 설정합니다.
ntp 서버 목록을 기본값으로 삽입합니다.
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배열을 설명하는 다른 방법은
yaml구문입니다.- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.org
- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
값을 추가한 후 Submit 버튼을 클릭합니다. 이렇게 하면 Puppet 모듈
ntp의 기본 구성이 변경됩니다.
6.3. 조직에 대한 스마트 클래스 매개 변수 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
호스트 그룹을 사용하여 한 번에 여러 호스트의 Puppet 매개변수를 덮어쓸 수 있습니다. 다음 예제에서는 컨텍스트 기반 매개변수 설정을 설명하기 위해 조직 컨텍스트를 선택합니다.
조직- 수준 Puppet 매개 변수는 위치- 수준 Puppet 매개변수로 재정의됩니다.
절차
- Satellite 웹 UI에서 Configure > Classes로 이동합니다.
- 클래스 이름을 클릭하여 클래스를 선택합니다.
- Smart Class Parameter 탭에서 매개변수를 선택합니다.
-
Order 목록을 사용하여 Puppet 매개변수의 계층을 정의합니다. 개별 호스트(
fqdn)는 가장 많은 조직 컨텍스트(조직)를 가장 덜 관련성으로 표시합니다. - 첫 번째 일치 항목을 찾은 후 추가로 일치하는 모든 매개변수를 추가하려면 ScanSetting Overrides 를 선택합니다.
- 더 구체적인 값이 정의되어 있어도 기본값을 포함하려는 경우 기본값을 확인합니다.
- 선택한 매개변수에 대한 고유 값 목록을 작성하려는 경우 Duplicates 를 선택합니다.
- matcher 필드에는 순서 목록의 속성 유형이 필요합니다.
- 일치자 추가 버튼을 사용하여 더 많은 일치자를 추가합니다.
- Submit 을 클릭하여 변경 사항을 저장합니다.
6.4. 위치에 대한 스마트 클래스 매개 변수 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
호스트 그룹을 사용하여 한 번에 여러 호스트의 Puppet 매개변수를 덮어쓸 수 있습니다. 다음 예제에서는 컨텍스트 기반 매개변수 설정을 설명하는 위치 컨텍스트를 선택합니다.
절차
- Satellite 웹 UI에서 Configure > Classes로 이동합니다.
- 클래스 이름을 클릭하여 클래스를 선택합니다.
- Smart Class Parameter 탭에서 매개변수를 선택합니다.
-
Order 목록을 사용하여 Puppet 매개변수의 계층을 정의합니다. 개별 호스트(
fqdn)는 가장 많이 및 위치 컨텍스트(위치)를 가장 관련성이 낮은 것으로 표시합니다. - 첫 번째 일치 항목을 찾은 후 추가로 일치하는 모든 매개변수를 추가하려면 ScanSetting Overrides 를 선택합니다.
- 더 구체적인 값이 정의되어 있어도 기본값을 포함하려는 경우 기본값을 확인합니다.
- 선택한 매개변수에 대한 고유 값 목록을 작성하려는 경우 Duplicates 를 선택합니다.
-
matcher 필드에는 순서 목록의 속성 유형이 필요합니다. 예를 들어 위치 컨텍스트로
페르크를 선택하고 값을 프랑스어 ntp 서버로 설정할 수 있습니다. - 일치자 추가 버튼을 사용하여 더 많은 일치자를 추가합니다.
- Submit 을 클릭하여 변경 사항을 저장합니다.
6.5. 개별 호스트에서 스마트 클래스 매개 변수 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
개별 호스트에서 매개변수를 재정의할 수 있습니다. 호스트가 여러 개 있고 단일 호스트만 변경하려는 경우에만 권장됩니다.
절차
- Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
- 호스트 이름을 클릭하여 호스트를 선택합니다.
- 편집 을 클릭합니다.
- Host 탭에서 Puppet 환경을 선택합니다.
- Puppet ENC 탭을 선택합니다.
- 덮어쓰기 버튼을 클릭하여 Puppet 매개 변수를 편집합니다.
- Submit 을 클릭하여 변경 사항을 저장합니다.
7장. 호스트 그룹에 Puppet 클래스 할당 링크 복사링크가 클립보드에 복사되었습니다!
호스트 그룹을 사용하여 ntp Puppet 클래스를 한 번에 여러 호스트에 할당합니다. 이 호스트 그룹을 기반으로 배포하는 모든 호스트에는 이 Puppet 클래스가 설치됩니다.
절차
- Satellite 웹 UI에서 Configure > Host Groups 로 이동하여 호스트 그룹을 생성하거나 기존 그룹을 편집합니다.
Host Group 탭에서 다음 매개변수를 설정합니다.
- 라이프사이클 환경은 호스트에서 특정 버전의 콘텐츠를 사용할 수 있는 단계를 설명합니다.
- 콘텐츠 뷰 는 제품으로 구성되며 콘텐츠 리포지토리의 버전 제어를 허용합니다.
- 환경을 사용하면 자체 전용 구성이 있는 호스트 그룹을 제공할 수 있습니다.
- Puppet ENC 탭으로 이동합니다.
- Puppet 클래스를 Puppet 구성 그룹이 구성된 경우 포함된 클래스 또는 포함된 구성 그룹에 추가합니다.
- Submit 을 클릭하여 변경 사항을 저장합니다.
8장. 개별 호스트에 Puppet 클래스 할당 링크 복사링크가 클립보드에 복사되었습니다!
절차
- Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
-
ntpPuppet 클래스를 추가할 호스트의 편집 버튼을 클릭합니다. - Puppet ENC 탭을 선택하고 ntp 클래스를 찾습니다.
-
ntp옆에 있는 + 기호를 클릭하여 포함된 클래스 목록에 ntp 하위 모듈을 추가합니다. 하단에서 Submit 버튼을 클릭하여 변경 사항을 저장합니다.
작은 정보개별 호스트의 Puppet 클래스 탭이 비어 있으면 적절한 Puppet 환경에 할당되어 있는지 확인합니다.
Puppet 구성을 확인합니다.
- 호스트 > 모든 호스트로 이동하여 호스트를 선택합니다.
- 상단 오버플로 메뉴에서 Legacy UI 를 선택합니다.
세부 정보에서 Puppet YAML 버튼을 클릭합니다. 이렇게 하면 다음과 유사한 출력이 생성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ntp 구성을 확인합니다.
SSH를 사용하여 호스트에 연결하고
/etc/ntp.conf의 내용을 확인합니다.이 예에서는 호스트가 CentOS 7 을 실행 중이라고 가정합니다. 다른 운영 체제는 ntp 구성 파일을 다른 경로에 저장할 수 있습니다.
작은 정보다음 명령을 실행하여 호스트에서 Puppet 에이전트를 실행해야 할 수도 있습니다.
puppet agent -t
# puppet agent -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서 다음 명령을 실행하면 클럭 동기화에 사용되는 ntp 서버가 있는지 확인합니다.
cat /etc/ntp.conf
# cat /etc/ntp.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 출력이 반환됩니다.
# ntp.conf: Managed by puppet. server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.org
# ntp.conf: Managed by puppet. server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 ntp 구성을 롤아웃하기 위해 호스트 또는 호스트 그룹에 추가할 수 있는 작동 중인 ntp 모듈이 있습니다.
9장. 관리 호스트에서 Puppet 구성 적용 링크 복사링크가 클립보드에 복사되었습니다!
Satellite의 구성을 요청 시 수동(한 번 실행)하거나 구성 가능한 간격으로 자동으로 시행할 수 있습니다.
9.1. SSH를 사용하여 Puppet 한 번 실행 링크 복사링크가 클립보드에 복사되었습니다!
관리 호스트에서 Puppet을 실행하도록 적절한 작업 템플릿을 Run Puppet once 기능에 할당합니다.
절차
- Satellite 웹 UI에서 Administer > Remote Execution Features 로 이동합니다.
-
puppet_run_host원격 실행 기능을 선택합니다. -
Run Puppet once - SSH Default작업 템플릿을 할당합니다.
작업을 실행하고 카테고리 Puppet 및 template Run 을 실행합니다. 또는 호스트 세부 정보 페이지의 Schedule Remote Job 드롭다운 메뉴에서 Run Puppet once 버튼을 클릭합니다.
Puppet once - SSH Default를 선택하여 관리 호스트에서 Puppet
9.2. 자동 적용 간격 이해 링크 복사링크가 클립보드에 복사되었습니다!
마지막 Puppet 보고서가 몇 분 내에 설정된 outofsync_interval 및 puppet_interval 의 결합된 값보다 오래된 경우 Satellite에서는 호스트가 동기화되지 않는 것으로 간주합니다. 기본적으로 관리 호스트의 Puppet 에이전트는 30분마다 실행되고 puppet_interval 은 35분으로 설정되고 글로벌 outofsync_interval 은 30분으로 설정됩니다.
호스트가 동기화되지 않은 것으로 간주되는 유효 시간은 outofsync_interval 및 puppet_interval 의 합계입니다. 예를 들어 글로벌 을 30으로 설정하고 outofsync _intervalpuppet_interval 을 60으로 설정하면 호스트 상태가 동기화되지 않도록 변경한 후 총 90분으로 설정됩니다.
9.3. 호스트에서 Puppet 에이전트 실행 간격 설정 링크 복사링크가 클립보드에 복사되었습니다!
Puppet 에이전트가 실행되고 보고서를 Satellite로 전송하는 간격을 설정합니다.
절차
- SSH를 사용하여 관리 호스트에 연결합니다.
-
Puppet 에이전트 실행 간격을
/etc/puppetlabs/puppet/puppet.conf에 추가합니다(예:runinterval = 1h).
9.4. Global Out-of-Sync Interval 설정 링크 복사링크가 클립보드에 복사되었습니다!
9.5. Puppet Out-of-Sync 간격 설정 링크 복사링크가 클립보드에 복사되었습니다!
절차
- Satellite 웹 UI에서 Administer > Settings 로 이동하여 Config Management 탭을 클릭합니다.
- Puppet 간격 필드에서 값을 기간(분)으로 설정한 후 Puppet을 사용하여 보고하는 호스트가 동기화되지 않은 것으로 간주됩니다.
9.6. 호스트 그룹에 대한 동기화 부족 간격 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
절차
- Satellite 웹 UI에서 Configure > Host Groups 로 이동합니다.
- 호스트 그룹을 선택합니다.
- Parameters 탭에서 매개 변수 추가를 클릭합니다.
-
Name 필드에
outofsync_interval을 입력합니다. -
유형 드롭다운 메뉴에서
정수를 선택합니다. - 값 필드에 새 간격을 분 단위로 입력합니다.
- Submit 버튼을 클릭합니다.
9.7. 개별 호스트에 대한 동기화 외부 간격 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
절차
- Satellite 웹 UI에서 호스트 > 모든 호스트로 이동합니다.
- 선택한 호스트에 대해 Edit 를 클릭합니다.
- Parameters 탭에서 매개 변수 추가를 클릭합니다.
-
Name 필드에
outofsync_interval을 입력합니다. -
유형 드롭다운 메뉴에서
정수를 선택합니다. - 값 필드에 새 간격을 분 단위로 입력합니다.
- Submit 버튼을 클릭합니다.