Puppet能否安装一个命令供自定义资源稍后使用?
我有一个用Ruby编写的自定义资源,它的提供程序使用命令。该命令来自一个RPM包,我也希望安装它。即使使用我认为正确的依赖项,这也不起作用,因为Puppet能否安装一个命令供自定义资源稍后使用?,puppet,Puppet,我有一个用Ruby编写的自定义资源,它的提供程序使用命令。该命令来自一个RPM包,我也希望安装它。即使使用我认为正确的依赖项,这也不起作用,因为命令方法是在编译目录时,在运行任何资源之前计算的。至少,这是我的理解 有没有办法让这一切顺利进行?在无代理设置中,我可以只运行两个单独的清单,但它如何与Puppet Server一起工作?使用命令指令(例如命令:foo=>'/usr/bin/foo')提供,如果找不到其他工作提供程序,则应在文件存在时自动开始用于资源 命令在内部生成一个“限制”指令,将提
命令
方法是在编译目录时,在运行任何资源之前计算的。至少,这是我的理解
有没有办法让这一切顺利进行?在无代理设置中,我可以只运行两个单独的清单,但它如何与Puppet Server一起工作?使用
命令指令(例如命令:foo=>'/usr/bin/foo'
)提供,如果找不到其他工作提供程序,则应在文件存在时自动开始用于资源
命令
在内部生成一个“限制”指令,将提供程序限制为仅在文件存在时运行。类似的方法适用于“功能”,例如要求加载某个Ruby库(“功能”)。当目录中存在没有其他工作提供程序的资源时,Puppet代理应不断地为提供程序重新评估所有这些资源
当使用--debug
运行时,您将在代理上看到这样的消息:
Debug: Puppet::Type::Example::ProviderExample: file /usr/bin/foo does not exist
文件出现后,消息应该停止,并且使用提供程序的任何资源都应该运行。如果文件未显示,则此消息将在代理运行结束时显示:
Error: Could not find a suitable provider for example
在考虑提供程序之前,目录应该始终在主服务器上编译,并且代理应该在失败这些资源之前尝试尽可能多地运行
正如你所说,“如果你做得好,这是有效的” 提供使用命令
指令(例如命令:foo=>'/usr/bin/foo'
)应在文件存在时自动开始用于资源,如果找不到其他工作提供程序
命令
在内部生成一个“限制”指令,将提供程序限制为仅在文件存在时运行。类似的方法适用于“功能”,例如要求加载某个Ruby库(“功能”)。当目录中存在没有其他工作提供程序的资源时,Puppet代理应不断地为提供程序重新评估所有这些资源
当使用--debug
运行时,您将在代理上看到这样的消息:
Debug: Puppet::Type::Example::ProviderExample: file /usr/bin/foo does not exist
文件出现后,消息应该停止,并且使用提供程序的任何资源都应该运行。如果文件未显示,则此消息将在代理运行结束时显示:
Error: Could not find a suitable provider for example
在考虑提供程序之前,目录应该始终在主服务器上编译,并且代理应该在失败这些资源之前尝试尽可能多地运行
正如你所说,“如果你做得好,这是有效的” 能否显示调试日志和提供程序代码?从我的记忆和快速测试来看,这应该是可行的。在运行期间,您应该看到“file/usr/bin/example不存在”调试,当命令可用时,调试应该停止。目录编译也不应该受到提供程序可用性的影响,它在评估过程中完全是代理端的。查看安装依赖包的代码后,它是不可能工作的!但是调试输出确实显示了它的尝试性,这证明了您的观点。所以,请随意回答“如果你做得好,这很有效”,我会接受:-)很高兴你把它整理好了。回答!能否显示调试日志和提供程序代码?从我的记忆和快速测试来看,这应该是可行的。在运行期间,您应该看到“file/usr/bin/example不存在”调试,当命令可用时,调试应该停止。目录编译也不应该受到提供程序可用性的影响,它在评估过程中完全是代理端的。查看安装依赖包的代码后,它是不可能工作的!但是调试输出确实显示了它的尝试性,这证明了您的观点。所以,请随意回答“如果你做得好,这很有效”,我会接受:-)很高兴你把它整理好了。回答!