我们能用像puppet这样的工具来获得类似git的function么?

我正在考虑一种方便的方式来跟踪我的VPSconfiguration,并部署在一个点击(或多或less一个)。

我一直在阅读并查看不同的configuration部署工具,傀儡似乎是最受欢迎的,只能回到原点。

即使Puppet提供的function吸引了我很多,我可能会使用它,我似乎无法轻松地find简单的方法。

我必须维护和更改/ etc中的configuration文件,我真正想要摆脱的是ssh – > vim或nano,或者sftp …我希望在我的开发计算机上拥有整个文件夹,并享受其权力和速度的崇高文本编辑,然后做混帐提交,混帐推, – >重新启动一些东西和hopla,我们更新。

在傀儡范式中,它似乎更像是:

file {'/tmp/test1': ensure => file, content => "Hi.\n", } 

git最初的担忧并不是完全适合这种部署的工具(也不能完全确定所有涉及到的风险),这让我读到了木偶/厨师,

现在你如何解决这个问题,并且你有使用git / git-deploy / etckeeper的生产系统来离线编辑你的/ etcconfiguration?

puppet这样的工具是为了使configuration达到正确的状态而devise的。 像git这样的工具旨在跟踪文件的版本。 这两项任务都被称为configurationpipe理,这可能导致混淆。 在下面,我将使用版本控制来引用诸如git工具,并且声明式configurationpipe理指的是puppet工具。 我将假定你不需要跟踪configurationpipe理工具安装哪个版本的组件。 重现错误时,这可能很重要。 configurationpipe理工具可以跟踪版本,并可以使用版本控制工具来存储清单。

声明式configurationpipe理允许您指定所需的configuration以及如何到达那里。 一旦你已经定义了所需的configuration,并启动了该工具,它将采取指定的操作来安装和configuration所需的组件。 build议您使用版本控制工具来维护此configuration。

编辑:当运行自动化configuration时,以不会提示configuration值的模式运行包pipe理器很重要。 (Ubuntu / Debian可以使用pre-seed文件来覆盖默认的configuration值。)如果软件包pipe理器更新/etc文件,则需要评估更改并可能需要调整声明性configuration。 (Ubuntu / Debian会通过在文件名中添加一个类似.dpkg-old.dpkg-new的扩展来跟踪replace。)我在升级O / S版本后扫描更改,这通常会生成许多configuration文件更改。

有很多方法可以用来更新/etc的configuration文件。 我用过的三个是: – 使用平台的configuration工具来更新文件(Ubuntu / Debian有一个预configuration机制); – 使用声明式configurationpipe理工具编辑configuration文件; 以及 – 从中​​央存储库复制configuration文件。

每个系统都有less量的主机特定的configuration文件。 这些将包括与主机命名,静态networkingconfiguration等有关的文件。 如果通过编辑更新文件,则可以添加声明性configurationpipe理工具无法纠正的本地更改。

版本控制工具在文件更改时跟踪文件的内容。 通常,它们需要手动提交操作,因此受pipe文件可能与受控版本显着不同步。 纪律是必需的跟踪变化。

我用来确保primefaces更改的方法是使用版本控制工具为我的声明式configurationpipe理工具提供configuration。 – 我编辑我自己的工作目录中的configuration。 一旦更改完成,我validation更改并提交它们。 – 主服务器通过更新其configuration来开始其进程。 (更大的安装可能有两个或更多分支机构和主服务器,允许将更改推送到一小组服务器进行testing。) – 客户端从主服务器获取其configuration更改。 – 声明性configurationpipe理工具将运行configuration与其configuration进行比较,并应用所需的更改。