您好,登录后才能下订单哦!
CentOS 7中怎么安装PXE服务器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
第一步
测试是否能上网:ping www.baidu.com
更新yum仓库源:yum repolist
第二步
安装dhcpd、tftp、syslinux、wget和vsftpd
输入 yum install -y dhcp tftp tftp-server syslinux wget vsftpd
第三步
关闭SELinux和防火墙
手动修改/etc/selinux/config,确保SELINUX=permissive
setenforce 0
 systemctl disable firewalld
 systemctl stop firewalld
 poweroff
第四步
在VMWARE中将虚拟机的网络适配器设置为“主机模式”vmnet0
编辑,虚拟网络编辑器,vmnet0,去掉勾选,即不允许本地的dhcp服务器分配ip
第五步
这时候已经不需要上网了,所以可以为CentOS 7随意设置IP地址
nmcli con show
 nmcli con modi ens32 ipv4.method manual ipv4.addresses 192.168.1.1/24
#我的网卡接口id是ens32。于是将它的IP设为192.168.1.1
nmcli con up ens32
 nmcli con show
 ip a
 #确认192.168.1.1已经成功设置
第六步
设置dhcp服务器
vim /etc/dhcp/dhcpd.conf
确保配置文件内容如下:
 ddns-update-style interim;
  ignore client-updates;
  authoritative;
  allow booting;
  allow bootp;
  allow unknown-clients;
  
 # A slightly different configuration for an internal subnet.
  subnet 192.168.1.0 netmask 255.255.255.0 
 {
    range 192.168.1.2 192.168.1.253;
    option domain-name-servers 192.168.1.1;
    option domain-name "server1.example.com";
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    default-lease-time 600;
    max-lease-time 7200;
  
    # PXE SERVER IP
    next-server 192.168.1.1; #  DHCP server ip
    filename "pxelinux.0";
  }
至此,上文的filename所指的pxelinux.0目前还没有部署到位。最终它的位置是/tftpboot/pxelinux.0,但不要在这里使用路径,仅使用这个名称就好。上面的每一行结尾都是一个分号(;)。
第七步
为xinetd配置TFTP服务器,即将tftp服务交给xinetd来管理
 vim /etc/xinetd.d/tftp
 /etc/xinetd.d/tftp的内容如下:
 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
  }
 我们要将tftp服务的位置挪到/tftpboot中,将有个程序仍然认为它的路径在/var/lib/tftpboot中,所以,要改回来。
 vim /usr/lib/systemd/system/tftp.service
 将ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
 修改为:ExecStart=/usr/sbin/in.tftpd -s /tftpboot
 看,只有这样,才能与/etc/xinetd.d/tftp中的相应内容保持一致
第八步
设置TFTP服务器网络启动文件。首先要创建一个路径/tftpboot
 mkdir /tftpboot
 chmod 777 /tftpboot
 cp -v /usr/share/syslinux/pxelinux.0 /tftpboot
  cp -v /usr/share/syslinux/menu.c32 /tftpboot
  cp -v /usr/share/syslinux/memdisk /tftpboot
  cp -v /usr/share/syslinux/mboot.c32 /tftpboot
 cp -v /usr/share/syslinux/chain.c32 /tftpboot
再创建两个路径:
 mkdir /tftpboot/pxelinux.cfg
 mkdir /tftpboot/netboot/
第九步
将CentOS的ISO文件发布到FTP的文件夹中。要做到这一点,必须要有一个CentOS 7的ISO文件。我要把它以虚拟光盘的形式挂载到虚拟机中
点击屏幕右下方光盘图标,在短菜单中选择“连接到主机”
 lsblk
 查看光盘挂载的路径,如sr0    /run/media/root/CentOS 7 x86_64
 mkdir -p /var/ftp/pub
 cp -r /run/media/root/'CentOS 7 x86_64'/* /var/ftp/pub
 “CentOS 7 x86_64”要用引号括起来,否则会出错。
 cp -r /run/media/root/CentOS 7\ x86_64/* /var/ftp/pub
第十步
将启动时需要使用的镜像文件拷贝到目录位置
cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/netboot/
 cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/netboot/
第十一步
创建一个kickstart,即无人值守安装文件,名字叫ks.cfg
vim /var/ftp/pub/ks.cfg
 其内容如下:
  #platform=x86, AMD64, or Intel EM64T
  #version=DEVEL
  # Firewall configuration
  firewall --disabled
  # Install OS instead of upgrade
  install
  # Use NFS installation media
  url --url="ftp://192.168.1.1/pub/"
  rootpw --plaintext 123456
 #root的密码设为123456
  # Use graphical install
  graphical
  firstboot disable
  # System keyboard
  keyboard us
  # System language
  lang en_US
  # SELinux configuration
  selinux disabled
  # Installation logging level
  logging level=info
 # System timezone
  timezone Asia/Shanghai
  # System bootloader configuration
  bootloader location=mbr
  clearpart --all --initlabel
  part swap --asprimary --fstype="swap" --size=1024
  part /boot --fstype xfs --size=200
  part pv.01 --size=1 --grow
  volgroup rootvg01 pv.01
  logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow
%packages
  @core
  wget
  %end
  %post
  %end
保存后,用ksvalidator检查一下是否有语法错误
 ksvalidator /var/ftp/pub/ks.cfg
第十二步
创建一个pxe菜单
vim /tftpboot/pxelinux.cfg/default
 default的内容如下:
  default menu.c32
  prompt 0
  timeout 30
  MENU TITLE Togogo.net Linux Training
 LABEL centos7_x64
  MENU LABEL CentOS 7 X64
  KERNEL /netboot/vmlinuz
  APPEND  initrd=/netboot/initrd.img inst.repo=ftp://192.168.1.1/pub ks=ftp://192.168.1.1/pub/ks.cfg
最后这个APPEND写成一行,中间不要断行
第十三步
systemctl enable dhcpd
 systemctl enable tftp
 systemctl enable vsftpd
 将以上服务设为开机自动启动
systemctl restart vsftpd
 systemctl restart dhcpd
 systemctl restart tftp
 重新启动以上服务
验证
在VMware中创建一个新的虚拟机,以充当验证PXE服务器的客户机。将其网络适配器的网络连接设为“主机模式”
  
 然后启动这台虚拟机。于是,我们就能看到,这台虚拟机可以在无人干预的情况下安装CentOS Linux的Minimal,即最小化安装
  
 这个过程可能会遇到的困难是将PXE客户机与PXE服务器放到同一个网段中。如果我们在家里上网,物理网卡的IP地址可能是192.168.1.X,那就可以完全按照上面的步骤进行。
 如果物理网卡的IP地址是192.168.0.X,甚至是别的什么,那就手动修改网卡的IP,把它变成192.168.1.X。因为,VMware的桥接设置,会让“PXE客户机”获取192.168.1.0/24这个网段的IP地址,正好跟“PXE服务器”相同
出错情况汇总
 1、yum安装没有成功
 第一步yum安装的时候,就没有成功,自己却忽略了。可能的情况是:1)/etc/yum.repos.d目录中存在着另一个仓库且无法使用。需要将其disable或删除。2)无法上网。ping www.baidu.com时显示找不到目标。
 yum repolist
2、没有修改PXE服务器的IP地址192.168.1.1
 10.xx.xxx.xx
3、没有将/var/ftp/pub/images/pxeboot/vmlinuz和initrd.img拷贝到/tftpboot/netboot下
4、/tftpboot/pxelinux.cfg/default内容残缺
5、/etc/selinux/config中SELINUX=disable,正确的应该是disabled
6、vsftpd配置不允许匿名登录,导致客户机无法下载所需要的安装文件
7、没有设置成"桥接模式"
8、测试的客户机中仍然使用ISO来安装
9、硬盘满了
设置PXE服务器的网络
1)PXE服务器中的设置
 nmcli con show
 nmcli con modi ens33 ipv4.method manual ipv4.addresses 192.168.1.1/24
 nmcli con up ens33
 ip a
 确认ens33的地址是192.168.1.1
2)物理机上的设置
 将物理网卡的设置改为固定IP
 IP地址:192.168.1.2
 子网掩码:255.255.255.0
 网关:192.168.1.1
3)VMware的设置
 在VMware中将PXE服务器虚拟机的网络设为“桥接模式”
恢复PXE服务器的网络
 1)将物理网卡改为自动获取IP地址
 2)VMware中将PXE服务器虚拟机的网络设为“NAT模式”
 3)PXE服务器中的设置
 ip a ----192.168.1.1
 nmcli con show
 nmcli con modi ens33 ipv4.method auto
 nmcli con up ens33
 ping www.baidu.com
yum install syslinux ----> pxelinux.0
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。