Linux学习131 pxe应用入门(一)
一、dhcp总结
1、dhcpd:
/etc/dhcp/dhcpd.conf
option routers GW;
option domain-name-servers IP,IP,IP;#可以定义三个DNSIP
default-lease-time
max-lease-time
subnet NET netmask MASK {
range
...
}
host HOST_ID {
hardware ethernet MAC;
fixed-address IP;
}
2、分配信息库:
/var/lib/dhcp/dhcpd.leases~
3、客户端命令:dhclient
-d:运行在前台;
4、其它配置选项:
filename:指明引导文件名称;
next-server:指明引导文件所在的服务器主机的IP地址;
filename "pxelinux.0";
next-server 192.168.10.41;
tftp:trivial ftp,udp
二、pxe技术
1、PXE:preboot excution environment,Intel
以CentOS为例:
a、dhcp(ip/netmask,gw,dns;filename,next-server;)
b、tftp server(bootloader,kernel,initrd)
c、yum repository(ftp,http,nfs)
d、kickstart
2、tftp
a、首先安装tftp-server和tftp客户端
[root@node1 /]# yum install -y tftp tftp-server
b、然后我们启动tftp服务。其会监听在udp 69号端口上
(1)、CentOS6中
chkconfig tftp on
service xinetd restart #启动服务
(2)、CentOS7中
systemctl start tftp.socket
[root@node1 /]# rpm -ql tftp-server /etc/xinetd.d/tftp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot #存放文件的路径 [root@node1 /]# systemctl start tftp.socket [root@node1 /]# netstat -anpu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:983 0.0.0.0:* 816/rpcbind udp 0 0 0.0.0.0:67 0.0.0.0:* 70425/dhcpd udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd udp6 0 0 :::983 :::* 816/rpcbind udp6 0 0 :::69 :::* 1/systemd udp6 0 0 :::111 :::* 1/systemd
c、我们tftp的文件默认是存放在/var/lib/tftpboot目录中的
(1)、我们在server端先拷贝一个 /etc/grub2.cfg文件到/var/lib/tftpboot中
[root@node1 /]# cp /etc/grub2.cfg /var/lib/tftpboot/
(2)、然后我们在客户端进入至/tmp目录下将grub2.cfg文件拷贝下来
[root@node1 /]# cd /tmp/ [root@node1 tmp]# ls systemd-private-30151eefe3ba46fb9da5d9fd104743c5-nginx.service-7lpxnJ [root@node1 tmp]# tftp 192.168.10.41 tftp> get grub2.cfg tftp> q [root@node1 tmp]# ls grub2.cfg systemd-private-30151eefe3ba46fb9da5d9fd104743c5-nginx.service-7lpxnJ
c、默认的文件根目录在 /var/lib/tftpboot中
3、dhcp配置
1、server端配置
[root@node1 /]# cat /etc/dhcp/dhcpd.conf option domain-name "node1"; #dns域的名称为node1 option domain-name-servers 8.8.8.8; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以 option routers 192.168.10.254; #添加全局网关为192.168.10.254 default-lease-time 43200; #默认租约期限,这儿是43200秒 max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒 log-facility local7; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.150 192.168.10.200; #定义地址列表 filename "pxelinux.0"; #这个是系统上自动提供的,安装系统后会有这个文件,一般我们需要将此文件放在tftp server的相对根路径下 next-server 192.168.10.41; #tftp server的地址,我们next-server的地址就是应该指向我们对应的ftp server的地址。 }
4、yum仓库配置
a、yum仓库我们仍然在192.168.10.41上制作,将相应的iso镜像挂载至虚拟机做成http yum源即可
[root@node1 html]# ls /var/www/html/repo/ CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL [root@node1 html]# cat /etc/yum.repos.d/local.repo [local] name=localrepo baseurl=http://192.168.10.41/repo gpgcheck=0 enable=0 [root@node1 html]#
5、kickstart文件
a、此处我们拷贝我们192.168.10.41目录下的该文件即可,我们将其放在http目录下
[root@node1 ~]# ls /root/anaconda-ks.cfg /root/anaconda-ks.cfg
[root@node1 ~]# cp /root/anaconda-ks.cfg /var/www/html/kickstarts/
6、安装syslinux包,安装后我们就可以看到有pxelinux.0文件。我们需要将其复制到tftp的目录下去
[root@node1 ~]# rpm -ql syslinux |grep -w pxelinux.0 /usr/share/syslinux/pxelinux.0 [root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
7、我们yum仓库中有两个文件是pxe启动时也需要加载的,我们也需要将其复制到我们的tftp目录下。
[root@node1 ~]# ls /var/www/html/repo/images/pxeboot/ initrd.img TRANS.TBL vmlinuz [root@node1 ~]# cp /var/www/html/repo/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ [root@node1 ~]# ls /var/lib/tftpboot/ grub2.cfg initrd.img pxelinux.0 vmlinuz
我们还需要复制几个文件用于安装时作为字符界面供我们选择
[root@node1 ~]# cp /usr/share/syslinux/{chain.c32,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot/
48:09