我们在编写 puppet 模块方面投入了大量资金。现在我们需要在我们的一个环境中以无代理模式使用 puppet,因为我们正在使用 puppet bolt 进行规划。
我的问题是我们是否在 puppet dsl 中编写 puppet 计划。如果没有安装 puppet 代理,我们能否将这些计划定位到远程虚拟机。
-维奈
我们在编写 puppet 模块方面投入了大量资金。现在我们需要在我们的一个环境中以无代理模式使用 puppet,因为我们正在使用 puppet bolt 进行规划。
我的问题是我们是否在 puppet dsl 中编写 puppet 计划。如果没有安装 puppet 代理,我们能否将这些计划定位到远程虚拟机。
-维奈
目标系统需要一个解释器,否则它不会理解您发送给它的代码。就像你用 Python 编写一个 Bolt 任务一样,你需要目标机器上的 Python 才能运行代码。
但是一个 Bolt 计划有内置的任务来处理这个问题,这是一个通过巧克力安装 git 和一个螺栓计划的示例计划;
plan git_install::Windows_git (
TargetSpec $targets
) {
apply_prep($targets) # This installs the PE agent temporarily so it can
include chocolatey # include and use regular Puppet class from the chocolatey module
package { git :
ensure. => 'present',
provider => 'chocolatey',
}
}
如果您已经将目标连接到 PE 服务器,您可能不需要使用 apply_prep,因为代理已经安装。这是一个真正的救命稻草,但如果您在编写 PE 模块时必须管理遗留基础设施和 PE 管理的基础设施,您可以创建一个只有几行长的计划,这样您就可以重用同一个类在您的遗留基础架构上。
您无需预先在目标上安装任何东西即可运行在目标上执行任务的计划(如果这是您所要求的)。如果您的意思是您正在使用 Bolt 应用 puppet 资源的能力,那么 Bolt 将安装 puppet 代理程序包,而您无需执行任何操作。在此处的文档中查看详细信息:https ://puppet.com/docs/bolt/latest/applying_manifest_blocks.html