目录博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注点赞收藏⭐留言
- 代码
- 使用方式
最近部署数个K8S集群,角色部署前的环境设置比较麻烦。于是自己写了个自动化脚本,此脚本仅适用于Centos 或Red Hat系统。
代码#!/bin/bash
# hosts配置文件的路径,相对路径和绝对路径都可以
hostsPath="host.txt"
# 默认的hostName=hostNameStrPrefix+ip地址最后一部分+点号+全限定域名后缀
# 全限定域名前缀,用于生成默认hostname,如果确定hosts配置文件中包含本机的ip和hostname,则可以填写为空字符串
hostNameStrPrefix="k8s"
# 全限定域名后缀,用于生成默认hostname,如果确定hosts配置文件中包含本机的ip和hostname,则可以填写为空字符串
hostNameStrSuffix="laowang.cn"
# 当前最新内核的主版本号
kernelVersion="5"
# docker镜像仓库地址
# 如果没有,则为空字符串;如果填写,则需要提供证书文件,证书文件名为"${registryHost}.crt",且放置在与脚本相同的文件夹中
registryHost="registry.laowang-dev.cn"
# 仓库用户名,如果没有,则为空字符串
registryUser="laowang"
# 仓库密码,如果没有,则为空字符串
registryPassWord="laowang"
output_red() {
echo -e " 33[31m$1 33[0m"
}
output_yellow() {
echo -e " 33[33m$1 33[0m"
}
output_green() {
echo -e " 33[32m$1 33[0m"
}
output_blue() {
echo -e " 33[36m$1 33[0m"
}
output_flicker() {
echo -e " 33[5m$1 33[0m"
}
# 不需要设置
ipStr=""
hostNameStr=""
getDefaultHostName(){
local ifconfigStr=$(ifconfig | grep 192.168)
local ifconfigArray=(${ifconfigStr})
ipStr="${ifconfigArray[1]}"
echo "检测到本机ip地址为:${ipStr}"
local catStr=$(cat ${hostsPath}|grep "${ipStr}")
if [ "ja${catStr}" = "ja" ]; then
local ipArray=(${ipStr//./ })
hostNameStr="${hostNameStrPrefix}${ipArray[3]}.${hostNameStrSuffix}"
echo "${ipStr} $hostNameStr" >> ${hostsPath}
output_yellow "警告:hosts配置文件中未包含本机IP,现已经设置默认的hostname(${hostNameStr}),请注意将此信息同步到其他计算机中。"
else
local catArray=($catStr)
hostNameStr=${catArray[1]}
fi
}
if [ -f "${hostsPath}" ]; then
getDefaultHostName
else
output_red "缺失hosts配置文件。"
echo "退出中..."
exit 1
fi
output_blue "--升级Linux内核——————————————————————————————————"
yum install -y yum-utils
#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#安装最新内核
yum --enablerepo=elrepo-kernel install -y kernel-ml
#设置最新的内核
awkResultNum=`sudo awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg |grep -c "CentOS Linux (${kernelVersion}."`
if [ 1 -ne ${awkResultNum} ]; then
output_yellow "警告:符合条件内核数量异常,请稍后自行选择Linux内核。"
else
awkResult=`sudo awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg |grep "CentOS Linux (${kernelVersion}."`
grub2-set-default ${awkResult:0:1}
fi
output_blue "--设置时间同步——————————————————————————————————"
# 设置时间
timedatectl set-timezone Asia/Shanghai
yum install -y ntp
cat>/etc/sysconfig/ntpd< /etc/hostname
hostsStr=(cat ${hostsPath})
cat>/etc/hosts<
使用方式
1 复制上文中的脚本,参照脚本中的注释,将开头的7个参数的值,按照您的实际需要进行修改。然后写入Linux,并赋予其可执行权限。
2 将hosts配置信息写入Linux。如:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.130.179 k8s179.laowang.cn
192.168.130.180 k8s180.laowang.cn
192.168.130.183 k8s183.laowang.cn
192.168.130.184 k8s184.laowang.cn
192.168.130.185 k8s185.laowang.cn
3 将crt证书文件传入Linux。
4 确保脚本、hosts配置文件、crt证书在同一个文件夹。其中crt证书可以没有。
5 执行脚本。
如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。



