퍼팻은 관리할 시스템 자원을 독립적인 구성 요소로 정의합니다. 각 시스템 자원에 대한 설정 코드를 리소스(resource)라고 합니다. 리소스는 유형(type), 이름(title), 속성(attributes), 값(values)으로 정의합니다. 변경하려는 시스템 자원의 상태를 중괄호({ }) 내에 속성과 값으로 기술합니다. 유형과 이름 끝에는 콜론(:)을 붙이고 속성과 값 끝에는 쉼표(,)를 붙입니다. 리소스 유형과 이름은 중복될 수 없으며 영문과 숫자로 작성해야 합니다.
• 리소스 유형: 시스템 자원 유형을 결정합니다. 파일(file), 사용자(user), 패키지(package), 서비스(service), 외부 명령(exec) 등이 있습니다.
• 이름: 각 리소스를 구분하는 이름입니다. 관리할 대상으로 정하는 편이 일반적입니다.
• 속성과 값: 변경하려는 리소스 상태를 정의합니다. ‘[속성] => [값]’ 형식으로 입력합니다.
유형 { 이름: 속성 1 => 값, 속성 2 => 값, ... }
리소스가 모여 매니페스트가 됩니다. 앞서 소개한 매니페스트 예제 example.pp를 다시 살펴봅시다. file로 시작하는 이 코드는 파일을 다루는 file 리소스를 정의합니다. 리소스 이름인 /tmp/hello는 관리 대상인 파일을 가리킵니다. 예제에서는 ‘ensure => present’라는 속성과 값이 생략되어 있는 상태입니다. 생략 가능한 기본 속성으로 새로운 파일을 생성합니다.
# /home/administrator/example.pp # 매니페스트 예제 file {'/tmp/hello': content => "Hello, puppet!\n", }