所需要的服务简单介绍
1.DHCP:动态主机配置协议,用于内部网络自动分配IP地址
2.tfpt:简单的网络共享服务,类似于ftp
3.pxe:支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
4.http:超文本传输协议,通过网络共享文本(这里也可以使用ftp服务)
实现过程
1.客户端(没有装系统的计算机)通过在局域网内寻找DHCP服务器
2.DHCP服务器回应,发送IP地址给该客户端并且告诉该客户端下一步寻找哪一个服务器,也就是TFTP
3.客户端向TFTP要BootLoader
4.TFTP服务器将pxelinux.0相关文件交给客户端
5.客户端向TFTP服务器要内核文件和initrd.img
6.TFTP将这两个文件路径告诉客户端
7.客户端通过pxe提供的路径向http服务要ks.cfg(自应答文件)
8.客户端根据ks.cfg文件中指定的安装路径寻找安装所需要的文件
二、实现所需要的步骤
1.将虚拟机本身自带的dhcp关闭,并且将充当DHCP服务器主机IP改为静态地址,并且将防火墙和selinux关闭
[root@centos7 tftpboot]# nmcli connection modify ens34 ipv4.method manual ipv4.addresses 192.168.0.254/24 ?#配置网卡信息[root@centos7 tftpboot]# nmcli connection down ens34 ?#禁用[root@centos7 tftpboot]# nmcli connection up ens34 ?#启用[root@centos7 tftpboot]# sed -ri ‘s/(SELINUX=).*/\1disabled/‘ /etc/selinux/config ??#将selinux设置成关闭[root@centos7 tftpboot]# systemctl stop firewalld.service ???#禁用防火墙[root@centos7 tftpboot]# systemctl disable firewalld.service
2.将虚拟添加3个光驱设备,分别挂载5,6,7三个系统的镜像,为了安装后期所需要的http服务,这里需要临时挂载CentOS 7的光盘镜像
[root@centos7 ~]# mount /dev/cdrom /mnt/ ??#临时挂载[root@centos7 yum.repos.d]# cat /etc/yum.repos.d/base.repo [base]name=basebaseurl=file:///mntgpgcheck=0
3.安装自动安装系统所需要的服务
[root@centos7 yum.repos.d]# yum install -y httpd dhcp tftp-service syslinux ????#安装服务
4.在/var/www/html目录下创建各个版本的挂载路径和自应答文件目录,并且将光盘所对应的目录写入/etc.fstab文件中,使其永久生效
[root@centos7 yum.repos.d]# mkdir /var/www/html/centos/{5,6,7,ksdir} #创建对用的文件,对应关系需要根据实际情况[root@centos7 6]# vim /etc/fstab ?/dev/sr0 ???????????????????????????????/var/www/html/centos/5 ???iso9660 defaults ???????0 0/dev/sr1 ???????????????????????????????/var/www/html/centos/6 ???iso9660 defaults ???????0 0/dev/sr2 ???????????????????????????????/var/www/html/centos/7 ???iso9660 defaults ???????0 0
5.创建自应答文件,该文件也可在系统安装完成后,会在/root目录下生成一个anaconda-ks.cfg的文件
[root@centos7 tftpboot]# yum install -y system-config-kickstart.noarch ??#安装生成自应答文件的工具[root@centos7 tftpboot]system-config-kickstart[root@centos7 ~]# ksvalidator anaconda-ks.cfg #检查该文件语法6 7 通用
注意,在该界面中,若在centos5上创建,仓库的 " [ ] "内需要填写base,centos7中则需要填写development,否则,在Package Selection 界面不会显示选择在安装系统是所需要的软件包 centos6则随意填写
软件包根据需要的进行选择,然后保存
6.将三个系统的自应答文件存放到/var/www/html/centos/ksdir/目录下
7.配置DHCP服务器
[root@centos7 tftpboot]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf #配置文件option domain-name "lin.com"; ????#域名option domain-name-servers 192.168.0.254; ?#default-lease-time 600; ??#租期max-lease-time 7200; ???#用户可调最大log-facility local7; ?#日志文件subnet 192.168.0.0 netmask 255.255.255.0 { ??#自动过去的网段 ?range 192.168.0.2 192.168.0.253; ???#分发的地址范围 ?option routers 192.168.0.254; ??#网关 ??next-server 192.168.0.254; ??#tftp服务ip ?filename "pxelinux.0"; ????#找的文件名}
8.将系统的内核文件和initrd.img文件复制到各个版本的目录下
[root@centos7 tftpboot]# mkdir /var/lib/tftpboot/centos{5,6,7}[root@centos7 tftpboot]# mkdir /var/lib/tftpboot/pxelinux.cfg[root@centos7 tftpboot]# cp /var/www/html/centos/5/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos5/[root@centos7 tftpboot]# cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/[root@centos7 tftpboot]# cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7/
9.拷贝pxe需要的配置文件
[root@centos7 tftpboot]# cp /usr/share/syslinux/{menu.c32,pxelinux.0} . ?#当前目录/var/lib/tftpboot/[root@centos7 tftpboot]# cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
10.配置/var/lib/tftpboot/pxelinux.cfg/default文件,作用是让用户选择安装的系统版本
[root@lin pxelinux.cfg]# cat defaultdefault menu.c32timeout 600 ?#不选择默认多少秒进入默认选项display boot.msgmenu title AutoInstall CentOS 5,6,7label centos 5 mini ?menu label ^Install CentOS 5 ?kernel centos5/vmlinuz ?append initrd=centos5/initrd.img ks=http://192.168.0.254/centos/ksdir/ks5.cfg ??#centos5的ks.cfg文件label centos 6 mini ?menu label I^nstall CentOS 6 ?kernel centos6/vmlinuz ?#这里的路径是填的以/var/lib/tftpboot为路径的相对路径 ?append initrd=centos6/initrd.img ks=http://192.168.0.254/centos/ksdir/ks6.cfg #centos6的ks.cfg文件label centos 7 mini ?menu label In^stall CentOS 7 ?kernel centos7/vmlinuz ?append initrd=centos7/initrd.img ks=http://192.168.0.254/centos/ksdir/ks7.cfg #centos7的ks.cfg文件label local ??#若不选在则默认从硬盘启动 ?menu label Boot from ^local drive ?localboot 0xffff ?menu defaultmenu end
自此实现自动化安装系统
利用DHCP,http,tftp,pxe实现纯自动化安装系统
原文地址:http://blog.51cto.com/10492754/2103599