获得木偶安装模块

在我目前的设置中,我有一个主机configuration脚本,需要在某个DC中新configuration一个虚拟机,发出我需要运行puppet apply命令(确保hostname已经设置,puppet已经安装,可以看到它木偶configuration)。 然后puppet apply照顾其余的(加上面料部署我们的软件)。

一切正常,但安装需要的puppet模块目前发生在我的主机脚本。 这完美的工作,直到我想安装新的模块,然后我必须在现有的主机上手动sorting。 看来傀儡应该可以做到这一点,但我还没有find正确的指示。

 # If only this worked... module { 'maestrodev-rvm': ensure => present } 

我看过木偶图书pipe理员 ,但似乎增加了更多的复杂性,而不是解决我们安装的小数量的模块。 如果/当我们需要更复杂的东西时,看起来像是一个解决scheme。

我错过了什么吗?

librarian-puppet是最简单的答案。 就我个人而言,我总是会build议提前做这项工作,并且首先实施一个可扩展的解决scheme,而不是不断地修改你的方法。

它的工作原理与bundler为Ruby gems所做的一样 – 你只需要创build一个Puppetfile来列出想要的模块(即没有依赖关系)。

当你第一次在你的Puppet开发机器(通常是你的本地工作站)上运行librarian-puppet install的时候,它会询问所有模块并自动build立一个依赖列表(如果这些模块使用metadata.json文件来详细说明依赖关系) 。 它还将创buildPuppetfile.locklogging为每个模块及其依赖关系select的确切版本。

对于后续更改,可以运行librarian-puppet update <module>将特定模块更新为最新版本。 这将重新计算依赖关系并更新Puppetfile.lock

一个重要的注意事项 – librarian-puppet完全控制你的modules目录,所以你写的任何自定义模块都需要在你的Puppetfile被取出并作为模块引用。

部署与在节点上运行librarian-puppet install一样简单 – 这将查看Puppetfile.lock (而不是Puppetfile )并安装所有模块。