使用puppet从源代码构建

时间:2017-01-02 10:56:41

标签: puppet

如何在不使用多个Exec命令的情况下使用puppet从源代码构建?我们可以使用伪造的模块吗?

1 个答案:

答案 0 :(得分:1)

可以使用Puppet从源代码构建应用程序而无需使用execs,可能使用自定义写入类型和提供程序。否则,是的,它必须是一些具有&onlyif等语句的不同exec资源,以阻止它们在每次代理运行时运行。

Puppet的配置管理模型被称为所需的状态模型:您定义系统的最终状态并让系统。这就是为什么在Puppet中通常会避免使用exec的原因:它们不适合所需的状态模型。它还可以更新应用程序,或处理未知数,例如创建所需文件的编译部分失败。

在我看来,我不建议使用配置管理从源代码构建应用程序。这样做有一些固有的问题(这不仅适用于Puppet,而是大多数配置管理语言):

  • 运行较慢,因为运行编译可能会更长并且检测到它完成通常是一个稍微棘手的任务
  • 半完成状态或失败的问题:如果编译中途中断,则更难以检测和解决
  • 使编译具有幂等性:您必须将命令包装在逻辑中,以检测安装是否已完成。但是,这很难,因为即使编译以失败结束也可能发生标志文件或特定二进制文件的检测
  • 升级或更改:升级或更改应用程序并不容易。使用包可以更容易实现。

这听起来像是通过包装,使用FPM等工具或仅使用creates等本机包构建工具来提供更好的服务。