【脚本】pxe自动化装机,包含图形化界面,释放双手


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、pxe自动装机

  • 话不多说上脚本
#!/bin/bash
#eefect:PXE自动化装机

install_pxe (){
#关闭防火墙,selinux
systemctl disable --now firewalld
setenforce 0
sed -i '7 s/enforcing/disable/' /etc/sysconfig/selinux

#安装pxe所需要的服务:tftp传输小文件,ftp传输大文件,dhcp协议分配IP,syslinux创建新系统内核文件
yum install -y tftp-server.x86_64 vsftpd dhcp syslinux

#复制dhcp配置文件
cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

#获取本机IP地址、网段、掩码
IP=`ifconfig |grep -m 1 netmask |awk '{print $2}'`
subnet=`route | grep ens33 |awk 'NR==2{print $1}'`
netmask=`route | grep ens33 |awk 'NR==2{print $3}'`

#修改dhcp配置文件,设置分配的IP网段
sed -i "27 s/.*/subnet ${subnet} netmask ${netmask} {\n  range ${subnet%?}100 ${subnet%?}200;\n  option routers ${IP};\n  next-server ${IP};\n  filename \"pxelinux.0\";/" /etc/dhcp/dhcpd.conf

#修改tftp配置文件,设置为开机自启
sed -i '14 s/yes/no/' /etc/xinetd.d/tftp

mkdir -p /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/

#准备四大文件
cd /var/ftp/centos7/isolinux/
cp initrd.img vmlinuz /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
#编写自动化装机路径指向配置文件
cat >/var/lib/tftpboot/pxelinux.cfg/default<<EOF
default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://${IP}/centos7 ks=ftp://${IP}/ks.cfg"
EOF

systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd

#####准备自动图形化安装ks.cfg文件#####
yum install -y system-config-kickstart.noarch

cat >/var/ftp/ks.cfg<<EOF
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext abc123
# Use network installation
url --url="ftp://${IP}/centos7"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
EOF

}

#####脚本主体#####

#调用pxe装机脚本
install_pxe

二、结语

  • 根据每个人的光盘镜像文件不同,可能会出现一些差距,不过不会影响最终安装
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PXE(Preboot Execution Environment)是一种网络引导技术,可以通过网络从远程服务器上启动和安装操作系统。编写一个PXE装机的Shell脚本可以帮助简化和自动化这个过程。下面是一个简单的PXE装机Shell脚本的示例: ```shell #!/bin/bash # 设置PXE服务器的IP地址和TFTP根目录 PXE_SERVER_IP="192.168.1.100" TFTP_ROOT="/var/lib/tftpboot" # 设置要安装的操作系统镜像文件名 OS_IMAGE="ubuntu-20.04.iso" # 设置客户端的MAC地址 CLIENT_MAC="00:11:22:33:44:55" # 创建PXE配置文件 echo "DEFAULT menu.c32 PROMPT 0 TIMEOUT 300 ONTIMEOUT local MENU TITLE PXE Boot Menu LABEL install MENU LABEL Install Ubuntu KERNEL ubuntu-installer/amd64/linux APPEND vga=788 initrd=ubuntu-installer/amd64/initrd.gz ks=http://${PXE_SERVER_IP}/ks.cfg LABEL local MENU LABEL Boot from local disk LOCALBOOT 0" > ${TFTP_ROOT}/pxelinux.cfg/default # 创建Kickstart配置文件 echo "# 安装语言 lang en_US.UTF-8 # 网络配置 network --bootproto=dhcp --device=eth0 # 安装源 url --url=http://${PXE_SERVER_IP}/ubuntu # 设置root密码 rootpw --iscrypted $6$z9X3s... # 安装软件包 %packages @^ubuntu-desktop firefox gimp %end" > ${TFTP_ROOT}/ks.cfg # 将操作系统镜像文件复制到TFTP根目录 cp ${OS_IMAGE} ${TFTP_ROOT}/ubuntu/${OS_IMAGE} # 启动TFTP和DHCP服务 systemctl start tftp systemctl start dhcp # 添加客户端MAC地址到DHCP配置文件 echo "host pxeclient { hardware ethernet ${CLIENT_MAC}; fixed-address 192.168.1.200; }" >> /etc/dhcp/dhcpd.conf # 重启DHCP服务 systemctl restart dhcp ``` 这个脚本的功能是创建PXE配置文件、Kickstart配置文件,并将操作系统镜像文件复制到TFTP根目录。然后启动TFTP和DHCP服务,并将客户端的MAC地址添加到DHCP配置文件中,最后重启DHCP服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪碧不要气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值