2014-01-16 35 views
4

我正在一键式部署系统到Ubuntu机器上。刚开始使用Puppet。它的出现,为了让我使用外部模块,我必须使用的东西预装他们像如何自动化Puppet的模块安装

puppet module install foo 

问题:

  1. 我总是对我有预安装,以模块使用它们?
  2. 如何自动安装Puppet模块?

这是一个独立的木偶(所以不是主从)。我将不得不为不同的客户多次重复。因此,将有一个单一的按钮做所有为我工作是很好的。在后期,有一个主从设置的地方。但它必须对每个客户都是独立的。

回答

3

回答我自己的问题。

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

不,我不知道。在设置单个节点(无主机)的情况下,模块可以放入--modulepath=/my-module-root路径中,木偶将拾取它们。我的问题是该模块的文件夹名称与init.pp中的类不匹配。例如

 
| modules 
| -- gini_cassandra ++ HERE ++ 
| ---- manifests 
| ------ init.pp 

里面init.pp

class cassandra ... 

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

如何自动安装Puppet模块?

因为我不需要install模块在无主设置,我不需要自动化它。但是,我发现librarian-puppet(感谢这个answer)是非常有用的。我不需要版本控制外部模块。图书管理员将在我的机器,运行安装的目标机器以及构建机器上为我提供它们。

7

我正在减少主设置。

你或许应该看看librarian-puppet 你写Puppetfile描述所有的模块:

  • 本地目录,
  • 远程混帐,
  • 木偶锐意

和馆员木偶会为你计算一个模块目录。

librarian-puppet install

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

 
config.vm.provision :puppet, :module_path => "modules" 
+0

不完全是我在找的东西,但是我发现图书管理员 - 傀儡真的很有用。它也适用于Windows,这是我的开发平台。大拇指的帮助。我会将自己的答案标记为已接受。 – oleksii

1

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

所以如果有一个模块需要使用,那么在master上安装1个'puppet模块安装foo'是所有必需的。

+0

有道理。然而,在我的设置中,它是一个单一的傀儡节点。我必须为每个客户重复这一次。有没有办法排除'puppet module install foo'的手动步骤? – oleksii

+0

创建一个使用exec资源安装它们的puppet类? – rojs