使用存储网络虚拟机通过一台虚拟服务器更新所有服务器

使用存储网络虚拟机通过一台虚拟服务器更新所有服务器

使用 UBUNTU 和 Oracle 的 Virtal Box,并使用此脚本在 Virtual Box 中启动 nginx,并将其放置在 Virtual Box 中~/init.d

#!/bin/bash
### BEGIN INIT INFO
# Provides:          Testinit
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

#
RETVAL=0;

start() {
CurrentTime=$(date +%d/%m/%Y"-"%I:%M:%S)
./usr/local/nginx/sbin/nginx
echo "Current Time:"$CurrentTime>>/home/server/Desktop/NginxLogs.txt
echo "!Starting nginx!" >>/home/server/Desktop/NginxLogs.txt

像这样,我想编写自动脚本(setup.sh 文件)并将该脚本放在系统内的所有虚拟盒中,例如 8 个虚拟盒,并且在所有虚拟盒中都安装了 NGINX。

现在,我面临的问题是,当我想在 setup.sh 中更改某些内容时,我必须转到每个虚拟盒,或者从我的主机通过 SSH 与每个虚拟机进行通信。我正在考虑编写另一个脚本(例如:Update.sh),并且在该脚本中,我们给出一个在主机中保存和最近编辑的文件路径(例如:DummySetup.sh)。

一旦我运行该脚本,保存在每个虚拟机中的所有 setup.sh 文件都应更新更改或用 DummySetup.sh 的内容替换内容。希望这是可能的。如能提供帮助,我将不胜感激。

答案1

您所描述的是大规模自动化,其标准答案是 Puppet:http://puppetlabs.com/puppet/what-is-puppet/

如果你不喜欢 Puppet,还有 Chef:http://www.opscode.com/chef/

最后,既然你确实说过你正在使用 Ubuntu,那么你可以考虑 Juju:https://juju.ubuntu.com/

相关内容