- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为事实上的高可用性服务运行复杂的服务器设置。到目前为止,我大约需要两天时间来设置所有内容,所以我想自动配置。
但是,我对(运行的)服务器做了很多手动更改。一个典型的例子是更改防火墙配置以应对各种黑客攻击、数据包泛滥等。能够在事件节点上快速工作很重要。此外,服务器维护着许多事件的 TCP 连接,并且为了简单的配置更改而丢失这些连接是不可能的。
我不明白 Chef 或 Puppet 是否旨在处理此问题。一旦我更改了一些系统配置,我想将它存储在某个地方并在配置下一个实例时使用它。我应该坚持使用其中一种工具还是选择其他工具?
最佳答案
手动更改和配置不需要手动操作。他们甚至不一起喝茶。
在工作中,我们使用 puppet 来管理所有架构,并且由于性能瓶颈、攻击等,我们需要匆忙进行手动更改。
我们要做的是首先确保 puppet 能够设置架构的每个部分,以便在没有任何特定调整的情况下交付。
然后当我们需要进行手动更改时,如果您很着急,只要您不弄乱由 puppet 管理的文件就没有风险,如果它是 puppet 管理的文件,我们需要更改什么,那么我们只需停止 puppet 代理并做任何事情我们需要。
匆忙结束后,我们进行如下操作:
这些更改应该应用于具有相同症状的所有服务器?
如果是这样,那么您可以开发 puppet 调用的“事实”,它是每次运行时在代理上运行的代码,并将结果保存在所有 puppet 模块中可用的变量中,例如,如果您更改了 ip conntrack max 值,因为防火墙无法处理所有连接,您可以轻松地(十行代码)在 puppet 中每次运行一个具有当前 conntrack 计数值的变量,因此告诉 puppet 设置与当前使用情况相关的最大值。然后所有其他服务器都将受益于此调整,并且您可能不再需要处理 conntrack 问题(只要您继续以短频率运行 puppet,这是默认设置)
在给定的紧急情况下,这些更改应该始终手动应用吗?
如果配置是由 puppet 管理的,想办法让配置包含其他文件,并告诉 puppet 忽略它。这是最简单的方法,但并不总是可行(例如/etc/network/interfaces 不支持包含)。如果不可能,那么您将不得不在紧急情况下停止 puppet 代理,以便能够更改 puppet 文件,而不会在下一次 puppet 运行时被删除。
是否仅针对此主机进行此更改,而其他主机都不需要它?
无论如何将其添加到 puppet 中!如果 $fqdn == my.very.specific.host 放一个甜食,然后放入您需要的任何东西。即使对于单个案例,将您所做的所有更改迁移到服务器总是有益的(并且耗时),因为如果由于某种原因您的服务器崩溃到不可恢复的状态(例如硬件),这将允许您完全恢复服务器设置问题)
总之:
对我来说,处理手工更改的技巧是在推理您决定如何进行更改以及在紧急情况结束后将该逻辑转移到 puppet 上时付出了很多努力。如果您因为给定的软件插槽都已使用但服务器上仍有可用内存而感到有问题,那么处理流量峰值是合理的,允许运行更多插槽,然后花一些时间将该逻辑移入 puppet .当然要非常小心,并且与您要测试它的架构上不同场景的数量一样耗时,但最后它非常,非常有返回的。
关于configuration - 使用 Chef/Puppet 并管理手动更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12806902/
我有一套用于配置 Web 和 SQL 服务器的说明书,它们目前在我们的持续部署管道中使用。我希望开发人员能够使用相同的 Recipe 来设置他们的本地开发环境,而无需在 Chef 服务器上注册每台开发
我是 Chef 的新手,并且已经成功配置了我的三个节点 - 工作站、客户端和服务器。 Chef 文档提到了一个 Chef “repo”,其内容看起来与 Chef 服务器非常相似。两者有什么区别,或者它
我正在使用Solo Solo并尝试为Oh My Zsh安装食谱!这导致这个麻烦的错误: Failed to read the private key /etc/chef/client.pem: Err
我正在使用 Vagrant 和 Chef-solo 来测试我的食谱,但我有一个需要厨师服务器的特定食谱(它使用搜索)。我希望我的默认配方如下所示: include_recipe 'some_recip
我在计算机上设置了一个 Chef 客户端,以便使用 learnchef.com 提供的实验室进行练习。 我现在如何将我的 Chef 客户指向我们的内部 Chef 服务器(我们有 2 个非生产和生产服务
我有一个现有的 Chef 服务器设置,其中注册了大约 300 个节点。现在我想转移到另一个具有更新版本的 Chef 服务器。但是我不确定如何将所有节点和其他数据从较旧的 Chef 服务器迁移到较新的服
我正在将我的 Recipe 从 Chef 版本 12.11.18 升级到 13.6.4。某些版本 13 的特定说明在 Chef 版本 12 中不起作用,反之亦然。我现有的服务器仍然使用 Chef Cl
我正在测试一本食谱,其中一个 LWRP 似乎不包含我期望的属性。我需要查看在节点上设置的属性列表。有没有办法在 Vagrant 厨师独奏节点中做到这一点? 我用 kitchen converge它使用
我已经将 Chef 文件从我的 Chef 服务器复制到本地客户端节点,在 ~/.chef 下,我在 ~/.chef/environments 下有所有环境,例如development.rb, prod
对厨师来说完全陌生......我们曾经从 ppa 存储库安装 elasticsearch 但现在我想从头开始构建它(存储库不再更新)每次我更改我的 attributes/default.rb 中的版本
olr以下情况我该如何处理? /etc/init.d/chef-server-webui start * Starting chef-server-webui ~ In 15468 ...fa
尝试在我的 Oracle Linux Box 上安装 Chef。完全按照以下说明进行操作后,我到达了以下位置: 运行 Chef 独奏: (在网址中): http://wiki.opscode.com/
很明显,每个环境都使用一个策略组(如开发、暂存或生产,如 they do here)。然而,当涉及到处理一些与环境相关的属性时,例如名称或种子地址,与旧的角色/环境布局相比,使用策略文件处理起来非常棘
我有一本安装 nginx 并安装自定义 nginx.conf 文件的 Chef Recipe 。基本上就是 Opscode 上的 Cookbook,使用 cookbook_file 来安装文件。 如果
试图在谷歌云引擎上引导一个节点,但我所有的尝试都以失败告终代码 knife bootstrap ipaddress -x raid -i ~/.ssh/google_compute_engine --
我需要创建一个所有者为“testuser”的目录树。 但是,如果我指定“/foo/bar/baz”,则只有在“testuser”、“/foo”和“/foo/bar”下创建的“baz”归“root”用户
也许我错过了文档中的某些内容,但是在阅读了在多个地方定义时使用属性的顺序后,我不明白 中的属性设置的位置节点级别 进入等式 在可以设置和覆盖属性的 1 到 15 个级别中,它提到了配方、环境、角色、属
如何通过厨师将多个成员添加到组中? 我这样试过,但它失败了。 group "git" do action :modify members "foo, bar" append true en
Chef-如何获取命令输出到Ruby变量 我有以下情况,我在grep中获取文件 command "ls /filder1 | grep .txt" grep提供文件名/文件名的输出(如果存在)。 我想
我一直在尝试使用本指南在我的 CentOS 6.5 机器上安装 Chef 服务器 (chef-server-core-12.1.0-1.el6.x86_64.rpm):http://docs.chef
我是一名优秀的程序员,十分优秀!