我刚刚安装了工头,我不知道如何去把我所有的configuration在版本控制。 我知道我可以使用Git来安装我在Puppet master上的每个模块,但是更喜欢一个更全面的解决scheme,它不仅包含模块,还包含与每个主机相关联的类以及主机上设置的任何variables。 任何build议将不胜感激与相关的工作stream程。 如果是相关的,我将GitLab设置为现场的中央Git服务器,并计划尽快安装一个CI服务器,如Jenkins。
有一个插件可以让您的基础架构定义在Foreman中,几乎是Git中数据的序列化版本,并上传(并更改您的基础架构)更改。 也许这对你有用
通过工头,您应该能够查看所有类以及在主机详细信息中分配的任何configurationvariables。 请参阅: http : //theforeman.org/manuals/1.4/index.html 。
我不知道如果我理解你的问题,但你遇到“木偶图书pipe理员” https://github.com/rodjek/librarian-puppet ? 在那里你可以定义你喜欢使用的木偶模块的版本/ sha1。
以防万一有人在以后阅读:使用puppet,你可以定义你想安装哪个版本的软件包/软件,使用“version => XYZ”声明。
基因,我尽我所能,但我仍然没有得到你的问题。 对不起,那:(
我想你以后很简单。
Puppetconfiguration在/etc/puppet 。 最简单的select就是运行
git init /etc/puppet/
你可以添加Gitlab作为一个远程并推送到它。
另外,你也可以尝试一下我在这里所描述的不是以工头为中心的东西,但是我没有理由不把它当作灵感来使用。
你也可以考虑etckeeper,它会自动完成
你甚至可以写一个类似的包装
vi puppet_wrapper.sh
#!/bin/bash # variables ETCKEEPER=`which etckeeper` ETCKEEPER_MSG=$1 PUPPET=`which puppet` PUPPET_CMD=$2 # Msg would be your commit msg etckeeper commit $ETCKEEPER_MSG # PUPPET_CMD eg apply puppet $PUPPET_CMD
我正在与这一段时间,并为我的需要没事。
我想你只需要在git中设置一个仓库,其中git仓库的每个分支都将映射到一个puppet环境,当你想在puppet中改变某些东西时,只需要克隆仓库,进行修改并将其推送到相应的分支。 你还需要设置一个git钩子,当你将更改推送到git仓库时,它会触发,以便更新puppet服务器上的映射环境。 你可以手动或者通过这个傀儡模块来完成这一切。