팩트는 계층적으로 표현되므로 점(.)을 이용하여 계층 관계를 표현할 수도 있습니다. 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", ➍ } }