我们有两个负载平衡的 CentOS 5.3 网络服务器,用于处理大量(约 20 个)个性化购物网站。最终结果是我们必须为每种产品设置一个单独的安全站点,从而产生大量网络别名,每个 IP 一个,以便 SSL 能够正常工作。
显然,手动管理这些东西并不好玩,特别是当服务器崩溃并且您需要重建并希望确保一致性时。
然而,IT 经理不习惯使用 CLI 工具来管理某些事物,并且坚持要使用 GUI 工具以防system-config-network
他想要更改某些东西。
我编写的用于管理机器配置的脚本已尝试考虑到这一点,并且对于大多数网络配置,我习惯system-config-network-cmd -e > netconfig
转储配置,进行更改,然后system-config-network-cmd -i -c -f netconfig
将更改导入回去。
我发现的问题是,不同版本的 scn-cmd 的行为不同,而且导入的内容通常与实际存储的内容不同。即使简单地执行system-config-network-cmd -e > netconfig
后立即执行system-config-network -i -c -f netconfig
而不进行任何更改也会导致不同的配置(运行system-config-network-cmd -e > netconfig2
并执行会diff netconfig netconfig2
显示差异)。
scn-cmd 的问题是否会得到解决,有其他人处理过这个问题吗?我尝试/etc/sysconfig/networking/*
直接修改,但似乎也并不总是有效。
是否存在某种 Right Way(TM) 可以确保 RH GUI 工具和 /etc/sysconfig/network-scripts 能够和谐相处,同时仍然是脚本友好的?
我最终打算转向使用 Puppet,但是它在需要完成的其他项目的长长清单中排得很靠后,所以我希望能有一些东西可以让我们坚持到那时。
答案1
一个问题:为什么 IT经理当他甚至不熟悉 shell 时,他想更改网络配置吗?如果他希望我做好我的工作,我会告诉他远离生产服务器。他做他的工作(付钱给我),我做我的工作(工作服务器)。
无论如何,也许“setup”命令可以帮助您。那么如何将 /etc/sysconfig/network-scripts 设为 svn 或 git 存储库呢?这样您至少可以返回到以前的版本。我自己还没有遇到过像您这样的问题,因为我倾向于在部署期间编写网络配置脚本,然后就此打住。不过,您所描述的听起来像是一个错误,因此您可能需要提交一份有关该工具的不合理行为的错误报告。
顺便说一下,为像这样的简单任务设置 puppet 并不需要太多工作,所以这可能是一个很好的解决方案。