如何在500台以上的机器上自动安装操作系统?

到了今年年底,我的公司必须成像大量的机器。 每台机器都有硬件RAID 1并运行CentOS 6。

在这些系统上自动安装操作系统有哪些select?
我有一个小型的桌面,我可以设置为安装服务器,我们可以得到一个开关来创build一个安装networking,但我不知道如何去实际执行自动安装。

补鞋匠是为此而devise的。

HowToForge有一个伟大的文章,从这里开始这样一个过程

基本上,以下是需要进行的一系列活动:

  1. build立一个支持客户端数量(VLAN等)的DHCP服务器,
  2. 创build一个可以托pipe安装的HTTP服务器
  3. 为安装创build一个kickstart脚本。 kickstart可以基于当首次在根目录下安装操作系统时创build的ks-anaconda.cfg文件(通常位于/ root /)
  4. 将kickstart脚本和HTTP服务器与TFTP服务器集成,以支持PXE引导。
  5. 重新启动目标机器和利润!

工头是pipe理DNS,DHCP,PXE,Kickstart和Puppet的好界面。

编辑:你最好把你select安装的软件放在专用的服务器上。 (也许你的办公室可以从他们拥有的500多个办公室中select一个办公室)即使你每年这样做一次或两次,这个configuration基础设施属于你的“重要”基础设施的其余部分,而不是在桌面上。

免责声明:我是Stacki开发人员; 一个Stacki用户只是把这个问题指给我们看。 在写这个问题的时候,Stacki还不是一个开源项目, 但现在正在积极发展,并且正在不断发展。

所以,即使现在的问题是完整的,我想添加Stacki作为未来Google员工的可能性。

Stacki与Foreman / Cobbler等人有一些重叠。 (PXE启动与模板kickstart文件等),但也有一些有趣的function。 例如,我们有一个类似洪stream的对等安装程序,所以你不是锤击configuration节点。 它通过您定义的电子表格进行复杂的分区,联网和存储控制器configuration,这些电子表格受版本控制并存储在RDBMS中。 还有一个软件configurationpipe理方面,完全能够设置像OpenStack或Hadoop一样复杂的东西,但是也不能确定只安装Ansible之类的东西,并启动已经写好的剧本。

如果你想尝试一下, Stacki网站的头版有一个可引导的ISO权限,还有GitHub上的说明,让我们预先configuration的Vagrant框(没有特别原因 – 不是托pipe在Atlas上,但可能必定是)。

尽pipe我完全支持@NickV所说的话,但是不要低估USB棒/磁盘存储的简单完整映像方法的function。 特别是如果你不熟悉DHCP,HTTP服务器,kickstart,TFTP和其他的工作。 我发现,当你把所有这些起来,你可能会得到一个系统安装得到一个完整的启动磁盘映像(与许多软件之一可以做到这一点)复制此图像到许多USB设备希望和启动它的尽可能多的系统,你希望和一半完成。

现在,如果您将其设置为永久分配,那么@NickV所描述的额外工作将长期受益。

你可能不想用500个机器来做USB棒图像的方法,但是,你可能会非常喜欢使用CloneZilla的图像方法,通过networking从服务器进行组播。 看到

http://clonezilla.org/clonezilla-SE/

了解详情。

MAAS是一个非常好的解决scheme。 专为使用自动化部署大型云而devise。 它不仅仅是一个皮匠pxe引导…它pipe理电源状态,用户,安装图像等。