PXE 网络自动化部署 dhcp+http+tftp+ks

前言

工作中,又太多上新系统需求,为减少重复工作,整理一份自动化安装系统文档。以下环境为虚拟机,所有服务都部署到一台虚拟机中。并且关闭防火墙等。
准备工作:
提前准备centos7系统文件
虚拟主机IP地址192.168.1.1
centos发行版本号

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

关闭firewall、selinux

[root@localhost ~]# iptables -F        #关闭防火墙
[root@localhost ~]# setenforce 0     #临时关闭selinux

一、dhcp安装

1、安装dhcp

[root@localhost /]# yum  install dhcp -y   

2、复制配置文件模板

[root@localhost /]# cp /usr/share/doc/dhcp-X/dhcpd.conf.example /etc/dhcp/dhcpd.conf      

3、修改dhcpd配置

[root@localhost /]# vim /etc/dhcp/dhcpd.conf      
subnet 192.168.1.0 netmask 255.255.255.0 {              #ip子网及掩码
  range 192.168.1.200 192.168.1.220;                    #dhcp分配地址
  next-server  192.168.1.1;                             #指定tftp服务端地址
  default-lease-time 600;
  max-lease-time 7200;
  filename "pxelinux.0";                                #指定pxe引导
}        

4、重启dhcp服务

[root@localhost /]# systemctl restart dhcpd    

二、samba安装

1、安装及启动服务

[root@localhost /]# yum install samba samba-client -y         
[root@localhost /]# systemctl start smb nmb

2、修改配置文件

[root@localhost /]# vim /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
        map to guest = bad user    #新增,用于免密登陆
[samba]                                  
        comment = samba        #目录名称
        path = /home/samba     #服务器端共享目录
        writable = yes         #写入权限
        browseable = yes       #访问权限
        guest ok = yes         #允许guest账户访问
[root@localhost /]# mkdir /home/samba            #创建共享目录
[root@localhost /]# chown -R 777 /home/samba/    #提权
[root@localhost /]# systemctl restart smb        #重启服务 

3、导入centos到共享目录中
win系统在运行中输入\192.168.1.1,将系统上传到共享目录中。将centos7系统isolinux目录下的isolinux.cfg、vmlinuz、initrd.img一同上传。
示例图-01

三、http安装

1、安装及启动服务

[root@localhost /]# yum install httpd -y   
[root@localhost /]# systemctl start httpd     

2、测试服务是否正常
示例图-02

3、挂载镜像文件网页路径

[root@localhost /]# mkdir /var/www/html/centos7       #创建目录
[root@localhost /]# mount /home/samba/centos7.iso  /var/www/html/centos7  #挂载系统目录
[root@localhost /]# systemctl restart httpd           #重启服务

四、tftp安装

1、安装tftp及启动服务

[root@localhost /]# yum  install tftp-server tftp xinetd syslimux -y
[root@localhost /]# vim /etc/xinetd.d/tftp 
disable                 = no                          #tftp服务器默认关闭,将yes改成no,
[root@localhost /]# systemctl restart xinetd          #重启xinetd服务

2、复制系统内核文件、pxe启动文件、启动菜单等到tftp

[root@localhost /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/         #安装好syslimux后自动生成,直接复制
[root@localhost /]# cp /home/samba/vmlinuz /var/lib/tftpboot/      #复制
[root@localhost /]# cp /home/samba/initrd.img /var/lib/tftpboot/   #复制
[root@localhost /]# cp /home/samba/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default     #复制+改名

3、KS应答文件准备
在系统root目录下已自动生产KS应答文件,将KS复制到www目录下,并修改http路径

[root@localhost /]# cp /root/anaconda-ks.cfg /var/www/html/ks7.cfg   #复制+改名
[root@localhost /]# vim /var/www/html/ks7.cfg    
cdrom删掉
url --url http://XX                                   #在cdrom空位上新增挂载系统镜像地址
[root@localhost /]# chmod +x /var/www/html/ks7.cfg    #添加KS应答文件执行权限
[root@localhost /]# systemctl restart httpd           #修改完后重启http服务

4、修改启动菜单

[root@localhost /]# vim /var/lib/tftpboot/pxelinux.cfg/default
timeout 10               #选择时间10=1S

label centos7    
  menu label ^CentOS 7    #菜单名称
  kernel vmlinuz     
  append  initrd=initrd.img ks=http://192.168.1.1/ks7.cfg     #KS应答,指向系统挂载路径

在这里插入图片描述

五、总结

1、服务内容
dhcp:IP分配,指定pxe启动文件
samba:本机传输系统、引导文件等到虚拟机
tftp:发送引导文件,指定pxe启动等
http:传输系统文件、KS应答软件
2、在安装过程中,遇到的问题
ks应答文件错误,导致一直在安装中报错。更换过内核文件、修改启动菜单、修改测试虚拟机内存至2G等,都报错random: crng init done。最终导出本次虚拟机的ks文件,且就修改cdrom后自启安装成功(第二次再次测试安装时,测试虚拟机需要2G及以上内存才能完成直动安装)。
在这里插入图片描述
在本机传输内容到smb共享文件中,win10提示无权限访问,最终是在global下新增map to guest = bad user解决。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个搭建无人值守系统安装服务器的示例代码: 1. 配置 DHCP 服务 在 DHCP 服务器上,创建一个新的 DHCP 配置文件 `/etc/dhcp/dhcpd.conf`,并添加以下内容: ``` subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option domain-name-servers 8.8.8.8; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; next-server 192.168.1.2; filename "pxelinux.0"; } ``` 这个配置文件指定了 DHCP 服务器的 IP 地址池(192.168.1.100 到 192.168.1.200),DNS 服务器地址(8.8.8.8),网关地址(192.168.1.1),并将默认租约时间设置为 10 分钟。 注意,这个配置文件中的 `next-server` 和 `filename` 属性指定了 PXE 服务器的 IP 地址和启动文件名。在这个示例中,我们将 PXE 服务器的 IP 地址设置为 `192.168.1.2`,将启动文件名设置为 `pxelinux.0`。 2. 配置 TFTP 服务 在 PXE 服务器上,安装 TFTP 服务器软件,并将启动文件 `pxelinux.0` 复制到 TFTP 服务器的根目录下。 3. 配置 Kickstart 文件 创建一个 Kickstart 文件 `ks.cfg`,并将其放置在 PXE 服务器的根目录下。以下是一个示例 Kickstart 文件的内容: ``` # Install OS instead of upgrade install # Use graphical installer graphical # Set up network network --bootproto=dhcp --device=eth0 # Set up root password rootpw --iscrypted $6$SALT$HASH # Configure timezone timezone Asia/Shanghai --utc # Configure partitioning autopart --type=lvm # Configure packages to install %packages @^minimal @core kexec-tools %end ``` 这个 Kickstart 文件将使用图形界面安装 CentOS 操作系统,并自动配置网络、设置 root 密码、设置时区、使用 LVM 分区,以及安装一些基本的软件包。 注意,这个 Kickstart 文件中的 `--bootproto` 参数指定了使用 DHCP 自动配置网络。这个参数的值应该与 DHCP 配置文件中的 `bootproto` 属性保持一致。 4. 配置 PXE 引导文件 创建一个 PXE 引导文件 `pxelinux.cfg/default`,并添加以下内容: ``` default ks prompt 0 timeout 300 label ks kernel vmlinuz append initrd=initrd.img ks=http://192.168.1.2/ks.cfg ``` 这个 PXE 引导文件将使用 `vmlinuz` 和 `initrd.img` 内核文件,以及之前创建的 Kickstart 文件 `ks.cfg` 来启动自动安装程序。 注意,这个 PXE 引导文件中的 `ks` 标签指定了使用 Kickstart 文件自动安装系统,`kernel` 和 `initrd` 属性指定了内核文件,`append` 属性指定了 Kickstart 文件的 URL。 5. 启动 PXE 客户端 现在,启动一个 PXE 客户端并让其从网络引导。在启动过程中,客户端将自动从 DHCP 服务器获取 IP 地址,并下载启动文件 `pxelinux.0`。一旦下载完成,客户端将执行这个启动文件,并自动安装操作系统。 注意,整个过程是无人值守的,只需要启动客户端并等待自动安装完成即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值