Linux kickstart 自动化安装
2012-12-12 16:50
197 查看
第一步:PXE Client向DHCP发送请求
首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。
第二步:DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。第三步:PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。
接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
第六步:客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在本次实验中我们所有的服务,都放在192.168.0.247 这台服务器上
需要配置如下服务:
1,DHCP服务,用于PXE 启动的IP地址分发和发送TFTP 服务地址
2,TFTP服务,用于提供客户端PXE引导所必须的文件
3,NFS或FTP或HTTP服务,用于提供安装系统的系统安装文件即ISO镜像文件
4,Kickstart,就是一个系统服务,用于生成ks.cfg文件,可以按照/root/anaconda-ks.cfg 配置来写
5,PXE 其实不是一个服务,而是需要客户机的主板支持,即支持网络启动,否则,接下来的实验皆无法进行
1.1安装DHCP服务器
2.安装,配置TFTP服务器
这里我使用的是NFS,来提供系统安装文件
4,配置Kickstart
4.1如果安装了图形界面,可以安装一下该服务,用来图形生成ks.cfg文件
没有安装的话,可以再/root/anaconda-ks.cfg 基础上进行更改
我的配置文件如下:
5.关闭iptables(其实可以不用关闭,但是需要开放相关端口比较麻烦)和SELinux
6,从网卡启动 需要安装的机器
首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。
第二步:DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。第三步:PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。
接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
第六步:客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在本次实验中我们所有的服务,都放在192.168.0.247 这台服务器上
需要配置如下服务:
1,DHCP服务,用于PXE 启动的IP地址分发和发送TFTP 服务地址
2,TFTP服务,用于提供客户端PXE引导所必须的文件
3,NFS或FTP或HTTP服务,用于提供安装系统的系统安装文件即ISO镜像文件
4,Kickstart,就是一个系统服务,用于生成ks.cfg文件,可以按照/root/anaconda-ks.cfg 配置来写
5,PXE 其实不是一个服务,而是需要客户机的主板支持,即支持网络启动,否则,接下来的实验皆无法进行
1.1安装DHCP服务器
rpm -ivh dhcp-3.0.5-23.el5_5.2.x86_64.rpm dhcp-devel-3.0.5-23.el5_5.2.x86_64.rpm warning: dhcp-3.0.5-23.el5_5.2.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:dhcp ########################################### [ 50%] 2:dhcp-devel ########################################### [100%] 1.2,更改DHCP配置文件 cd /etc/ cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample . 修改 /etc/dhcpd.conf 文件,指定 IP 地址等信息。 在 '''/etc/dhcpd.conf''' 中增加 tftp-server 需要推送给客户端的启动文件(bootstrap):filename "pxelinux.0";因为 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径。 另外需要指定 next-server 参数,告诉客户端在获取到 pxelinux.0 文件之后去哪里获取其余的启动文件: 配置文件更改如下: ddns-update-style interim; #ignore client-updates; allow booting; #定义能够PXE启动 allow bootp; #定义支持bootp next-server 192.168.0.247; #TFTP Server 地址 filename "pxelinux.0"; #pxelinux 启动文件位置 subnet 192.168.0.0 netmask 255.255.255.0 { # --- default gateway # option routers 192.168.0.1; # option subnet-mask 255.255.255.0; # option nis-domain "domain.org"; # option domain-name "domain.org"; option domain-name-servers 192.168.0.247; option subnet-mask 255.255.255.0; option time-offset -18000; # Eastern Standard Time # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # --- Selects point-to-point node (default is hybrid). Don't change this unless # -- you understand Netbios very well # option netbios-node-type 2; range dynamic-bootp 192.168.0.200 192.168.0.220; #这里的IP地址段根据机器的多少来增加和减少 default-lease-time 21600; max-lease-time 43200; # we want the nameserver to appear at a fixed address # host ns { # next-server marvin.redhat.com; # hardware ethernet 12:34:56:78:AB:CD; # fixed-address 207.175.42.254; # } } 1.3设置DHCP 服务 chkconfig dhcpd on service dhcpd start
2.安装,配置TFTP服务器
rpm -ivh tftp-server-0.49-2.x86_64.rpm 配置 service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 启动 /etc/init.d/xinetd restart 2.1PXE引导配置(bootstrap) cd /usr/lib/syslinux/ cp pxelinux.0 /tftpboot/ 2.2用于网络启动的内核文件 cp images/pxeboot/{vmlinuz,initrd.img} /tftpboot/ cp isolinux/*.msg /tftpboot/ cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default 修改默认系统加载的配置文件 vim /tftpboot/pxelinux.cfg/default default linux prompt 1 timeout 600 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg label linux kernel vmlinuz append ks=nfs:192.168.0.247:/mnt/install/ks.cfg initrd=initrd.img #指定ks.cfg安装文件 label text kernel vmlinuz append initrd=initrd.img text label ks kernel vmlinuz append ks initrd=initrd.img label local localboot 1 label memtest86 kernel memtest append -3.NFS 配置
这里我使用的是NFS,来提供系统安装文件
mount -o loop /usr/local/src/rhel-server-5.6-x86_64-dvd.iso /media/ mkdir /mnt/install cp -R /media/* /mnt/install/ 3.2设置NFS cat /etc/exports /mnt/install * (ro,sync) service portmap start service nfs start showmount -e localhost #检查共享 chkconfig --level 35 nfs on
4,配置Kickstart
4.1如果安装了图形界面,可以安装一下该服务,用来图形生成ks.cfg文件
没有安装的话,可以再/root/anaconda-ks.cfg 基础上进行更改
我的配置文件如下:
[root@stat install]# cat ks.cfg # Kickstart file automatically generated by anaconda. #for auto install linux install text nfs --server=192.168.0.247 --dir=/mnt/install #系统安装文件 key --skip lang en_US.UTF-8 keyboard us # Installation logging level logging --level=info xconfig --startxonboot network --bootproto=dhcp --device=eth0 --onboot=on rootpw --iscrypted $1$Ftd5JARW$a8t5CIMF5rn9mmaRv7l9D1 firewall --enabled --port=22:tcp authconfig --enableshadow --enablemd5 selinux --disabled timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=hda --append="rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --linux clearpart --all --initlabel part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100 part / --bytes-per-inode=4096 --fstype="ext3" --size=50000 part swap --bytes-per-inode=4096 --fstype="swap" --size=4096 part /data --bytes-per-inode=4096 --fstype="ext3" --grow --size=1 %packages @admin-tools @base @core @development-libs @development-tools @editors @gnome-desktop @system-tools @base-x system-config-kickstart kexec-tools iscsi-initiator-utils fipscheck device-mapper-multipath sgpio python-dmidecode imake emacs audit xorg-x11-utils xorg-x11-server-Xnest xorg-x11-server-Xvfb
5.关闭iptables(其实可以不用关闭,但是需要开放相关端口比较麻烦)和SELinux
6,从网卡启动 需要安装的机器
相关文章推荐
- PXE、kickstart实现Linux安装自动化
- Anaconda Kickstart实现自动化安装linux
- Kickstart+NFS+DHCP+PXE+TFTP全自动化安装linux
- PXE+KICKSTART进行自动化安装linux
- 利用kickstart半自动化安装linux系统
- Anaconda Kickstart实现自动化安装linux 推荐
- 基于kickstart定制自动化安装的linux镜像系统
- LINUX下基于http+tftp+dhcp的PXE+Kickstart自动化安装
- Linux下PXE和KickStart实现自动化安装系统
- PXE、kickstart实现Linux安装自动化
- Linux Kickstart无人值守安装
- linux自动化之kickstart
- Linux 第六周学习笔记(1) kickstart脚本 pxe网络安装服务
- PXE+DHCP+Apache+Kickstart系统自动化安装
- anaconda:kickstart定制自动化安装镜像
- Linux的kickstart安装详解
- 利用system-config-kickstart实现半自动化安装
- 使用kickstart实现CentOS自动化安装--我的学习记录
- linux安装方式大全2――pxe网络安装vsftp+dhcp+tftp+kickstart+pxe装rhel5
- 系统自动化安装kickstart文件解析