在木偶中使用事实事实

sag*_*gar 2 puppet facter

我是 puppet 的新手,并计划在我们的环境中实施它。

我有在不同版本的 Redhat 上运行的傀儡代理。

现在,我打算从 puppet master 推送 repo 文件,我需要你的指导来实现它。

我有以下清单。

file { 'local_repo':
  ensure => file,
  path   => '/etc/yum.repos.d/local.repo',
  mode   => "600",
  source => 'puppet:///modules/repo/rhel7.1',
}

file { 'local_repo':
  ensure => file,
  path   => '/etc/yum.repos.d/local.repo',
  mode   => "600",
  source => 'puppet:///modules/repo/rhel6.7',
}
Run Code Online (Sandbox Code Playgroud)

当我执行 Factor CLI 时,我得到以下输出。

[root@dheera ~]# facter os
{
  architecture => "x86_64",
  family => "RedHat",
  hardware => "x86_64",
  name => "RedHat",
  release => {
    full => "7.2",
    major => "7",
    minor => "2"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想利用上述输出并相应地执行我的清单。也就是说,如果 puppet 代理在 Redhat 7.1 上执行,则 Puppet master 使用相应的文件。

Mat*_*ard 5

您可以通过在source属性中使用 Facter 变量,然后在字符串中插入它来完成此操作。请注意,您'必须更改为"在字符串中插入变量。

因素 2/傀儡 3:

file { 'local_repo':
  ensure => file,
  path   => '/etc/yum.repos.d/local.repo',
  mode   => "600",
  source => "puppet:///modules/repo/rhel${::os['release']['full']}",
}
Run Code Online (Sandbox Code Playgroud)

因素 3/傀儡 4:

file { 'local_repo':
  ensure => file,
  path   => '/etc/yum.repos.d/local.repo',
  mode   => "600",
  source => "puppet:///modules/repo/rhel${facts['os']['release']['full']}",
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有用的文档:https : //docs.puppet.com/puppet/4.8/reference/lang_facts_and_builtin_vars.html

它适用于最新版本,但也包含旧版 Puppet/Facter 信息。