다른 프로그래밍 언어처럼 퍼팻도 자료를 저장하는 변수(variable)를 제공합니다. 변수는 스트링($)을 붙여 정의하고 연산자 =로 값을 할당합니다. 노드 선언 앞에 설치할 패키지 목록 배열을 my_packages라는 변수에 저장합니다. 변수를 참조할 때도 스트링($)을 사용합니다. 처음 작성한 패키지 설치 코드보다 리소스가 훨씬 간결해졌습니다. 나중에라도 공통으로 설치할 패키지를 추가해야 한다면 노드마다 리소스를 각각 변경하는 대신 변수에 할당할 값만 수정하면 됩니다.
# /home/administrator/code/environments/production/manifests/site.pp # 변수와 배열 활용하기 $my_packages = ['tree', 'wget', 'curl', 'unzip'] node 'vm01.linuxmastery.kr' { ... package { $my_packages: } } node 'vm02.linuxmastery.kr' { ... package { $my_packages: } }
퍼팻 에이전트를 실행하고 tree, wget, curl, unzip 패키지가 모두 설치되었는지 확인합니다.
administrator@vm01:~$ sudo /opt/puppetlabs/bin/puppet agent --test
이렇게 해보세요 ≣
패키지 목록이 오래된 경우 설치 과정에서 문제가 발생할 수 있습니다. 각 노드에서 apt update 명령을 실행한 후 다시 퍼팻 에이전트를 실행해 보기 바랍니다. 패키지 설치를 위해 노드마다 apt update 명령을 실행해야 하는 문제는 '12.5.1 퍼팻 포지로 모듈 재활용하기'에서 해결합니다.
administrator@vm01:~$ apt update