如何在使用git时将puppet模块添加到Gepetto?

我遵循了Puppet 2.7 Cookbook的一些“最佳实践”,并使用git cvs创build了agent-puppet master框架。 不幸的是,这本书不包括Gepetto,所以我不得不即兴创作这部分。

我有一个主要的git仓库,其中包含manifestsmodules文件夹。 我想在模块中添加一个自定义模块,但是这样做的时候遇到了问题。

首先,我找不到像“主configuration”项目types,默认情况下将包含manifestsmodules文件夹。 所以我创build了一个裸“Puppet项目”项目,并手动创build文件夹。

因为 – 据我了解 – 在这个configuration中,Gepetto并不真正知道,这个项目实际上将保存所有的模块,它没有提供一个选项来创build“Puppet模块项目” 子项目 ,它将嵌套在“木偶项目“的modules文件夹。

当我手动嵌套它(通过在New Puppet Module Project向导中指定一个自定义位置),我得到一个'Auto share git projects' has encountered a problem错误:

无法忽略资源尝试beginRule:F / puppet @ puppetmaster / modules / unnamed,不符合外部作用域规则:MultiRule [P / mymodule]

当所有的东西都被封装了所有configuration的“master project”所覆盖的时候,你们有没有人设法让Gepetto使用模块?

这是我从Thomas Hallgren得到的答案:

Geppetto目前不支持嵌套模块的项目。 它假定你每个模块有一个项目。 然而,一个项目与磁盘上的物理位置不同,所以大多数布局可以成功映射到Geppetto工作区。 对于你在下面提到的用例(一个带有“modules”文件夹的Git仓库),我认为映射它的最好方法是采取以下步骤:

  1. 打开“Git Repositories”视图。 你可以在“窗口” – >“显示视图” – >“其他…” – >“Git”
  2. 通过指定一个现有的本地克隆(带有绿色加号的黄色鼓)或克隆一个远程仓库(两个带有绿色箭头的黄色鼓),将问题库添加到视图中,
  3. 展开存储库,然后展开“工作目录”和“模块”文件夹。
  4. 右键单击其中一个模块,然后select“导入项目…”。 popup一个向导
  5. select“导入为一般项目”,然后点击“完成”。 该项目现在显示在Project Explorer视图中。
  6. 右键单击该项目,然后select“添加Puppet项目性质”

对所有需要的模块重复步骤4-6。

您现在可以单独使用这些模块,Geppetto会将这些项目识别为模块项目并相应地映射它们,以便交叉引用等正常工作。

要将新模块添加到同一个Git存储库中的“modules”目录中,请执行以下操作:

  1. 右键单击Project Explorer并select“新build” – >“项目” – >“Puppet模块项目”
  2. input项目的名称,选中“使用默认位置”,然后单击完成
  3. 右键点击项目,select“团队” – >“共享项目”。
  4. 在popup的向导中select“Git”
  5. 点击“下一步”,然后在下拉菜单中select存储库
  6. 在“存储库中的path”字段中input“模块”
  7. 点击完成

在这里的Geppetto文档中可以find更多的信息: http : //docs.puppetlabs.com/geppetto/4.0/#geppetto-andpe

如何改善这种stream动的想法是非常受欢迎的。