모든 코드를 반복해서 입력하는 대신 공통으로 적용할 코드를 클래스로 작성합니다. 기본 패키지 설치를 위한 package 리소스와 로그인 메시지 추가를 위한 file 리소스를 temp 클래스로 묶어 정의했습니다. 이렇게 정의한 temp 클래스를 노드 선언에서 include 함수로 참조합니다. 확실히 예전보다 코드가 간결해졌습니다.
# /home/administrator/code/environments/production/manifests/site.pp # 클래스를 사용했지만 여전히 복잡하네요 class temp { package { ['tree', 'wget', 'curl', 'unzip']: } file { '/etc/motd': ensure => file, owner => 'root', content => "\n Hostname : ${::fqdn}\n IP Address : ${::ipaddress}\n", } } node 'vm01.linuxmastery.kr' { include temp } node 'vm02.linuxmastery.kr' { include temp }