4

我正在将系统一键部署到 Ubuntu 机器上。刚开始为此使用 Puppet。看来,为了让我使用外部模块,我必须使用类似的东西预先安装它们

puppet module install foo

问题:

  1. 我是否总是必须预先安装模块才能使用它们?
  2. 如何自动安装 Puppet 模块?

这是一个独立的傀儡设置(所以不是主从傀儡)。我将不得不为不同的客户重复多次。因此,如果有一个按钮为我完成所有工作,那就太好了。后期有主从设置的地方。但它必须对每个客户都是独立的。

4

3 回答 3

7

我正在使用无主设置。

你可能应该看看librarian-puppet 你写的 Puppetfile 描述了你所有的模块:

  • 本地目录,
  • 远程git,
  • 傀儡锻造

librarian-puppet 将为您计算一个模块目录。

图书管理员木偶安装

然后,您可以将其上传到目标机器并启动 puppet 应用。它也适用于流浪汉。

config.vm.provision :puppet, :module_path => "modules"
于 2014-01-16T10:59:04.500 回答
3

回答我自己的问题。

我是否总是必须预先安装模块才能使用它们?

不,我没有。在单个节点设置(无主节点)中,可以将模块放入--modulepath=/my-module-root路径中,并且 puppet 会拾取它们。我的问题是模块的文件夹名称与init.pp. 例如

| 模块
| -- gini_cassandra ++ 这里 ++
| ---- 体现
| ------ 初始化.pp

里面init.pp我有

class cassandra ...

一旦我重命名gini_cassandracassandra事情开始工作。

如何自动安装 Puppet 模块?

因为我不需要install无主设置中的模块,所以我不需要自动化它。但是,我发现librarian-puppet(感谢这个答案)非常有用。我不需要对外部模块进行版本控制。Librarian 将在我的机器、我运行安装的目标机器和构建机器上为我提取它们。

于 2014-01-18T10:03:35.967 回答
1

如果您使用的是 puppet master,那么您只需要在 master 上安装模块。客户端机器不需要它们,因为主机将为它们编译它们的配置。

因此,如果您想使用某个模块,只需在主服务器上执行 1 次“puppet module install foo”即可。

于 2014-01-16T14:10:41.980 回答