我的服务器存在于没有外部networking连接的环境中(这是必需的),所以当我部署更新时,所有包,二进制文件,configuration文件等都必须包含在交付的介质上。 当然,我想要一些configurationpipe理,所以我可以告诉什么已经和没有安装。
所以我想知道,如果人们有厨师,傀儡或其他configurationpipe理types的工具来处理这种types的环境的经验。 最糟糕的情况是我将我的更新部署为RPM。
编辑:
我的设置有Linux服务器和Windows服务器。
我个人使用Puppet和cfEngine已经发现这两个任务都是很好的工具,我相信他们目前是这个领域的主要参与者。 当你开始尝试缩放它时,puppet需要更多的关注,但是它有一个更好的语法,cfEngine可以很好的扩展,但是学习巫术还需要一些时间。 如果没有外部networking连接包括可以控制的任何其他服务器,则两者都能够caching目录/configuration,以防无法访问主服务器,作为自己的主服务器,或只能按需运行,所以它们应该都处理无networking的要求。 如果他们可以访问内部pipe理的服务器,这绝对不是问题。
一个我用bcfg2发誓的人,但是我没有做任何工作。 我们目前在我的工作地点使用Puppet,无论值多less钱。
每个人都有自己的优势和弱点,你的select主要取决于你可能有的其他任何要求。 你可以在这里看一下你所拥有的更常见和更隐蔽的选项的基本破解。
我假设你出于安全原因已经有一大批在离线环境下运行的服务器(这些原因变得越来越普遍)。 自己遇到了非常类似的情况。 这个问题的真正答案依赖于你的架构是什么样的。
所有常见的玩家(Chef,Puppet,CF-Engine,Salt,Annsible)都将在离线环境下工作,但是某些正常工作的东西不会,并且会阻碍你的工作(例如伪造的木偶自动下载模块需求没有工作)。 但是,根据您使用的软件的版本,有解决方法。 对于木偶(如果你使用v3),我会build议使用r10k来帮助缓解这个问题(我相信v4包括它)。
@David对傀儡说什么也是很好的build议。 现在,重要的是你正在使用我会build议下面,我已经发现将使你的生活变得如此简单: –
从Windows的angular度来看(假设您使用的是最新版本),可以使用Windows DSC + Powershell,至lessChef和Puppet有可以与之交互的食谱/模块来configurationWindows组件(以及其他您可以使用Powershell )。
如果这有助于我在这里看到我自己的问题的答案,因为这是“其他”决定因素之一。
一般来说,你会根据自己的需要来评估每个工具,但是大多数情况下,我发现似乎有一些解决任何问题的社区解决scheme可以缓解您可能遇到的任何问题。
我一直在玩断断续续的Puppet最近的远程环境,我不能有一个主服务器。 特别是, 这篇文章对我有帮助,如果你决定去Puppet路线,那么可能值得一看。
你可以在/ etc / puppet下build立一个普通的Puppet结构,然后手动运行puppet。 到目前为止,我还没有想出如果没有主人,logging和报告会有多好。
这是我在开发/testing过程中最好的朋友:
puppet -d -v --modulepath=/etc/puppet/modules /etc/puppet/manifests/site.pp
Salt允许您为包裹提供替代位置。
mypkgs: pkg.installed: - sources: - foo: salt://rpms/foo.rpm - bar: http://somesite.org/bar.rpm - baz: ftp://someothersite.org/baz.rpm - qux: /minion/path/to/qux.rpm
在这个例子中,这些包将从指定位置安装: