Puppet:条件文件源

Puppet:条件文件源

我想根据情况使用不同的 squid.conf 文件。例如:

    file { '/etc/squid/squid.conf':
    ensure => file,
    if condition = true then
        source => 'puppet:///modules/1/squid.conf_1',
    else
        source => 'puppet:///modules/1/squid.conf_2',
    fi
    }

有没有办法做到这一点?

答案1

你需要一个选择器,这将允许您在资源内部拥有一个条件 - 或者在其外部设置一个变量。

这是选择器:

file { '/etc/squid/squid.conf':
  ensure => file,
  source => $fact ? {
    "foo"   => 'puppet:///modules/1/squid.conf_1',
    "bar"   => 'puppet:///modules/1/squid.conf_2',
    default => 'puppet:///modules/1/squid.conf_default',
  },
}

或者设置一个变量并使用它:

if $fact == "foo" {
  $squidconf = 'puppet:///modules/1/squid.conf_1'
} else {
  $squidconf = 'puppet:///modules/1/squid.conf_2'
}

file { '/etc/squid/squid.conf':
  ensure => file,
  source => $squidconf,
}

当然还有其他变体,请查看上面链接的语言指南和学习 Puppet 教程关于变量的部分。

相关内容