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

发布于 2022-08-27 12:53:19 字数 72 浏览 21 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

白衬杉格子梦 2022-09-03 12:53:19

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

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

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

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

  • puppet代码也要放在代码仓库中
  • 改动和上线puppet代码也要走立项流程,在项目管理工具上创建日常/项目,代码仓库中建立分支
  • 到生产环境去影响生产环境的nginx、php之前经过测试
  • 资深的puppet开发者review代码,就像sql审核一样

puppet是什么

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

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

自动化部署、初始化环境

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

  • 安装软件,支持yum, apt-get, port, rpm
  • 操作文件/目录,读写文件,创建删除目录,改变文件内容
  • 修改软件和系统配置文件,支持ini, shell var, /etc/sysconfig下的全部, php.ini, my.cnf等等,而且只修改你指定的项,没指定的项它不改
  • 执行命令,如ping, grep, echo,一切可运行的命令都可以
  • 配置系统选项,如ip、hosts表、chkconfig中的服务开机自启动
  • 其它:如service, iptables, yum repo, crontab等等
  • 更多puppet功能参见其官网文档:http://docs.puppetlabs.com/references/stable/type.html

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

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网站

旧伤还要旧人安 2022-09-03 12:53:19

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

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

缱绻入梦 2022-09-03 12:53:19

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

菊凝晚露 2022-09-03 12:53:19

看看ansible

寂寞花火° 2022-09-03 12:53:19

直接 tar 过去呗。

很酷又爱笑 2022-09-03 12:53:19

Docker 是个不错的选择。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文