如何实现批量安装Linux操作系统?

一、系统的安装原理:

Linux 系统安装过程:

 POST ----> Bootloader(ramdisk) -----> anaconda系统安装程序

其实,安装操作系统就是把编译好的二进制格式的操作系统导入到目标磁盘中,就要访问硬件。这就涉及到安装程序anaconda能不能驱动目标磁盘。如果,不能驱动目标磁盘的话,该应用程序是无法把文件导入到目标磁盘中的,为了解决这个问题,借助跳板----ramdisk.它就是一个小型的Linux。是位于内存中的。它就能够驱动磁盘。当然它的作用不仅仅是驱动磁盘。

当ramdisk启动起来后,它会执行/sbin/loader加载器,然后就运行:anaconda 程序,在该程序的指引下与用户进行交互完成系统的安装操作。

anaconda程序提供了,两种交互式的接口:

1、text文本交互接口
       占用内存比较小,安装系统的速度比较快。当然还取决于,你是最小化安装还是。。。
2、GUI交互接口
       CentOS 6  内存要求512M才可以启动GUI接口的。
       CentOS 7  内存要求1G才可以启动GUI接口的。

而anaconda安装操作系统过程分为两个阶段:

1、安装前的配置

键盘类型

安装过程中的语言:在anaconda系统安装程序的引导下,显示的语言。一般是英文。

支持使用语言

时区

选择要使用的磁盘设备

规划磁盘的使用:

如:根(/)是否使用LVM。/var、/home、/usr、/usr/local这些存放数据经常变化的目录是否做为单独的分区,

分区使用的文件系统,block块大小等等

swap分区的大小?

选择要安装的包

管理员密码

2、安装阶段(anaconda安装程序就会执照前面的配置执行系统的安装操作)

在目标磁盘创建分区、执行分区格式化

将选定的程序包安装至目标磁盘

安装 bootloader到目标磁盘中。

二、如何实现服务器的批量部署?

1、先实现自动化安装操作系统

既然安装程序提供的是交互式的接口,要人工的干预才可以完成系统的安装,那么怎样实现自动化安装呢?

如果,我们批量部署服务器的时候,还是使用ISO光盘镜像来安装操作系统的话,效率是可想而知的。anaconda很友好的为我们提供了一个功能:

在文本的安装方式下,可以把安装前的配置做成一个ks.cfg格式的文件(使用[[email protected] ~]# system-config-kickstart & 启动文本窗口,就可以制作ks.cfg文件了)。

在启动ramdisk的时候,把它当做参数,传递给内核。

如下如述:

[[email protected] isolinux]# cat isolinux.cfg
default vesamenu.c32 
#prompt 1
timeout 600

display boot.msg    

menu background splash.jpg 
......
label linux
  menu label ^Install or upgrade an existing system
  menu default  
  kernel vmlinuz        -------> 启动内核
  append initrd=initrd.img  ks=cdrom:isolinux/ks.cfg ---------> 传递给内核的参数。

说明:

BootLoader,根据配置文件isolinux.cfg展开内核vmlunuz,initrd.img.这就是ramdisk的启动过程。

当ramdisk启动完成后,就会执行/sbin/loader加载器,启动anaconda程序,该程序就会去读取位于cdrom:isolinux目录下的ks.cfg文件。

根据该文件自动完成安装前的配置。

正是由于,我们可以把anaconda安装操作系统过程中的第一段:安装前的配置,做成ks.cfg文件。再不需要人工干预,anaconda

就可以按照该文件完成安装操作系统前的配置。然后直接进入安装阶段(anaconda安装程序就会按照前面的配置执行系统的安装操作)。

这样就可以,实现自动化安装操作系统了。

2、实现ks.cfg和安装源的共享。如何实现网络引导系统安装。

但是,我们批量部署服务器的时候,虽然能够实现了自动化安装操作系统,但不能解决批量的问题,意思是说,在某一时间,只能为一台服务器

安装操作系统,等到该台服务器安装完成后,才可以对下一台服务器,进行系统的安装。不过我们可以制作多个安装盘。如果,我们的安装盘是光盘的话,

则要为第一台服务器提供一个光驱,如果我们安装盘是U盘的话,则要为每一台服务器提供一个U盘。这就不能完全做到自动话部署服务器了,那我们

怎么样解决呢?

既然,我们的系统安装盘,是独享。可以把它做成共享的方式。把ks.cfg文件和安装源(安装树install tree)放到一个公共的地方。每台服务器都可以到

该地方来获取ks.cfg文件和安装源(install tree)。

ks.cfg和安装源的位置可以是本地或网络上任何位置,只要能够获取到。那么,它们怎么定义呢?

(1)、ks.cfg 定义在BootLoader的配置文件中。

(A)、如果安装盘是光盘的话,它的BootLoader的配置文件是:isolinux.cfg. 在append指令中,把ks.cfg文件做为参数传递给内核。

 CentOS 6 的方式:
          ks=cdrom:/directory/ks.cfg
          ks=http://server/path/to/ks.cfg
          ks=ftp://username:[email protected]/path/to/ks.cfg
  CentOS 7 的方式
          inst.ks=cdrom:/directory/ks.cfg
          inst.ks=http://server/path/to/ks.cfg
          inst.ks=ftp://username:[email protected]/path/to/ks.cfg

(B)、如果使用网卡(支持PXE才可以)做系统引导。它的BootLoader的配置文件是:          PUB/pxelinux.cfg/default. 也是在append指令中,把ks.cfg文件做为参数传递给内核。

     CentOS 6 的方式
          ks=http://server/path/pxelinux.cfg/ks.cfg
          ks=ftp://username:[email protected]/path/pxelinux.cfg/ks.cfg 
     CentOS 7 的方式
          inst.ks=http://server/path/pxelinux.cfg/ks.cfg
          inst.ks=ftp://username:[email protected]/path/pxelinux.cfg/ks.cfg

(2)、安装源(安装树install tree)

是在ks.cfg中指定的。

   CentOS 6 的指定方式:
      repo --name="CentOS" --baseurl=http://192.168.100.7/centos6/ --cost=100
   CentOS 7 的指定方式:
      inst.repo --name="CentOS" --baseurl=http://192.168.100.7/centos6/ --cost=100

虽然,通过ftp服务器,或web服务器或NFS服务器,把ks.cfg和安装源共享出去了。但是,要安装操作系统的服务器要有IP地址才有访问这些资源是最基本的条件,

但是没有安装操作系统的机器怎么配置IP地址呢?

但是还要知道共享资源的位置(共享服务器资源的IP地址)在哪,

如果知道了资溪的URL,还要把这些资源下载到本地。所以要提供下载工具下载需要的资源。这就有问题了,没有安装操作系统的机器怎么配置IP地址呢,怎么安装下载工具呢?

其实,这就使用到网卡的PXE技术。这种网卡的ROM芯片中,内置了DHCP的客户端应用程序和tftp客户端的应用程序。开机完成硬件自检BISO就会把这些客户端应用程序

调到内存中运行,只要dhcp client 能够连接DHCP服务器,从DHCP服务器中获取到地址。需要安装系统的服务器就有了地址,就满足访问共享资源的基本条件。还要知道共享资源服务器的

地址和uri才可以访问共享资源的。DHCP服务器,又帮了大忙。

DHCP服务器会告诉客户端,Bootloader所在的服务器,以及引导文件是什么?这样tftp client就知道了Bootloader的URL了。就可以下载Bootloader了。

如下就是在DHCP服务器中配置如何告诉网卡tftp的地址以及网卡做系统引导的程序bootloader叫啥。

[[email protected] isolinux]# vim /etc/dhcp/dhcpd.conf
...
next-server  172.16.0.1 
filename "pxelinux.0"
...

这时候,tftp客户端就从DHCP服务器上获得的共享资源的URL,下载Bootloader,vmlinuz和initrd.img到本地展开根据配置文件default(引导的配置文件)

显示安装界面的菜单、在内存中完成Rardisk的启动

[[email protected] isolinux]# cat isolinux.cfg
default vesamenu.c32  -----> 菜单
#prompt 1
timeout 600

display boot.msg    

menu background splash.jpg -----> 背景图片
......
label linux
  menu label ^Install or upgrade an existing system
  menu default  
  kernel vmlinuz        -------> 启动内核
  append initrd=initrd.img  ks=http://tftp_server/tftpboot/ks.cfg----> 传递给内核的参数。

当Ramdisk启动完成,就会通过/sbin/loader 启动anaconda系统安装程序,该程序就会读取ks.cfg文件,ks.cfg文件中定义有安装源(install tree)所在的

位置。这样就实现了批量给服务器安装操作系统了。

如何实现批量安装Linux操作系统?

时间: 2024-10-10 06:13:10

如何实现批量安装Linux操作系统?的相关文章

linux部署pxe+kickstart批量安装linux操作系统

环境 系统 centos6.6 无图形界面 ip 192.168.2.1 系统 centos7.2 有图形界面 以下命令在centos6.6上执行 1. yum -y install dhcp* tftp* vsftpd* syslinux #安装一些软件 2.vim dhcpd.conf subnet 192.168.2.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.2.50 192.168.2.200; next-server 1

配置PXE服务器批量安装Linux操作系统

相关步骤 我们将DHCP,TFTP和HTTP安装在同一台服务器上,本机ip地址为:192.168.184.10 虚拟机网络设置为仅主机模式,关闭虚拟机网卡的DHCP功能,虚拟机网卡网段为:192.168.184.0 关闭selinux和firewalld DHCP 先配置静态ip yum install dhcp systemctl enable dhcpd #修改dhcp配置文件 vim /etc/dhcp/dhcpd.conf #修改内容如下-------------------------

cobbler批量安装linux(centos6.5)

1.安装 cobbler (1).安装第三方软件库所需要的包 #cd /tmp #wget  http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm #rpm -ivh epel-release-6-8.noarch.rpm (2).安装 dhcp #yum -y install dhcp (3). 安装其他的相关软件 #yum -y install tftp rsync xinetd httpd (

探索PHP+Nginx(一) 安装Linux操作系统

每次学习一种新的开发语言的时候,都要经历一个很纠结的过程,除非你运气很好或者准备工作充分,否则你在这个过程中总会耗费大量的时间和精力,当然你也会受益很多.而这个过程就是,开发环境的基础搭建,看似是装几个软件,配置一下操作系统.其实不然,我觉得搭建环境是个大学问,很多应用层开发者都不擅长环境的搭建,他们会觉得没必要.而我有我自己的看法,我觉得更好的理解开发的环境才能开发出更高效的程序,同时也是对程序的一种理解,是一种深层次的认识.更好的理解自己开发程序的环境,有助于调试程序和排除疑难杂症,何乐而不

安装Linux操作系统

安装Linux操作系统 要求: Ø  在VMware Workstation软件中新建一台虚拟机,规划使用的硬盘空间为80GB,分配的内存空间为512MB. Ø  使用DVD镜像文件rhel-server-5.5-i386-dvd.iso,在虚拟机中安装RHEL 5系统. u  分区方案选择"在选定驱动上删除Linux分区并创建默认的分区结构". u  选择"软件开发"."网络服务器"项,选择"现在定制",添加DNS名称服务器

Cobbler实现自动化批量安装Linux系统系列一:安装先决性组件篇

随着经历的企业越来越多,服务器规划.实施及运维工作也越来越多,有时会发现,其实做为一名IT人,我们总是有些局限,尤其是在对企业IT结构规划时,由于只局限于对一种分支产品的特性了解,当所熟悉的产品不能胜任现有平台时,我们总会感觉有一些无奈,比如微软的MDT.WDS及SCCM,实话说挺不错的,但至少也只是在微软平台操作系统的部署上,当我们遇到在业务网运维平台中以Linux为主的环境时,大批量部署Linux,这时对于微软的这些部署产品可能就不能像在微软产品范围中那样如龙得水般了,这时我们也就真正理解了

【Linux原理】第一章安装Linux操作系统

Linux操作系统由Linux内核和各种外围程序组成. Linux内核是一个特殊的软件程序,用于实现CPU和内存分配.进程调度.设备驱动等核心操作,以面向硬件为主. 外围程序包括分析用户指令的解释器.网络服务程序.图形桌面程序等各种应用型的软件程序,以面向用户为主. Linux内核最初由芬兰大学生李纳斯·托沃兹(linus torvalds)在1991年10月发布,主要使用C语言及一小部分汇编语言开发而成.官方网站是http://www.kernel.org/.内核标识是一个名为tux的小企鹅.

kickstart 批量安装Linux系统

Kickstart 批量安装Linux系统 Kickstart的工作原理想必大家都知道了,通过pxe协议同时装配多台服务器.一般用的时候不多,但是要知道,用的时候才能得心应手,我的环境如下: 需要安装部署的Linux服务器: Redhat 6.4 64位 IP地址:192.168.30.34 网卡:p3p1 子网掩码:255.255.255.0 网关:192.168.30.1 DNS:202.106.0.20 或者 8.8.8.8 具体操作: 第一部分:在kickstart服务器系统操作 关闭S

分布式-在win7上安装linux操作系统

由于大多数的分布式计算框架,分布式存储系统,分布式平台都支持在unix类似的环境下,所以要做分布式的实验和学习的话,还是推荐装个linux系统,我这里安装的是ubuntu,因为之前装过这个. 一.下载 1. EasyBCD2.2 2. ubuntu 12.04 LTS amd64 desktop 二.安装 1. 安装ubuntu LTS 12.04: http://www.33lc.com/article/4013.html 2. 更新下载源: http://jingyan.baidu.com/