我有一台运行 Foreman 和 Puppet(作为主服务器)的 Ubuntu 14.04 服务器,以及一些其他 Ubuntu 14.04 机器,它们是 Puppet 节点。我想使用 Foreman 来确保 Puppet 节点安装了某些软件包。使用常规 Puppet,您可以包含类似
package { "screen":
ensure => "installed"
}
这会触发 apt 命令并安装屏幕。但我不确定如何使用 Foreman 执行此操作。这可能吗?我找不到任何相关参考资料,我的所有搜索结果都与如何安装 Foreman 本身有关。
答案1
首先,我不使用 Foreman,我使用 hiera。这些示例应该能让你了解 ENC 的用途,而不是提供使用 Foreman 的完整方法。以下是一涵盖基础知识。
其次,Puppetlabs 提供了一个类似的网站,用于解答有关 Puppet 的具体问题,所以你可能需要看看寻求帮助。
关于你的问题:
福尔曼和希拉一样,是一个外部节点分类器 (ENC)。这意味着,您可以使用它将要加载的类或变量附加到要由加载的类使用的节点。
您仍然应该(并且必须)做的是向 Puppet 提供要加载的模块和清单。
一个例子是编写一个名为的模块misc
,放入/etc/puppet/environment/prod/modules/misc
。
class misc {
package { "screen":
ensure => "installed"
}
}
您可以使用 Foreman 将类附加misc
到示例节点node01.example.com
并node02.example.com
在两个节点上安装屏幕。
另一个使用变量的例子:
class misc(
$packages = [ "screen" ],
) {
package { $packages:
ensure => "installed"
}
}
您可以使用 Foreman 将类附加misc
到示例节点node01.example.com
和node02.example.com
,并将变量设置misc::packages
为类似的内容[ "vim", "screen", "telnet" ]
,使其在两个节点上安装 vim、screen 和 telnet。