모든 것을 괴롭히는가?


10

주의 : 많은 이론적 질문이 있습니다.

최근에 저는 Puppet (및 유사한 시스템)에 대해 읽고 있습니다. 그러나 나는 "불완전하게"할 수있는 모든 것을 이해하려고 노력하지만 안타깝게도 할 수 없다. 더 많은 서버에서 동일한 구성이있는 "클라우드"또는 HA 클러스터를 상상할 수 있습니다. 그러나 워크 스테이션은 어떻습니까? 하나의 PC (kvm이있는 센 토스), 하나의 노트북 (페도라) 및 개인 서버가 있는데 꼭두각시가 가능합니까? (단점)은 무엇입니까? 또는 회사에는 수백 대의 서버 (주로 centos가 있음)가 있지만 각 서버는 약간 다릅니다. 한곳에서 많은 설정을하는 것이 더 나은지 결정할 수 없습니다. (Dis) 장점? 나는 당신의 모든 의견이나이 주제와 관련된 링크에 대해 기쁠 것입니다.


Windows 시스템을 "Puppetize"하려고 시도하지 않는 것이 좋습니다. 오, 여기에서 어떤 종류의 질문을해야하는지에 대한 FAQ읽으 십시오.
HopelessN00b

7
꼭두각시 인형의 양과 꼭두각시 인형의 양은 자신이 맡고있는 과제에 관심이있는 양에 정비례해야합니다. 작게 시작하면 ntp 구성 또는 rsyslog를 꼭두각시합니다. 그런 다음 필요할 때 필요할 때마다 거기에서 빌드하십시오.
Sirex

1
이미 제 자리에 많은 서버가 있으므로 모든 단일 시스템에서 공통적 인 비트로 간단하게 시작한 다음 시간이 지남에 따라 더 구체적인 세부 사항을 시작하는 것이 좋습니다.
Zoredache

1
최신 버전의 Puppet에서 Windows 지원이 크게 향상되었습니다. Puppet으로 수백 개의 Windows 노드를 관리합니다. POSIX 노드의 Puppet은 훨씬 간단하고 강력하지만 Windows에서 최소한 Puppet을 사용하면 매우 유용 할 수 있습니다.
czervik

답변:


16

전체 환경을 인형극화할 수있는 정도는 몇 가지 변수에 따라 다릅니다.

  • 자동화 스태프가 모든 것에 대해 자동화를 작성하려는 의지. 작은. 의회.
  • "이것 하나만 바꾸면 어차피 일회성입니다"라는 문화적 컨디셔닝은 "이 꼭두각시 매니페스트에서이 하나만 바꾸고 지금 적용하겠습니다. 단지 일회성입니다" "
  • 환경에서 이질성의 정도.

꼭두각시가 될 수있는 모든 ********** 물건을 꼭두각시하는 것이 가능하지만, 꼭 가려면 꼭두각시 장치를 만질 수있는 모든 사람으로부터 올바른 문화와 바이 인이 필요합니다. 일부 장치는 기본적으로 이러한 방식으로 관리하기가 어렵고 워크 스테이션과 같은 것은 구성 관리 엔진보다 준비 도구로 더 좋습니다.

Puppet은 대부분 동일한 작업을 수행하는 여러 VM을 관리 할 때 유용합니다. 총 승리, 그리고 거기에 도달하기 위해 많은 노력을하지 않습니다.

스펙트럼의 다른 쪽 끝에서 당신은 내가 마지막으로했던 것, 130 개 서비스를 제공하는 200 개 이상의 서버와 하나 이상의 기계로 그렇게하는 작은 그룹 만 가지고 있습니다. 있다 절대적으로 기업 (대학) 그런 종류의 puppeted, 그러나 그것은 많은 노력 그리고 바이 인이 많이 걸립니다. 그것은 당신의 새로운 기계 배포 프로세스의 첫 번째 단계는해야 하지 될 "OS 설치", 그러나 "매니페스트를 만들".

궁극적으로 모든 IT 직원들 사이에서 해결해야 할 노력과 효율성 문화 문제.


13

모든 것을 퍼트

모든 시스템 (또는 이들의 하위 집합)에서 합리적으로 비슷하거나 템플릿을 기반으로 할 수있는 facter것은 공정한 게임입니다.

정말로 독창적 인 것들은 아마도 귀찮게해서는 안되며 파일 버킷에서 구성을 제공해야합니다.

두 범주 중 하나에 속하는 것은 사용자 환경을 자세히 알지 못하면 결정할 수없는 결정이므로 파악해야합니다.


6

다른 사람들이 그 이유를 다룬다 고 생각합니다. 누군가가 Puppet을 사용하여 원하는 것을 수행하는 방법을 이해하면 결정이 더 명확해질 것입니다.

기본 사례를 먼저 수행

Apache 용 Puppet 모듈은 기본적으로 많은 작업을 수행하지 않아야합니다. Apache를 설치하고 최소 표준으로 구성한 후 서비스를 시작하십시오. 지원해야하는 모든 배포판에서이 작업을 수행하십시오.

유연성 추가

가상 호스트를 추가해야합니다. 필요에 따라 파일을 삭제하거나 conf.d 또는 vhosts.d / 디렉토리 세트에서 파일을 제거 할 수있는 시스템이 생깁니다. 모듈 활성화 또는 구성과 동일합니다.

역할 또는 호스트 그룹 수업을 사용하여 빌딩 블록을 묶습니다.

꼭두각시를 사용하는 가장 좋은 방법은 그것이 첨가물인지 확인하는 것입니다. 위의 예제를 사용하여 다음을 수행하는 모듈이 있어야합니다

  1. 아파치 설치
  2. 기본 구성 설정
  3. 아파치에 가상 호스트 추가
  4. 추가 설정 구성
  5. 아파치 시작

특정 호스트 또는 그룹에 필요한 작업을 수행하기 위해 기본 Apache 모듈을 오버로드하는 대신 역할 또는 호스트 그룹 클래스를 처리해야합니다.

class role::web_cust1 {
  include apache
  apache::vhost {'www.domain.com': }
  apache::vhost {'www.domain2.com': priority => '99', }
  include php
  include php-fpm
  include mysql
}

다시 첨가제.

히 에라에 특별한 경우를 넣어

저는 Puppet의 Hiera를 Puppet의 데이터베이스로 생각하고 특수 비트를 저장하는 것을 좋아합니다. 특정 호스트 또는 호스트 그룹에 특별한 설정이 필요한 경우, 일반 사용자가 알 필요가 없도록 기본 기본값을 모듈에 설정하십시오. 그런 다음 해당 특수 호스트 또는 호스트 그룹에 대한 데이터를 삽입하여 필요에 따라 Hiera가 Puppet에 전달할 수 있도록합니다.

내 유스 케이스는 청취 포트입니다. 일부 서버에는 바니시 또는 haproxy가 있습니다. 기본적으로 Puppet 모듈에는 Apache에서 포트 80을 사용하지만 Hiera가 데이터를 찾으면 해당 기본값을 재정의합니다.


역할 모듈 계층을 사용하고 있으며 잘 작동합니다. 많은 역할을 수행하는 서버가 많은 환경을보다 쉽게 ​​구축 할 수 있습니다 (예 : role :: web 서버 중 일부는 role :: storage 일 수도 있음).
Andy Shinn

5

나는 현재 Puppetize와 유사한 시스템 사이에서 모든 것을 Puppetize하기 위해 전환하고 있으며 장기적으로 Puppetize everything이 더 나은 접근 방식이라고 확신합니다.

Puppet 매니페스트를 버전 제어하면 (모두 우리가이 작업을 수행함) 인프라에 대한 버전 제어의 모든 이점을 얻을 수 있습니다. 팀이 운영 엔지니어가됩니다. 이것은 균질 한 가축 농장처럼 특별한 일회성 시스템에 중요합니다. 누가 무엇을 변경했는지, 언제 변경했는지, 정확한 변경 사항, 변경 사항을 롤백 할 수 있는지에 대한 로그를 얻습니다.

개인적으로, 나는 꼭두각시를 통해 모든 변화를 강요하면 변화에 대해 더 신중하게 생각하게됩니다. 매니페스트를 작성할 때 일반적으로 명령 줄에서 해킹하는 것보다 각 변경 사항에 더주의를 기울입니다.

꼭두각시 모듈도 좋아질 것입니다. Nginx 모듈이 두 개 이상 있습니까? 아마도 그것은 Nginx 모듈이 그다지 훌륭하지 않다는 것을 의미하며 모든 특수 요구를 처리 할 수 ​​있도록 유연하게 만들어야합니다. 최소한 "custom"모듈을 위해 확장하는 핵심 Nginx 모듈과의 유사성을 추상화하십시오.

또한 재해 발생시 모든 특수 요구 서버를 구성과 관련하여 현재 상태로 복원 할 수 있다고 얼마나 확신하십니까? 팩토리 우분투 서버를 내부 위키로 가져 오는 데 필요한 모든 변경 사항이 Puppetized 인 경우 Bob의 어제 Tomcat 메모리 조정 기능을 사용하여 위키의 현재 상태를 쉽게 재구성 할 수 있습니다.

마지막으로, 이것은 정말 어려울 수 있습니다. 매우 다른 서버를 많이 관리하면 시간이 제대로 걸리지 않으면 해킹 Puppet 코드가 생길 수 있습니다. Puppet Enterprise를 사용하지 않는 경우 데이터와 매니페스트를 분리하는 데 도움이되도록 Hiera 및 / 또는 Foreman과 같은 ENC를 고려하십시오. 하루 종일 다른 것을 꼭두각시하십시오. 꼭두각시에서 이것이 어떻게 작동하는지 설명하면서 동료 드라이브를하십시오. 각 변경이 쉬워집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.