더북(TheBook)

문제가 발생합니다

퍼펫은 백그라운드에서 실행되기 때문에 ps 명령으로 퍼펫 마스터와 에이전트가 제대로 실행 중인 상태인지를 확인합니다. 시스템을 다시 부팅해도 퍼펫 에이전트와 퍼펫 마스터가 실행돼야 합니다. 퍼펫 마스터 실행되지 않는 시스템에서는 puppetmaster 패키지를 설치해야 합니다.

shinjaehun@losttemple:~$ ps -ef | grep puppet
puppet    2287     1 0 23:06 ?         00:00:02 /usr/bin/ruby /usr/bin/puppet master -masterport=8140

퍼펫 에이전트가 실행되지 않는 시스템에서는 퍼펫 기본 설정 파일 /etc/default/puppet의 START 항목을 yes로 수정해야 합니다.

administrator@vm01:~$ ps -ef | grep puppet
root       769     1 0 06:13 ?        00:00:00 /usr/bin/ruby /usr/bin/puppet agent
Tip

정말 중요합니다. 퍼펫 마스터 또는 퍼펫 에이전트 어느 한쪽이 동작하지 않고 있어서 생기는 문제가 생각보다 자주 발생합니다. 항상 ps 명령으로 실행 여부를 체크하기 바랍니다.

퍼펫 마스터와 에이전트는 실행 중인데 통신 문제가 의심된다면 퍼펫 마스터 서버의 방화벽 포트 8140이 개방된 상태인지 확인해야 합니다. 퍼펫은 각 서버를 완전한 형태의 도메인 이름으로 구분하기 때문에 호스트 이름 목록을 관리하는 네임 서버도 정상적으로 동작해야 합니다. 퍼펫 마스터와 에이전트 양쪽에서 호스트 이름으로 ping했을 때 정상적으로 IP 주소로 변환되어야 합니다.

shinjaehun@losttemple:~$ sudo ufw allow 8140
shinjaehun@losttemple:~$ sudo ufw status
상태: 활성

To                         Action      From
--                         ------      ----
8140                       ALLOW       Anywhere
8140                       ALLOW       Anywhere (v6)

인증 과정에서 퍼펫 마스터가 ‘Error: Could not run’이라는 오류 메시지가 발생하며 실행되지 않는다면 다른 프로세스로 퍼펫 마스터가 실행 중인지 의심해봐야 합니다. ps 명령으로 확인해서 puppet master 프로세스가 존재하면 kill 명령으로 해당 프로세스를 종료시킵니다.

shinjaehun@losttemple:~$ ps -ef | grep puppet
puppet    1677     1  0 01:08 ?        00:00:00 /usr/bin/ruby /usr/bin/puppet master --masterport=8140
...
shinjaehun@losttemple:~$ sudo kill -9 1677

다시 퍼펫 마스터를 실행하면 오류 메시지가 보이지 않을 것입니다.

shinjaehun@losttemple:~$ sudo puppet master --no-daemonize --verbose
Notice: Starting Puppet master version 3.4.0

인증 관련해서 문제가 발생하면 앞에서 이루어진 인증 요청 또는 만들어둔 인증서 파일 때문에 인증에 실패하는 경우가 종종 있습니다. 따라서 퍼펫 마스터와 에이전트 양쪽의 인증서를 모두 삭제하고 다시 인증을 시도해보기 바랍니다. 퍼펫 마스터에서 puppet cert clean 명령으로 특정 시스템의 인증서를 삭제할 수 있습니다.

shinjaehun@losttemple:~$ sudo puppet cert clean vm04.linuxmaster.com
Tip

‘sudo puppet cert clean all 명령으로 모든 인증서를 삭제할 수 있지만 기존의 모든 인증서를 삭제하므로 주의해야 합니다.

puppet cert clean 명령으로 인증서가 삭제되지 않으면 인증서 파일을 직접 삭제합니다.

shinjaehun@losttemple:~$ sudo rm -rf /var/lib/puppet/ssl

퍼펫 에이전트 쪽에서도 퍼펫 마스터의 인증서 때문에 문제가 발생할 수 있습니다. 퍼펫 에이전트에서 퍼펫 마스터의 인증서를 삭제하는 명령은 다음과 같습니다. 다시 인증을 시도해야 합니다.

administrator@vm02:~$ sudo rm -rf /var/lib/puppet/ssl

마지막으로 하나 더! 퍼펫 마스터와 에이전트 사이에 버전이 다르면 통신이 되지 않을 수 있습니다. 특히 퍼펫 마스터의 버전이 낮으면 에이전트 제어가 불가능합니다. apt-get upgrade 명령을 사용해서 puppet 패키지를 업그레이드하기 바랍니다.

shinjaehun@losttemple:~$ sudo apt-get update
shinjaehun@losttemple:~$ sudo apt-get upgrade puppet
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.