我正在将系统一键部署到Ubuntu机器上。刚刚开始使用Puppet。看来,为了让我使用外部模块,我必须使用类似
之类的东西预先安装它们puppet module install foo
问题:
这是一个独立的木偶设置(所以不是主从的木偶)。我将不得不为不同的客户多次重复这一点。因此,有一个按钮可以为我完成所有工作。在后期阶段,有一个主从设置的地方。但它必须对每个客户都是独立的。
答案 0 :(得分:7)
我正在设置一个主设备。
你应该看看librarian-puppet 你写Puppetfile描述你所有的模块:
和librarian-puppet将为您计算模块目录。
librarian-puppet install
然后,您可以将其上传到目标计算机并启动puppet apply。 它也适用于流浪者。
config.vm.provision :puppet, :module_path => "modules"
答案 1 :(得分:3)
回答我自己的问题。
我是否总是需要预先安装模块才能使用它们?
不,我没有。在单个节点设置(无主)中,模块可以放入--modulepath=/my-module-root
路径,木偶将拾取它们。我的问题是模块的文件夹名称与init.pp
中的类不匹配。例如
| modules | -- gini_cassandra ++ HERE ++ | ---- manifests | ------ init.pp
内部init.pp
我有
class cassandra ...
将gini_cassandra
重命名为cassandra
后,事情就开始了。
如何自动安装Puppet模块?
由于我不需要install
无主设置中的模块,我不需要自动化它。但是,我发现librarian-puppet
(感谢此answer)非常有用。我不需要版本控制外部模块。图书管理员会在我的机器,运行安装的目标机器和构建机器上为我提取它们。
答案 2 :(得分:1)
如果你正在使用木偶大师,那么你只需要在主人身上安装模块。客户端机器将不需要它们,因为主机将为它们编译它们的配置。
因此,如果您想使用某个模块,那么只需要在主设备上安装一次“木偶模块foo”即可。