首页 > 如何在多台机器间复制同一份系统?

如何在多台机器间复制同一份系统?

我现在在一台机器上搭好了环境,想把这个linux系统复制到其他机器上(几百台),机器的配置都是一样的,请问下有没有什么好的方法?


Windows: GhostCast
Linux: U 盘/网络启动, 从局域网下载磁盘镜像, 然后 dd 写入硬盘, 这个过程可以写个脚本

Linux 网络启动: http://www.cnblogs.com/hunterfu/archive/2010/03/15/1685957.html


系统安装完了可以用 puppet
http://puppetlabs.com/
https://linuxtoy.org/archives/puppet.html
http://www.chenshake.com/puppet-study-notes/


Kickstart 无人值守Linux系统批量部署 鸟哥的私房菜


看看ansible


直接 tar 过去呗。


使用自动化运维工具来部署和维护环境

使用puppet, chef来部署和维护测试、预发、生产环境,减少手工操作,减少未授权人士操作。既能提高部署效率,也能降低出错概率,保证环境一致性。

部署环境的代码也像Java代码一样执行项目管理流程

以puppet为例,部署一台php应用服务器,对应的就有一些php_app_server.pp, node_fe_php0402.pp这样的puppet代码文件,这些代码文件也要像淘宝交易中心的Java代码一样,纳入项目管理流程:

puppet是什么

我不是建议一定要用puppet,chef之类的自动化运维工具也可以的,只不过我只会puppet,只做过puppet的开源项目和成功案例,所以这里就只讲puppet,chef的思想和功能与puppet是类似的。

puppet是一个自动化运维工具,它可以

自动化部署、初始化环境

除了装操作系统,其它的绝大部分事情它都可以做:

如果你的环境不小心被搞得乱七八糟,它帮你整理清楚

puppet有一个agent,以daemon形式运行在你的操作系统中,它每隔一段时间就来检查系统是不是以你指定的状态在运行,如果不是,就把它恢复成你指定的样子。定时运行的时间间隔你可以设定。

打个比方,你本来只允许iptables放行80端口,有位同学临时用这台机器的时候,把8080,8000也开放了做了个测试,测试完他忘了给改回来就走了,puppet定时运行的时候就去检查并自动将iptables规则表改回只允许80端口。

如果这位同学还在他的Home目录(/home/tongxue)下创建了一些数据文件,而你没有指定过/home/tongxue这个目录应该怎么处置,puppet就不会去理会这个目录,同学下次来登录的时候还能正常使用他的数据文件。

puppet的本质

puppet发明了一个领域语言(DSL),让你按照它的语法规则,把所有他能支持的任务(安装软件、读写文件、service、iptables、crontab)写成类、语句,这些类可以继承,包含(import, include)、可以有条件地执行(if,else,case),系统部署和维护最终变成了编程工作。

--- 参考 ---

puppet官网

http://puppetlabs.com

电子书

puppet cookbook:http://www.puppetcookbook.com/

实体书

《精通Puppet配置管理工具》:http://item.jd.com/11003162.html
我做完puppet-example第一版并管理一个公司的所有服务器之后,深感水平不足,买了这本书,收获颇多,书评在此:http://club.jd.com/repay/11003162_039276dc-6a7c-421c-a35d-e367dfae36fb_1.html

我做的puppet开源项目

puppet-example:https://github.com/qinjx/puppet-example

一个puppet示范项目,兼作我的运维学习笔记,在现实世界运行着,有两个成功案例,各管理100多台服务器,都是小型B2C网站


Docker 是个不错的选择。

【热门文章】
【热门文章】