美文网首页
基于Cetnstos7.6的pxe安装---通过excl文件获取

基于Cetnstos7.6的pxe安装---通过excl文件获取

作者: 疯疯疯子子子 | 来源:发表于2019-07-22 18:51 被阅读0次
  • kickstart的原理及组件

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了

  • 关闭防火墙及selinux

systemctl stop friewalld
systemctl disable firewalld
setenforce 0 
sed -i 's/^SELINUX=.*/SELINUX=disabled/` /etc/selinux/config
  • DHCP安装

yum install dhcp -y
cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {   ## 指定网段   
range 172.16.1.100 172.16.1.199;     ## 地址范围   
option subnet-mask 255.255.255.0;   ## 分配的掩码 
default-lease-time 21600;   ## 地址租约   
max-lease-time 43200;       ## 最大租约   
next-server 172.16.1.201;   ## 下一步找什么  (本机地址)
filename "/pxelinux.0";    ## 要下载的文件(请求下载启动文件)
}
EOF
systemctl start dhcpd     --- 启动
systemctl status dhcpd    --- 查看状态
  • http安装

yum install httpd -y
mkdir -p /var/www/html/centos7.6  ###创建镜像目录
mkdir -p /var/www/html/ks           ####创建ks文件目录
systemctl start httpd
  • TFTP安装及syslinux安装

yum install tftp-server syslinux -y
  • 生成pxelinux.0文件

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  • 从镜像中寻找相关配置文件

# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
# mkdir -p /var/lib/tftpboot/pxelinux.cfg 
# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  • 编辑default文件

default ks
prompt 0
label ks
   kernel vmlinuz
   append initrd=initrd.img ks=http://192.168.168.101/ks/ks.cfg  ksdevice=eno3 ##该口为接收数据的网口。实际上并没有在引导时还是所有网口去例遍了

  • 编辑 ks文件 并赋予755权限

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=http://192.168.168.101/centos7.6   ###获取镜像地址
# Use graphical install  ###安装方式 分为图形化界面以及文本界面
#graphical
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8

# Network information
#network  --bootproto=dhcp --device=eno1 --onboot=off --ipv6=auto --no-activate
#network  --bootproto=dhcp --device=eno2 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=eno3 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=eno4 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=eno5 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=eno6 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=ens1f0 --onboot=off --ipv6=auto
#network  --bootproto=dhcp --device=ens1f1 --onboot=off --ipv6=auto
#network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted $6$3ZTN7uGlQC8AMQf/$gUg9Q6oHxF1zOLQbkJGVoNDgG7R9ZOmmG7Z4BEg2da3RF3FkyT4G3YJbpRdsXhzqpFj.BGfc6Ic.X1TqLqNRf. ####加密密码 
# System services
services --disabled="chronyd"
services --disabled="NetworkManager"
services --disabled="firewall"
services --disabled="selinux"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --none --initlabel
#clearpart --all --drives=sda
# Disk partitioning information
part / --fstype="xfs" --ondisk=sda --size=512000
part /var --fstype="xfs" --ondisk=sda --size=1 --grow ####表示剩余空间均给var
part swap --fstype="swap" --ondisk=sda --size=32767
part /boot --fstype="xfs" --ondisk=sda --size=1024
reboot
%packages
@^infrastructure-server-environment
@base
@compat-libraries
@core
@debugging
@development
@hardware-monitoring
@performance
@system-admin-tools
kexec-tools
ipmitool
%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

%post

cd /root
SN=`dmidecode -t 1|grep Serial|awk -F : '{print $2}'|awk -F ' ' '{print $1}'` ##获取SN号
wget http://192.168.168.101/1.csv   下载csv格式文件里面包括(网络地址,带外地址,带外网口最后由ansible推送,主机名)
IP=`grep $SN 1.csv|awk -F , '{print $3}'`
HOSTNAME=`grep $SN 1.csv|awk -F , '{print $2}'`
GATEWAY=12.33.12.254
NETMASK=255.255.255.0
OUTIP=`grep $SN 1.csv|awk -F , '{print $4}'`

hostnamectl set-hostname $HOSTNAME

echo $IP $HOSTNAME >> /etc/hosts
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ###关闭swap分区,因为k8s需要关闭swap分区
####双网卡绑定
cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-ens1f0
DEVICE=ens1f0
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
USERCTL=no
SLAVE=yes
MASTER=bond0
EOF
cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-ens1f1
DEVICE=ens1f1
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
USERCTL=no
SLAVE=yes
MASTER=bond0
EOF

#
cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
USERCTL=no
BONDING_OPTS="miimon=100 mode=4 xmit_hash_policy=layer3+4"
EOF

echo "IPADDR=$IP" >>/etc/sysconfig/network-scripts/ifcfg-bond0
echo "NETMASK=$NETMASK" >>/etc/sysconfig/network-scripts/ifcfg-bond0
echo "GATEWAY=$GATEWAY" >>/etc/sysconfig/network-scripts/ifcfg-bond0 



%end

相关文章

网友评论

      本文标题:基于Cetnstos7.6的pxe安装---通过excl文件获取

      本文链接:https://www.haomeiwen.com/subject/ujcglctx.html