패키지를 설치하고 로그인 메시지를 추가하는 작업을 여러 노드에 적용하려고 기본 매니페스트인 site.pp에 퍼팻 코드를 작성해 보았습니다. 변수, 배열을 사용하더라도 노드마다 같은 리소스를 반복해서 기술하면 코드 중복을 피할 수 없습니다.

    # /home/administrator/code/environments/production/manifests/site.pp
    # 이렇게 하면 안 된다는 것을 보여 주는 예제
    $my_packages = ['tree', 'wget', 'curl', 'unzip']
    
    node 'vm01.linuxmastery.kr' {
      package { $my_packages: }
    
      file { '/etc/motd':
        ensure  => file,
        owner   => 'root',
        content => "\n
          Hostname     : ${::fqdn}\n
          IP Address   : ${::ipaddress}\n",
      }
    }
    
    node 'vm02.linuxmastery.kr' {
      package { $my_packages: }
    
      file { '/etc/motd':
        ensure   => file,
        owner    => 'root',
        content  => "\n
          Hostname    : ${::fqdn}\n
          IP Address  : ${::ipaddress}\n",
      }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.