【PXE】KS解读

资源池节点主机扩容流程

一、工作内容及顺序

  1. 主机组与网络组需根据项目实施规划进行KS脚本编写与交换机配置编写,在编写完之后转交给一级项目经理进行审核
  2. 到达现场后需要对交换机与服务器进行验收,通过跑脚本的方式来对机器进行检测,如发现配置与厂商所需设定的配置有出入,则需要联系厂商人员到达现场进行调整。不可自行调整
  3. 服务器操作系统均为Centos版本,需要根据实施规范来对版本进行调整。如一些项目中需要推送自研Ctyun
  4. 在网络组搭建好基础网络之后,主机组需要在接入交换机进行推送,其中需要开通特定推送Vlan。通过网络获取DHCP之后进行批量推机
  5. 成功推机之后,需要对主机内核进行升级(也可以直接通过ks直接升级),如果不能直接升级,则需要通过带外使用ebox进行批量脚本运行
  6. 进行各类检查
  7. 对项目进行割接测试,保证割接业务无异常影响
  8. 攥写交付文档

二、KS详细解读

install
url --url=ftp://172.16.10.10/centos7.9    #镜像拉取路径,需和pxe服务器镜像位置相同
lang en_US.UTF-8
keyboard --vckeymap=us --xlayouts='us'	#语言、键盘设置
rootpw --plaintext 'Ctyun.cn123'	#密码设置
firewall --disabled	#防火墙设置
auth --enableshadow --passalgo=sha512	#加密类型(啥512)
selinux --disabled	#SElinux设置
clearpart --all --initlabel	#清除分区
part /boot --fstype="xfs" --ondisk=sda --size=1024	#boot分区,区域类型XFS,在sda盘符,大小1024
part / --fstype="xfs" --ondisk=sda  --grow	#--grow剩余空间
%packages --ignoremissing	#需要安装的包列表
@^minimal	#最小化系统
@core
wget	#拉取文件命令
lldpad	#lldp
ipmitool	#ipmi验收需要软件
%end

%pre	#目前项目没用到-大致意思为扫描系统序列号并截出所需内容进行赋值,将内容赋值进_SN变量
#if dmidecode | grep -qEi 'VMware|VirtualBox|KVM|Xen|Parallels'; then
#  _sn=$(sed q /sys/class/net/*/address)
#else
#    _sn=$(dmidecode -s system-serial-number 2>/dev/null | awk '/^[^#]/ { print $1 }')
#fi

%end

%post
#wget ftp://172.16.10.10/hostlist.txt -P /tmp/	#拉去hostlit.txt文件到新装系统的/tmp目录中  (也可以使用curl命令)
#######Global software get end###########
systemctl stop firewalld.service		#重启或者关闭各类服务
systemctl disable firewalld.service
systemctl stop libvirtd.service
systemctl disable libvirtd.service
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl start lldpd.service
systemctl enable lldpd.service
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config	#sed -i 更改ssh配置文件
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config

#curl -O ftp://172.16.10.10/lldp.iso >> /tmp/lldp.iso
#mount -o loop lldp.iso /mnt
#cp -r /mnt/* /root/
#chmod 777 -R /root/lldp.sh
#sh /root/lldp.sh	#拉取镜像文件并挂载,赋予脚本最高权限,运行lldp.sh脚本文件

####配置互信密钥对
#mkdir -p /root/.ssh/
#curl -O http://192.168.1.253/authorized_keys


for i in 'ls /sys/class/net/ | grep e';	#for循环,扫描系统中e开头的网卡,赋值给变量i,通过重定向到网卡文件中,通过变量创建网卡配置文件。其中并没有配ip地址
do
cat >/etc/sysconfig/network-scripts/ifcfg-$i << EOF
DEVICE=$i
TYPE=Ethernet
NAME=$i
ONBOOT=yes
BOOTPROTO=none
IPV6INIT=no
EOF
done
%end


%post
#curl 172.16.10.10/scripts/centos.sh | bash
sed -i -e "s/^#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
curl ftp://172.16.10.10/scripts/config-ip-server1.sh >> /tmp/config-ip-server1.sh	#拉取配置ip脚本
curl ftp://172.16.10.10/scripts/ip2.txt >> /tmp/ip2.txt	#拉取序列号ip表
chmod +x   /tmp/config-ip-server1.sh
sh /tmp/config-ip-server1.sh 	#运行配置IP脚本
#progress "安装完成" 1 "aW5zdGFsbCBmaW5pc2hlZAo="


三、配置IP脚本解读

#!/bin/bash
cp /etc/sysconfig/network /root/network_`date +%Y%m%d%H_%H%M%s`		#复制network文件,以当前时间为文件命
v_serial=`dmidecode -s system-serial-number | tail -n 1` 2>> /root/out.txt	#获取系统序列号赋值给V_serial变量,将错误信息重定向至/root/out.txt文件          1>>  正确重定向   2>>错误重定向
v_line=`wc -l /tmp/ip2.txt | awk '{print $1}'` 2>> /root/out.txt	#统计ip文件一共有多少行,也就定义了多少次循环
NETWORK="/etc/sysconfig/network" 2>> /root/out.txt
let "v_line+=1" 2>> /root/out.txt	#算术计算,将变量v_line的值进行自加一
for((i=1;i<$v_line;i++));  #进行循环赋值,如果比对序列号相同,则为其分配对应IP等其他地址
do
v_ip_serial=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 1` 2>> /root/out.txt
if [ "$v_serial" = "$v_ip_serial" ];then		#if比对
v_host=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 2` 2>> /root/out.txt
v_ip1=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 3` 2>> /root/out.txt
v_netmask1=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 4` 2>> /root/out.txt
v_getway1=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 5` 2>> /root/out.txt
v_ip2=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 6` 2>> /root/out.txt
v_netmask2=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 7` 2>> /root/out.txt
v_ip3=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 8` 2>> /root/out.txt
v_netmask3=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 9` 2>> /root/out.txt
v_ip4=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 10` 2>> /root/out.txt
v_netmask4=`cat /tmp/ip2.txt | head -n $i | tail -n 1 | cut -d '|' -f 11` 2>> /root/out.txt
fi
done



#重定向写入  EOF
cat > /etc/sysconfig/network-scripts/ifcfg-enp59s0f0  <<EOF
DEVICE=enp59s0f0 
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond1
SLAVE=yes
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-enp176s0f0  <<EOF
DEVICE=enp176s0f0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond1
SLAVE=yes
EOF




cat > /etc/sysconfig/network-scripts/ifcfg-bond1 <<EOF
DEVICE=bond1
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=yes
BONDING_MASTER=yes
BONDING_OPTS="miimon=100 mode=6"
IPADDR=$v_ip1
NETMASK=$v_netmask1
GATEWAY=$v_getway1
EOF




echo $v_host > /etc/hostname  #将主机名写入hostname文件中

systemctl stop NetworkManager	#重启各类服务
systemctl disable NetworkManager 
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl restart network



四、序列号文件编写

  1. 从实施规划中找到主机设备规划
  2. 将序列号、主机名、业务ip、计算、存储提取出,复制到一个新的excel表中,每一行和每一行之间使用“|” 隔开
  3. 然后将内容复制粘贴至notepad++中进行编辑,将“|”两侧的空行进行替换删除
  4. 将该内容放入pxe系统中,之后进行导入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ACHAI:)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值