如何使用puppet安装和配置自定义应用程序?
我的目标是让我的用户从一台基本Linux机器开始,安装puppet,克隆我的GitHub repo并运行如何使用puppet安装和配置自定义应用程序?,puppet,Puppet,我的目标是让我的用户从一台基本Linux机器开始,安装puppet,克隆我的GitHub repo并运行puppet apply myapp.pp,然后使用puppet: 1) 使用任何先决条件等配置系统, 2) git克隆另一个包含我的应用程序代码的repo 3) 编译、安装和配置我的应用程序 让Puppet执行1、2和3的细节似乎相当简单,但我无法理解的是,我是应该编写一个Puppet模块,还是仅仅编写一个清单 我从一个清单开始,但模板似乎不起作用,puppet总是抱怨找不到.erb文件。这
puppet apply myapp.pp
,然后使用puppet:
1) 使用任何先决条件等配置系统,
2) git克隆另一个包含我的应用程序代码的repo
3) 编译、安装和配置我的应用程序
让Puppet执行1、2和3的细节似乎相当简单,但我无法理解的是,我是应该编写一个Puppet模块,还是仅仅编写一个清单
我从一个清单开始,但模板似乎不起作用,puppet总是抱怨找不到.erb文件。这项工作可以在这里看到:
在做了一些询问之后,我被告知我需要将代码重构成一个Puppet模块,我已经开始在这里做了:
然而,似乎没有办法在模块上运行puppet apply
,那么我该如何实现我想要的呢?有人说我需要从一个小的.pp文件存根调用我的模块,但我看不出如何在同一个git repo中这样做,因为当我尝试包含它时,它说它找不到我的模块
有没有什么好的例子说明这是一件已经完成的事情
我曾尝试遵循Puppet文档,但它似乎做了一些跳跃或假设太多:首先,在运行命令时发布错误,这将有助于调试问题。以下是一些您可以遵循的提示: 要应用独立模块,您需要具有以下结构:
<modulename>/manifests/init.pp
/<subname>.pp
subname.pp
内容可能如下所示:
class <modulename> {
notify {"New module using Puppet apply":}
include <modulename>::<subname>
}
class <modulename>::<subname> {
# Some manifest
}
正如@FelixFrank所建议的,您可以将modulepath
作为参数
puppet apply -e 'include <modulename>' --modulepath=/path/to/modules
puppet apply-e'include'--modulepath=/path/to/modules
非常好!还请注意,模块必须位于当前环境目录中的$modulepath
(或新的modules/
中)。作为一个简单的重写,您可以使用另一个参数,puppet apply-e'include exist'--modulepath=。
假设您在父目录中。@FelixFrank添加了您关于modulepath的建议。谢谢
puppet apply -e 'include <modulename>' --modulepath=/path/to/modules