使用 Foreman 安装软件包

使用 Foreman 安装软件包

我有一台运行 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.comnode02.example.com在两个节点上安装屏幕。

另一个使用变量的例子:

class misc(
  $packages = [ "screen" ],
) {
    package { $packages:
        ensure => "installed"
    }
}

您可以使用 Foreman 将类附加misc到示例节点node01.example.comnode02.example.com,并将变量设置misc::packages为类似的内容[ "vim", "screen", "telnet" ],使其在两个节点上安装 vim、screen 和 telnet。

相关内容