PXE无人值守安装系统
项目环境:
一台linux server ip:192.168.1.254 一台linux client
项目需求:
1:搭建PXE Server服务器IP为192.168.1.254,给客户机无人值守安装centos6.5
2:安装所需要的软件包存放在/data/iso/centos6.5
3:要求分别给每台客户端分配192.168.1.(范围1-100)和分配主机名格式如下station(x).tarena.com
实现步骤:
1:配置yum库
[root@server yum.repos.d]# pwd //确认目录位置
/etc/yum.repos.d
[root@server yum.repos.d]# cp rhel-debuginfo.repo rhel.repo //从模板文件拷贝
[root@server yum.repos.d]# vim rhel.repo
1 [rhel-yum] //服务器yum库名,用于安装环境包 2 name=Red Hat Enterpr //描述 3 baseurl=file:///misc/cd/Server //包路径在自动触发的光盘路径 4 enabled=1 //启用 5 gpgcheck=1 //检查密钥 6gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //密钥文件位置
[root@server yum.repos.d]# vim centos.repo
1 [centos-yum] //PXE安装源名 2 name=centos6.5 3 baseurl=file:///data/iso/centos6.5 //安装源路径(已把安装光盘下所有复制到该目录下) 4 enabled=1 5 gpgcheck=1 6 gpgkey=file:///data/iso/centos6.5/packages/RPM-GPG-KEY-CentOS-6
[root@server ~]#rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm //安装生成包关系工具
[root@server ~]# createrepo /data/iso/centos6.5/packages //由于系统版本不同,需要手动生成包关系文件
2:安装dhcp、dns、NFS程序
[root@server Server]# yum install dhcp-3.0.5-31.el5_8.1.x86_64.rpm //安装dhcp包
[root@server Server]# yum install bind-9.3.6-20.P1.el5_8.5.x86_64.rpm //安装dns包
[root@server Server]# yum install caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm //安装dns模板
[root@server Server]# yum install bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm //安装映射文件加强安全
3:启动服务
[root@server ~]# service dhcpd start
[root@server ~]# service named start
[root@server ~]# service portmap start
[root@server ~]# service nfs start
[root@server ~]# vim /etc/xinetd.d/tftp
... 13 server_args = -s /tftpboot //记住tftp存放文件的工作目录,后面会用到 14 disable = no //设置tftp被超级守护进程调用为启用 ...
[root@server ~]# service xinetd restart
4:设置为开机启动
[root@server ~]# chkconfig dhcpd on
[root@server ~]# chkconfig named on
[root@server ~]# chkconfig portmap on
[root@server ~]# chkconfig nfs on
[root@server ~]# chkconfig xinetd on
5:配置主配置文件 (配置前最好通过cp命令做好备份)
1)配置dhcp服务
[root@server ~]# vim /etc/dhcpd.conf
1 ddns-update-style interim; 2 next-server 192.168.1.254; //添加tftp服务器地址 3 filename "pxelinux.0"; //添加引导文件名 4 default-lease-time 21600; 5 max-lease-time 43200; 6 subnet 192.168.1.0 netmask 255.255.255.0 { //声明作用域网段 7 option routers 192.168.1.254; //定义分配网关 8 option domain-name "sw.com"; //定义域名 9 option domain-name-servers 192.168.1.254; //定义分配DNS地址 10 range dynamic-bootp 192.168.1.1 192.168.1.100; //定义地址池 11 }
2)配置DNS服务 (非必要步骤)
[root@server ~]# cd /var/named/chroot/etc/ //切换到DNS目录
[root@server etc]# cp named.caching-nameserver.conf named.conf //从模板创建配置文件
[root@server etc]# vim named.conf //编辑主配置文件
... 15 listen-on port 53 { 192.168.1.254; }; //设置监听ip地址 ... 27 allow-query { any; }; //允许所有机器查询 28 allow-query-cache { any; }; //允许所有机器查询缓存 ... 37 match-clients { any; }; //允许匹配所有客户端 38 match-destinations { any; }; //允许匹配所有连接 ... [root@server etc]# vim named.rfc1912.zones //编辑添加正向解析和反向解析 ... 51 zone "sw.com" IN { //正向解析域名 52 type master; 53 file "sw.com.zone"; //正向解析文件名 54 }; 55 56 zone "1.168.192.in-addr.arpa" IN { //反向解析 57 type master; 58 file "192.168.1.arpa"; //反向解析文件名 59 };
[root@server named]# cd /var/named/chroot/var/named //切换工作目录
[root@server named]# vim sw.com.zone
... 2 @ IN SOA localhost. root.localhost. ( 3 2014061801 ; Serial //自定义DNS版本 ... 8 IN NS server.sw.com. //定义域名服务器 9 server IN A 192.168.1.254 //解析 10 $GENERATE 1-100 station$ IN A 192.168.1.$ //利用变量定义有规律的解析
[root@server named]# vim 192.168.1.arpa //编辑反向解析文件,基本同正向
... 3 2014061801 ; Serial 4 28800 ; Refresh 5 14400 ; Retry 6 3600000 ; Expire 7 86400 ) ; Minimum 8 IN NS server.sw.com. 9 254 IN PTR server.sw.com. 10 $GENERATE 1-100 $ IN PTR station$.sw.com.
3)配置NFS共享目录 挂载iso镜像
[root@server named]# vim /etc/exports
/data/iso/centos6.5 *(ro)
6:重启DHCP、DNS、NFS、xinetd服务
7:复制PXE引导文件到TFTP工作目录
[root@server ~]# cp /misc/cd/isolinux/vmlinuz /tftpboot/ //复制centos内核文件
[root@server ~]# cp /misc/cd/isolinux/initrd.img /tftpboot/ //复制centos引导文件
[root@server ~]# mkdir /tftpboot/pxelinux.cfg
[root@server ~]# cp /misc/cd/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default //复制centos菜单文件
[root@server ~]# yum install syslinux
[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ //复制centos PXE开机引导文件
8:安装kickstart图形工具包
[root@server Server]# yum install system-config-kickstart-2.6.19.9-2.el5.noarch.rpm
9:利用kickstart图形工具包来生成自动应答文件(利用远程连接软件XHELL+XMING可以在字符界面调用图形)
[root@server ~]# system-config-kickstart
[root@server ~]# cp ks.cfg /data/iso/centos6.5/ //复制自动应答文件到安装源目录
[root@server ~]# vim /data/iso/centos6.5/ks.cfg //在该应答文件中添加key --skip跳过序列号安装源
4 key --skip 6 url --url ftp://192.168.1.55
10:编辑default文件调用装机菜单和开机应答脚本
[root@server ~]# vim /tftpboot/pxelinux.cfg/default
1 default vmlinuz 12 append initrd=initrd.img ks=nfs:192.168.1.254:/data/iso/centos6.5/ks.cfg
11:用无系统客户机测试,实现全自动pxe安装
总结:本项目综合运用了linux的DHCP、NFS、TFTP服务实现了大批量自动化的PXE装机。提高了批量部署系统环境的效率。