我遵循了Puppet 2.7 Cookbook的一些“最佳实践”,并使用git cvs创build了agent-puppet master框架。 不幸的是,这本书不包括Gepetto,所以我不得不即兴创作这部分。
我有一个主要的git仓库,其中包含manifests和modules文件夹。 我想在模块中添加一个自定义模块,但是这样做的时候遇到了问题。
首先,我找不到像“主configuration”项目types,默认情况下将包含manifests和modules文件夹。 所以我创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仓库),我认为映射它的最好方法是采取以下步骤:
- 打开“Git Repositories”视图。 你可以在“窗口” – >“显示视图” – >“其他…” – >“Git”
- 通过指定一个现有的本地克隆(带有绿色加号的黄色鼓)或克隆一个远程仓库(两个带有绿色箭头的黄色鼓),将问题库添加到视图中,
- 展开存储库,然后展开“工作目录”和“模块”文件夹。
- 右键单击其中一个模块,然后select“导入项目…”。 popup一个向导
- select“导入为一般项目”,然后点击“完成”。 该项目现在显示在Project Explorer视图中。
- 右键单击该项目,然后select“添加Puppet项目性质”
对所有需要的模块重复步骤4-6。
您现在可以单独使用这些模块,Geppetto会将这些项目识别为模块项目并相应地映射它们,以便交叉引用等正常工作。
要将新模块添加到同一个Git存储库中的“modules”目录中,请执行以下操作:
- 右键单击Project Explorer并select“新build” – >“项目” – >“Puppet模块项目”
- input项目的名称,选中“使用默认位置”,然后单击完成
- 右键点击项目,select“团队” – >“共享项目”。
- 在popup的向导中select“Git”
- 点击“下一步”,然后在下拉菜单中select存储库
- 在“存储库中的path”字段中input“模块”
- 点击完成
在这里的Geppetto文档中可以find更多的信息: http : //docs.puppetlabs.com/geppetto/4.0/#geppetto-andpe
如何改善这种stream动的想法是非常受欢迎的。