版本控制工头和木偶


8

我是第一次设置Foreman,但不确定如何将所有配置置于版本控制下。我知道我可以对在Puppet主机上安装的每个模块使用Git,但希望使用更全面的解决方案,该解决方案不仅包含模块,还包含与每个主机关联的类以及主机上设置的任何变量。任何建议以及相关的工作流程将不胜感激。如果相关的话,我确实将GitLab设置为站点上的中央Git服务器,并计划尽快设置诸如Jenkins的CI服务器。


您找到想要的东西了吗?我仍在寻找一种全面的方法来管理Foreman模板和conf。管理 我注意到这个问题的接受答案为零。
哈珀维尔

Answers:


2

有一个插件可以将您的基础结构定义保留在Foreman中,几乎将数据的序列化版本保留在Git中,然后上载(并更改您的基础结构)更改。也许对您有用

https://github.com/marianitadn/foregit


乍一看,这可能正是我一直在寻找的东西!我会尽快检查出来,如果可以,请接受答案。谢谢!
GeneBean 2014年


0

我不确定我是否理解您的问题,但是您是否遇到过“木偶图书管理员” https://github.com/rodjek/librarian-puppet?您可以在其中定义您要使用的木偶模块的版本/ sha1。


非常有用的信息(以及我很可能会使用的信息),但不是我想要的信息。我希望将版本应用于Foreman和Puppet中完成的所有事情,而不仅仅是模块。这样是否可以清除我要做什么?
GeneBean 2014年

0

以防万一以后有人阅读:使用puppet,您可以使用“版本=> XYZ”声明定义要安装的软件包/软件的版本。

吉恩,我已尽力而为,但我仍然没有收到您的问题。抱歉:(


没问题,我非常感谢您的尝试。
GeneBean 2014年

0

我认为您所追求的非常简单。

人偶配置位于中/etc/puppet。最简单的选择就是运行

git init /etc/puppet/

然后,您可以将Gitlab添加为遥控器并推送到它。

另外,您可以尝试像我在这里描述的那样,但不是以工头为中心的,但我认为没有理由不能将其用作灵感。


0

您可能还考虑了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 e.g. apply
puppet $PUPPET_CMD

我为此工作了一段时间,可以满足我的需求。


0

我认为您只需要在git中建立一个存储库,其中git repo的每个分支都将映射到一个puppet环境,并且当您想更改puppet中的某些内容时,只需克隆该repo,进行更改,然后将其推送到相应的分支即可。您还需要设置一个git挂钩,当您将更改推送到git repo时将触发该挂钩,以便它更新puppet服务器上的映射环境。您可以手动或仅通过此木偶模块来完成所有这些操作。

https://github.com/theforeman/puppet-puppet

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.