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

 

posted @ 2021-03-10 17:31  Presley  阅读(179)  评论(0编辑  收藏  举报