Puppet Facter & Facts2025年3月17日 | 阅读 3 分钟 在 Puppet 中,我们可以借助 facter 将多个值作为环境变量。 Facter 是 puppet 的一个工具,用于维护环境变量。它与 Bash 或 Linux 的环境变量完全一样。 有时,存储在 facts 中的信息与机器的环境变量可能会重叠。 puppet 的键值对称为 fact。 每个资源都有其自身的 facts,我们可以在 Puppet 中构建自定义 facts。 Facter此命令列出所有不同的环境变量及其相关值。 ![]() 如果您只想查看一个变量,请使用以下命令 示例![]() facter 和 puppet 中的 facts 的主要特点是,它们在 puppet 代码中可用作“全局变量”,这意味着我们可以根据我们的要求在代码的任何部分中使用它。 在 puppet 中,可以使用三种类型的 fact
核心 Facts在顶层,核心 facts 被描述并且对代码中的任何人的任何时间都可用。 一些基本核心 facts 的列表是
要查看 facts 和值的完整列表,请使用以下命令 ![]() ![]() 自定义 Facts我们还可以通过以下方式将自定义 facts 添加到节点
示例 ![]() ![]()
在 Ruby 中,$LOAD_PATH 类似于 Bash $PATH 变量,但它不是环境变量;相反,它是一个预定义的变量。 在 $LOAD_PATH 中,"$" 变量是一个用于搜索和加载值的数组。 ![]() 现在,创建一个目录 facter,添加一个 .pp 文件,并将内容附加到其中 将以下内容添加到 custom_facts.rb 文件 Facter 扫描 $LOAD_PATH 中列出的整个文件夹,并搜索名为 facter 的目录。 一旦它得到该特定目录,它就会将它们放置在目录结构中的任何位置。 如果找到此文件夹,则它会搜索该 facter 目录中的任何 Ruby 文件,并加载内存中所有指定的 facts。 FACTERLIBFACTERLIB 类似于 $LOAD_PATH。 两者之间只有一个区别,即 FACTERLIB 是一个 OS 级别的环境变量,而 $LOAD_PATH 是一个 Ruby 特殊变量。 默认情况下可能未配置环境变量。 让我们检查一下 ![]() 要测试 FACTERLIB,请使用以下步骤 创建一个名为 test_facts 的目录。 ![]() ![]() 要查看目录结构,请执行以下命令 ![]() 将以下内容复制到 .rb 文件 ![]() ![]() 现在,使用 export 语句 ![]() 现在,测试新的 facter ![]() 外部 Facts如果要在配置阶段应用一些新创建的 facts,则可以使用外部 facts。 外部 facts 是在配置虚拟机 (VM) 时将元数据应用于虚拟机 (VM) 的最佳方法。 例如,OpenStack、vSphere、AWS 等。 Puppet 可以使用所有元数据及其生成的信息来决定应将哪些项目包含在将要应用的目录中。 下一主题Puppet 文件服务器 |
我们请求您订阅我们的新闻通讯以获取最新更新。