(对于这个问题的愚蠢,我们事先道歉。我通常是程序员,而不是系统管理员,但我本人要自己去自动化一些事情,并清理一些自动化的事情,但不是最漂亮的方法。 。:-)
我一直在研究用于将软件自动部署到一堆服务器的各种工具,例如cfengine,Puppet和Chef。到目前为止,Puppet看起来最吸引人,但我当然还没有承诺任何事情。
这些工具看起来都可以很好地完成工作,以使一堆服务器使用预打包的软件保持最新。
我不明白的是:人们如何使用一种工具(如Puppet)来管理我们自己的内部软件的部署?我想我不知所措我,因为我已经看到了一千教程展示了如何保持阿帕奇ensure => latest
(这是很酷的),但是没有一个相当相当于我用例的今天,这是更多的东西一样:
- 当人类按下按钮时,
- 从版本控制存储库B中提取分支A
- 运行命令C进行编译
- 将二进制文件D复制到服务器E1到E10
- 在每台服务器上,运行命令F以使所有更改生效
Puppet听起来很棒,我完全看到了声明性,幂等配置优于某些shell脚本的优势,但是我还没有看到任何有关“您要将Shell脚本更新为Puppet(或Chef,或cfengine)的教程”,应该做”。有这样的事吗?对其他人来说,显而易见的是如何采用Puppet文档中提供的内容并复制我想要的行为?我只是不明白吗?
到目前为止,对我来说听起来像是,人类(#1)会手动打包Puppet外部的软件(#2和#3),手动更新Puppet配置,这会触发Puppet更新服务器。 .. 也许?(我确定您可以告诉我,这里我有点困惑。)
谢谢!