読者です 読者をやめる 読者になる 読者になる

Puppetのマニフェストでrequireを2つ以上設定する場合

Puppet

Puppetのマニフェストを書いていてrequireが2つ必要な場面がありました。
記述法を調べてみて結果うまくいったのでそのメモです。
公式のFAQドキュメントにそのまんまの回答がありました。

要件

例えば、

  • zabbix-sender

というパッケージをインストールするマニフェストを例にします。


『zabbix-sender』のインストールには事前に以下の2点が必要です。

  1. zabbix用のyumリポジトリファイルがあること
  2. zabbix-agentがインストールされていること


これら2つのマニフェストは以下のようになっています。

zabbix用のyumリポジトリファイル
file { '/etc/yum.repos.d/zabbix2.0.repo':
  content  => template("/etc/puppet/manifests/templates/etc/yum.repos.d/zabbix2.0.repo"),
  owner => 'root',
  group => 'root',
  mode => 644,
}


zabbix-agentのインストール
package { 'zabbix-agent':
	ensure => latest,
	require  => File['/etc/yum.repos.d/zabbix2.0.repo'],
}


require2つの記述例

上記2つをrequireとして定義して書く例です。

package { 'zabbix-sender':
        ensure => latest,
        require  => [ File['/etc/yum.repos.d/zabbix2.0.repo'], Package['zabbix-agent'] ],
}