더북(TheBook)

팩트는 계층적으로 표현되므로 점(.)을 이용하여 계층 관계를 표현할 수도 있습니다. networking.domain은 networking에서 domain 값을 찾아 반환합니다.

administrator@vm01:~$ facter networking.domain
linuxmastery.kr

퍼팻 코드에서 팩트를 활용하려면 키를 변수로 참조해야 합니다. 스트링($)과 중괄호({ })를 써서 ${hostname}처럼 사용할 수 있습니다. 이렇게 하면 사용자가 정의해서 사용하는 변수와 구분할 수 없으므로 키 앞에 콜론 2개(::)를 붙여 ${::hostname}처럼 표현하기도 합니다. 의미를 분명히 하고자 $facts를 붙여 $facts[‘hostname’]처럼 쓸 수도 있습니다.

로그인 메시지는 motd(Message Of The Day) 파일에 작성합니다. /etc/motd 파일을 생성하여 내용을 입력하면 기본 로그인 메시지에 이어서 입력한 내용이 화면에 표시될 것입니다.

노드 vm02.linuxmastery.kr에 file 리소스를 작성하여 motd 파일을 생성해 봅시다. motd 파일의 소유자는 root이므로 owner 속성을 ‘root’로 설정했습니다. content는 큰따옴표(“ ”)를 써서 입력해야 팩트 정보를 참조합니다. 호스트 이름과 IP 주소는 팩트 정보로 각각 fqdn ipaddress를 키로 참조해서 받아 옵니다.

# /home/administrator/code/environments/production/manifests/site.pp
# facter 활용하기
...
node 'vm02.linuxmastery.kr' {
...
 file { '/etc/motd':
    owner    => 'root', 
    content  => "\n 
      Hostname : ${::fqdn} 
      IP Address : ${::ipaddress}\n\n", 
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.