더북(TheBook)

  8 터미널을 하나 더 열어서 퍼펫 마스터가 실행 중인 호스트의 퍼펫 인증서를 확인( puppet cert -list)합니다. 아직 서명되지 않은 인증 요청까지 모두 확인하기 위해 –all 옵션을 붙여야 합니다. 퍼펫 마스터 서버 losttemple.linuxmaster.com의 인증서와 더불어 게스트 vm01.linuxmaster.com의 인증 요청을 확인할 수 있습니다.

shinjaehun@losttemple:~$ sudo puppet cert --list --all
[sudo] password for shinjaehun:******
Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations
   (at /usr/lib/ruby/vendor_ruby/puppet/settings.rb:1134:in `issue_deprecation_warning')
"vm01.linuxmaster.com" (SHA256)
A0:F1:8E:A8:C1:2F:09:E4:09:37:C2:3B:85:3B:92:65:51:FD:47:15:DE:E3:00:45:C4:5A:69:16:

AD:47:60:83
+ "losttemple.linuxmaster.com" (SHA256)
B4:35:09:F4:2C:45:47:29:66:39:E6:FF:3C:0A:86:42:AC:D9:9E:52:50:9F:87:BA:78:C2:09:38:

34:F7:12:84 (alt names: "DNS:losttemple.linuxmaster.com", "DNS:puppet", "DNS:puppet.linuxmaster.com")

  9 vm01.linuxmaster.com에서 요청한 인증을 수락(puppet cert sign)합니다.

shinjaehun@losttemple:~$ sudo puppet cert sign vm01.linuxmaster.com
Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations
   (at /usr/lib/ruby/vendor_ruby/puppet/settings.rb:1134:in `issue_deprecation_warning')
Notice: Signed certificate request for vm01.linuxmaster.com
Notice: Removing file Puppet::SSL::CertificateRequest vm01.linuxmaster.com at '/var/lib/puppet/ssl/ca/requests/vm01.linuxmaster.com.pem'

10 인증이 승인된 후에 호스트, 퍼펫 마스터의 인증 목록을 보면 다음과 같이 호스트 이름 vm01.linuxmaster.com 앞에 ‘ +’ 기호가 붙은 것을 확인할 수 있습니다. 인증 요청이 승인된 상태임을 의미합니다.

shinjaehun@losttemple:~$ sudo puppet cert --list --all
Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/vendor_ruby/puppet/settings.rb:1134:in `issue_deprecation_warning')
   + "losttemple.linuxmaster.com" (SHA256)
B4:35:09:F4:2C:45:47:29:66:39:E6:FF:3C:0A:86:42:AC:D9:9E:52:50:9F:87:BA:78:C2:09:38:

34:F7:12:84 (alt names: "DNS:losttemple.linuxmaster.com", "DNS:puppet", "DNS:puppet.linuxmaster.com")
+ "vm01.linuxmaster.com" (SHA256)
44:F1:A1:1A:EF:A9:4D:78:3B:80:30:EA:4E:BF:71:48:89:C0:5D:89:0B:42:72:64:60:06:86:C3:5B:

2A:64:7B

11 퍼펫 마스터가 실행 중인 터미널에 출력되는 메시지를 관찰하면 승인이 끝나자마자 vm01.linuxmaster.com 노드에 설정 내용을 반영하는 것을 확인할 수 있습니다.

shinjaehun@losttemple:~$ sudo puppet master --no-daemonize --verbose
...
Info: Caching node for vm01.linuxmaster.com
Info: Caching node for vm01.linuxmaster.com
Notice: Compiled catalog for vm01.linuxmaster.com in environment
production in 0.01 seconds

12 퍼펫 에이전트가 실행 중인 터미널의 메시지를 관찰하면 인증이 승인되었고 vm01.linuxmaster.com 노드에 대한 변경을 적용했다는 사실을 확인할 수 있습니다.

administrator@vm01:~$ sudo puppet agent --waitforce 2 --test
...
Notice: Did not receive certificate
Notice: Did not receive certificate
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for vm01.linuxmaster.com
Info: Applying configuration version '1414974907'
Notice: /Stage[main]/Main/File[/tmp/HelloPuppetMaster]/ensure:
defined content as '{md5}860bf36b8360d789a13826351bc94fbe'
Info: Creating state file /var/lib/puppet/state/state.yaml
Notice: Finished catalog run in 0.04 seconds

13 퍼펫 마스터에 의해 가상 게스트에 파일이 생성되었습니다.

administrator@vm01:~$ cat /tmp/HelloPuppetMaster
Hello, puppet master!

14 퍼펫 에이전트를 시스템 부팅과 동시에 실행하기 위해 기본 설정을 수정합니다. /etc/default/puppet 파일을 vi로 엽니다.

administrator@vm01:~$ sudo vi /etc/default/puppet

15 START 항목을 no에서 yes로 수정합니다. 파일 내용을 저장합니다.

START=yes

16 중지했던 가상 게스트의 퍼펫 에이전트 서비스를 다시 시작합니다. runinterval 옵션에 의해 60초마다 한 번씩 퍼펫 마스터에 갱신 여부를 조회할 것입니다.

administrator@vm01:~$ sudo service puppet start
Tip

이 책에서는 예제를 바로 확인할 수 있도록 runinterval을 60초로 설정하고 있지만 시스템 수가 많은 환경에서는 네트워크 부하를 일으킬 수 있기 때문에 runinterval을 적절하게 조정해야 합니다.

17 가상 게스트를 제어할 호스트에도 퍼펫을 마스터 모드로 실행될 수 있게 해야 합니다. 호스트에 puppetmaster 패키지를 설치합니다. puppetmaster 패키지는 퍼펫 마스터 서비스를 제어하는 스크립트 모음입니다. 패키지 설치 과정에서 퍼펫 마스터 서비스를 시작할 것입니다.

shinjaehun@losttemple:~$ sudo apt-get install puppetmaster

18 초기화 스크립트 puppetmaster로 퍼펫 마스터 서비스를 제어합니다. start는 시작, stop은 중지, restart는 재시작을 의미합니다.

shinjaehun@losttemple:~$ sudo service puppetmaster restart
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.