더북(TheBook)

퍼펫 에이전트 인증하기

  1 퍼펫 마스터에 의해 제어할 대상인 게스트 vm01을 시작합니다. 게스트 시작 전에 DHCP 서버가 실행되는 상태여야 합니다. 부팅이 끝나면 ssh로 게스트에 접속합니다.

shinjaehun@losttemple:~$ sudo service isc-dhcp-server start
shinjaehun@losttemple:~$ virsh start vm01
shinjaehun@losttemple:~$ ssh administrator@vm01.linuxmaster.com
...
administrator@vm01:~$

  2 퍼펫을 설치합니다. puppet 패키지를 설치하는 과정은 앞에서 호스트를 대상으로 한 과정과 동일합니다. 퍼펫 저장소 주소를 추가하기 위해 ‘puppetlabs-release-trusty.deb’를 받아와서 설치하고 저장소 목록을 갱신해서 apt-get으로 puppet 패키지를 설치합니다.

administrator@vm01:~$ sudo wget http://apt.puppetlabs.com/puppetlabs-release-trusty.deb
administrator@vm01:~$ sudo dpkg -i puppetlabs-release-trusty.deb
administrator@vm01:~$ sudo apt-get update
administrator@vm01:~$ sudo apt-get install puppet
Tip

모든 시스템마다 puppet 패키지를 설치해야 하는데 이 과정을 자동화할 수 있는 방법은 없을까요? ‘초보 시스템 관리자의 일기 | 실무에 퍼펫 도입하기’에서 더 논의해보겠습니다.

  3 퍼펫 설치가 끝나면 설정 파일 /etc/puppet/puppet.conf를 vi로 엽니다.

administrator@vm01:~$ sudo vi /etc/puppet/puppet.conf

  4 퍼펫을 에이전트 모드로 실행하기 위한 설정 내용을 [agent] 항목으로 추가합니다. server에는 서버, 즉 퍼펫 마스터의 주소(완전한 도메인 형태)를 입력합니다. runinterval에는 퍼펫 마스터에 변경 사항을 조회하는 대기 시간을 초단위로 입력합니다. runinterval을 입력하지 않으면 기본값 1800, 30분이 적용되는데 테스트 과정에서 빠른 확인을 위해 60(1분)으로 바꿨습니다.

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

[agent]
server=losttemple.linuxmaster.com
runinterval=60

  5 퍼펫 에이전트 서비스를 잠시 종료합니다.

administrator@vm01:~$ sudo service puppet stop

  6 가상 게스트에서 퍼펫을 다시 시작합니다. 이때 퍼펫을 에이전트 모드로 시작( puppet agent)하고 상태 변화를 터미널에 직접 출력( --waitforce)하고 테스트를 위해 2초에 한 번씩 상태를 보여주며( 2) 포그라운드로 실행하도록( --test) 옵션을 추가합니다. 터미널에 2초마다 한 번씩 ‘Notice: Did not receive certificate’ 메시지가 출력될 것입니다.

administrator@vm01:~$ sudo puppet agent --waitforce 2 --test
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')
Info: Creating a new SSL key for vm01.linuxmaster.com
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for vm01.linuxmaster.com
Info: Certificate Request fingerprint (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
Info: Caching certificate for ca
Notice: Did not receive certificate
Notice: Did not receive certificate
...

  7 퍼펫 마스터가 실행되는 터미널을 확인해보면 게스트 vm01.linuxmaster.com으로부터 인증 요청이 도착했다는 메시지를 확인할 수 있습니다. 퍼펫 에이전트가 2초마다 상태 변화를 요구하기 때문에 아직 vm01.linuxmaster.com에 대한 인증서가 존재하지 않는다는 메시지도 2초마다 출력됩니다.

shinjaehun@losttemple:~$ sudo puppet master --no-daemonize --verbose
...
Info: Not Found: Could not find certificate vm01.linuxmaster.com
Info: Not Found: Could not find certificate_request
vm01.linuxmaster.com
Notice: vm01.linuxmaster.com has a waiting certificate request
Info: Not Found: Could not find certificate vm01.linuxmaster.com
Info: Not Found: Could not find certificate vm01.linuxmaster.com
...
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.