【发布时间】:2020-09-08 11:49:15
【问题描述】:
我们在编写 puppet 模块方面投入了大量资金。现在我们需要在我们的一个环境中以无代理模式使用 puppet,因为我们正在使用 puppet bolt 进行规划。
我的问题是我们是否在 puppet dsl 中编写 puppet plan。如果没有安装 puppet 代理,我们能否将这些计划定位到远程虚拟机。
-维奈
【问题讨论】:
标签: puppet bolt puppet-bolt
我们在编写 puppet 模块方面投入了大量资金。现在我们需要在我们的一个环境中以无代理模式使用 puppet,因为我们正在使用 puppet bolt 进行规划。
我的问题是我们是否在 puppet dsl 中编写 puppet plan。如果没有安装 puppet 代理,我们能否将这些计划定位到远程虚拟机。
-维奈
【问题讨论】:
标签: puppet bolt puppet-bolt
目标系统需要解释器,否则它无法理解您发送给它的代码。就像你用 Python 写一个 Bolt 任务一样,你需要在目标机器上安装 Python 才能运行代码。
但是 Bolt 计划有内置的任务来处理这个问题,这里有一个示例计划通过 Chocolatey 安装 git 和 Bolt 计划;
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
【讨论】: