Puppet 자습서 – 구성 관리를위한 원 스톱 솔루션



Puppet Tutorial은 Puppet 블로그 시리즈의 두 번째 블로그입니다. Puppet 아키텍처, 구성 요소 및 Puppet을 사용하여 mysql 및 php를 배포하는 예제에 대해 설명합니다.

퍼펫 튜토리얼

Puppet Tutorial은 Puppet 블로그 시리즈의 두 번째 블로그입니다. '에 대한 이전 블로그를 읽으 셨기를 바랍니다. 꼭두각시 란? ”는 구성 관리와 사용 사례의 도움으로 이것이 중요한 이유를 설명합니다.

이 Puppet 자습서에서는 다음 주제를 다룹니다.





구성 관리 란 무엇입니까?

이전 블로그 , 구성 관리에 대한 소개와이를 통해 극복하는 데 도움이되는 문제를 설명했습니다. 이 Puppet Tutorial에서는 구성 관리의 다양한 상호 의존적 활동에 대해 설명합니다.하지만 그 전에 구성 항목 (CI). 구성 항목은 서비스를 성공적으로 제공하기 위해 관리해야하는 서비스 구성 요소, 인프라 요소 또는 기타 항목입니다. CI의 예로는 개별 요구 사항 문서, 소프트웨어, 모델 및 계획이 있습니다.



자바의 토큰은 무엇입니까

구성 관리는 다음 요소로 구성됩니다.

  • 구성 식별
  • 변경 관리
  • 구성 상태 회계
  • 구성 감사

아래 다이어그램은 이러한 구성 요소를 설명합니다.

구성 관리 구성 요소-Puppet 자습서-Edureka



구성 식별 : 다음과 같은 과정입니다.

  • 고유 식별자로 소프트웨어 및 하드웨어 구성 항목에 레이블 지정
  • 구성 항목을 설명하는 문서 식별
  • 관련 구성 항목을 기준으로 그룹화
  • 구성 항목 및 기준선에 대한 라벨링 개정.

변경 관리: 조직과 개인의 관점에서 변화를 다루는 체계적인 접근 방식입니다.

구성 상태 회계 : 그것 구성 항목 설명 (예 : 하드웨어, 소프트웨어, 펌웨어 등)을 기록하고보고하는 프로세스와 설계 및 생산 중 기준에서 모든 이탈을 포함합니다. 문제가 의심되는 경우 기본 구성 확인 및 승인 된 수정 사항을 신속하게 확인할 수 있습니다.

구성 감사 : 구성 감사는 시스템의 현재 상태가 최신 기준 및 문서와 일치하는 정도를 결정하는 메커니즘을 제공합니다. 기본적으로 제공되는 제품이 광고, 홍보 또는 고객에게 약속 한대로 작동하는지 확인하기위한 공식 검토입니다. 구성 상태 회계 정보와 함께 품질 감사 및 테스트의 결과로 사용할 수있는 정보를 사용하여 필요한 것이 구축되었는지 확인합니다.

사용 사례를 통해 구성 관리를 이해하겠습니다. 특정 소프트웨어를 업데이트해야하거나이를 교체하려는 경우 성공적인 구성 관리를 위해 아래 순서도를 따라야합니다.

이제 Puppet 아키텍처를 이해할 수있는 올바른시기입니다.

꼭두각시 자습서 – 아키텍처 인형

Puppet은 마스터-슬레이브 아키텍처를 사용합니다. 아래 다이어그램은 동일하게 설명합니다.

위의 이미지에서 다음 기능이 수행됩니다.

  • Puppet Agent는 사실을 Puppet 마스터에게 보냅니다. 사실은 기본적으로IP 주소, 가동 시간, 운영 체제 또는 가상 머신 여부와 같은 슬레이브 상태의 일부 측면을 나타내는 키 / 값 데이터 쌍입니다. 사실은 나중에 블로그에서 자세히 설명하겠습니다.
  • Puppet Master는 사실을 사용하여 슬레이브 구성 방법을 정의하는 카탈로그를 컴파일합니다. 목록Puppet Master가 슬레이브에서 관리하는 각 리소스에 대해 원하는 상태를 설명하는 문서입니다. 나중에 카탈로그와 리소스에 대해 자세히 설명하겠습니다.
  • Puppet Slave는 마스터에게 다시보고하여 Puppet 대시 보드에 표시되는 구성이 완료되었음을 나타냅니다.

Puppet에 대한 자세한 내용은이 Puppet 튜토리얼 비디오를 확인하십시오.

초보자를위한 인형 튜토리얼 | DevOps 교육 | Edureka

Puppet 자습서 – Puppet 마스터 및 슬레이브 통신

Puppet Master와 Slave는SSL의 도움으로 암호화 된 보안 채널. 아래 다이어그램은 동일하게 설명합니다.

위의 이미지에서 볼 수 있듯이 :

  • Puppet Slave는 Puppet Master 인증서를 요청합니다.
  • Puppet Master 인증서를받은 후 Master는 Slave 인증서를 요청합니다.
  • 마스터가 Slave 인증서에 서명하면 Slave는 구성 / 데이터를 요청합니다.
  • 마지막으로 Puppet Master는 구성을 Puppet Slave로 보냅니다.

이제 다양한 Puppet 구성 요소를 살펴 보겠습니다.

꼭두각시 자습서 – 구성 요소 인형

매니페스트 : 모든 슬레이브에는 기본 Puppet 언어로 작성된 Puppet Master에 구성 세부 정보가 있습니다. 이러한 세부 정보는 Puppet이 이해할 수있는 언어로 작성되며 매니페스트라고합니다. 이들은 Puppet 코드로 구성되며 파일 이름은 .pp 신장. 이들은 기본적으로 Puppet 프로그램입니다.
예 : 파일을 생성하고 Puppet 마스터에 연결된 모든 Puppet 슬레이브에 Apache 서버를 설치하는 매니페스트를 Puppet Master에 작성할 수 있습니다.

기준 치수: Puppet 모듈은 매니페스트 및 데이터 (예 : 팩트, 파일 및 템플릿)의 모음이며 특정 디렉토리 구조를 가지고 있습니다. 모듈은 코드를 여러 매니페스트로 분할 할 수 있기 때문에 Puppet 코드를 구성하는 데 유용합니다. 모듈은 코드 및 데이터의 자체 포함 번들입니다.

자원: 리소스는 시스템 구성을 모델링하기위한 기본 단위입니다. 각 리소스는 특정 서비스 또는 패키지와 같은 시스템의 일부 측면을 설명합니다.

사실 : Facter는 하드웨어 세부 정보, 네트워크 설정, OS 유형 및 버전, IP 주소, MAC 주소, SSH 키 등과 같은 Puppet Slave에 대한 기본 정보 (사실)를 수집합니다. 그런 다음 이러한 사실을 Puppet Master의 Manifest에서 변수로 사용할 수 있습니다.

Mcollective : 여러 Slaves에서 여러 작업을 병렬로 실행할 수있는 프레임 워크입니다. 다음과 같은 다양한 기능을 수행합니다.

  • 소규모 그룹이든 대규모 배포이든 관계없이 슬레이브 클러스터와 상호 작용합니다.
  • 브로드 캐스트 패러다임을 사용하여 요청을 분산하십시오. 모든 슬레이브는 동시에 모든 요청을 수신하고 요청에는 필터가 연결되어 있으며 필터와 일치하는 슬레이브 만 요청에 대해 작동합니다.
  • 간단한 명령 줄 도구를 사용하여 원격 슬레이브를 호출합니다.
  • 인프라에 대한 맞춤형 보고서를 작성하십시오.

카탈로그 : 카탈로그는 슬레이브에있는 각 관리 자원의 원하는 상태를 설명합니다. Puppet Master가 특정 슬레이브에 적용하는 모든 리소스와 해당 리소스 간의 관계를 편집 한 것입니다.카탈로그는 매니페스트 및 슬레이브 제공 데이터 (예 : 팩트, 인증서 및 제공된 경우 환경)의 Puppet 마스터와 선택적 외부 데이터 (예 : 외부 슬레이브 분류기의 데이터, 내 보낸 리소스, 및 기능). 마스터는 요청시 컴파일 된 카탈로그를 슬레이브에 제공합니다.

이제이 Puppet Tutorial에서 다음 섹션은 실습에 초점을 맞출 것입니다.

꼭두각시 자습서 – 실습

Puppet Master에서 Puppet Slave로 MySQL과 PHP를 배포하는 방법을 보여 드리겠습니다. 데모 목적으로 하나의 슬레이브 만 사용하고 있습니다. 하나의 마스터에 수백 개의 슬레이브가 연결될 수 있습니다. PHP와 MySQL을 배포하기 위해 forge.puppet.com에서 제공되는 미리 정의 된 모듈을 사용합니다. 자신 만의 모듈을 만들 수도 있습니다.

1 단계: Puppet Master에서 MySQL 및 PHP 모듈을 설치합니다.

이것을 실행하십시오 :

1) puppet 모듈 설치 puppetlabs-mysql – 버전 3.10.0

이 MySQL 모듈은 MySQL 서비스를 설치, 구성 및 관리합니다. 이 모듈은 MySQL의 설치 및 구성을 모두 관리하고 Puppet을 확장하여 데이터베이스, 사용자 및 권한과 같은 MySQL 리소스를 관리 할 수 ​​있도록합니다.

2) 꼭두각시 모듈 설치 mayflower-php –version 4.0.0-beta1

이 모듈은 PHP, 특히 php-fpm을 관리하는 데 사용됩니다. PHP-FPM (FastCGI Process Manager)은 모든 규모의 사이트, 특히 바쁜 사이트에 유용한 몇 가지 추가 기능이있는 대체 PHP FastCGI 구현입니다.

2 단계: Puppet Manifest에는 MySQL 서버와 PHP가 포함됩니다.

이것을 실행하십시오 : vi /etc/puppet/manifests/site.pp

vim, gedit 등과 같은 다른 편집기를 사용할 수 있습니다.이 site.pp 파일에 다음을 추가하십시오.

':: mysql :: server'포함 ':: php'포함

저장하고 종료하십시오.

3 단계 : Puppet Slaves는 주기적으로 (30 분마다) 마스터에서 구성을 가져옵니다. 메인 매니페스트를 평가하고 MySQL 및 PHP 설정을 지정하는 모듈을 적용합니다. 즉시 시도하려면 모든 슬레이브 노드에서 다음 명령을 실행해야합니다.

이것을 실행하십시오 : 꼭두각시 에이전트 -t

따라서 MySQL과 PHP가 Slave 노드에 성공적으로 설치되었습니다.

4 단계 : 설치된 MySQL 및 PHP 버전을 확인하려면 :

이것을 실행하십시오 :

1) mysql -v

2) PHP 버전

축하합니다! MySQl 및 PHP가 Puppet Slave에서 실행 중입니다. 여기에서는 하나의 노예 만 보여 드렸지만 수백 명의 노예가 있다고 상상해보십시오. 이 시나리오에서는 작업이 매우 쉬워집니다. Puppet Master에서 구성을 지정하면 Puppet Slaves가 자동으로 메인 매니페스트를 평가하고 MySQL 및 PHP 설정을 지정하는 모듈을 적용합니다.

이걸 찾았다면 퍼펫 튜토리얼 관련된, 체크 아웃 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 Edureka DevOps 인증 교육 과정은 학습자가 SDLC의 여러 단계를 자동화하기 위해 Puppet, Jenkins, Nagios 및 GIT와 같은 다양한 DevOps 프로세스 및 도구에 대한 전문 지식을 습득하는 데 도움이됩니다.