发布时间:2024-12-07 人气:96次
本次主要是针对以下几方面进行优化:优化方向
1. Root权限
在之前v1.0版本中,root权限主要是依据个人自主判断,手动输入y/yes的方式去判定,这对执行脚本的人需要一定的判断能力,无法做到一键傻瓜式运行。那针对这个问题,通过引用参数ROOT_TYPE将whoami得出的值进行判断,当判断出结果是Root,则继续运行脚本,如果不是,则跳出脚本,并提示原因。
2. RHEL架构
在上一个版本的脚本中,仅针对Ubuntu进行定制执行。(主要是博主本人常用的OS基本都是Ubuntu)。但博主的朋友用啥的都有,甚至还有用CentOS 7这种EOL的操作系统,加上公司有计划将原本EOL的Linux更改为Rocky和Ubuntu,于是针对RHEL系中的CentOS和Rocky做了适配。
本着无需人为干预的原则,对OS的判断也采用了脚本自行判断的方式,同样引用参数OS_TYPE将OS的参数值进行判断。为了找到各个操作系统都能获取到OS类型的命令,查询了大量的资料和自己实际安装了一台Rocky和CentOS进行实际查询,找到了/etc/os-release中的NAME参数,并对OS_TYPE进行赋值和判断。
之后会根据判断出来的OS,自动跳转到相应的命令,并自动化执行。
3. 国内加速源
在上一个版本的脚本中,未对国内的加速源进行加速,导致在安装完成后,通过Docker拉取镜像会失败。
在本v2.0版本中,增加的修改加速源的选项。位置在各个OS版本的操作行中的3中。
脚本命令
#!/usr/bin/env bash
str1="一、正在判断当前账户是否为root"echo "-----------------------------------------------------------------------"echo -e "[31m${str1}[0m"echo "-----------------------------------------------------------------------" #获取当前账户权限ROOT_TYPE=$(whoami)#echo "$ROOT_TYPE" #判断当前账户权限是否为rootcase $ROOT_TYPE in root) echo -e "[32m当前账户是Root,将继续执行[0m" ;; *) echo -e "[33m当前账户不是Root,请切换至Root账户下执行[0m" exit 1 ;;esac str2="二、正在判断当前OS类型"echo "-----------------------------------------------------------------------"echo -e "[31m${str2}[0m"echo "-----------------------------------------------------------------------" # 获取操作系统类型OS_TYPE=$(cat /etc/os-release |grep "^NAME" |awk -F " '{print $2}')#echo "$OS_TYPE" # 判断操作系统类型并进行到相应的步骤case $OS_TYPE in Ubuntu) echo -e "[32m操作系统版本为:Ubuntu[0m" # 针对 Ubuntu 系统的步骤 str3="三、正在一键部署Docker,请稍候" echo "-----------------------------------------------------------------------" echo -e "[31m${str3}[0m" echo "-----------------------------------------------------------------------" echo "" echo "" echo -e "[36m1.正在添加Docker库(阿里)[0m" apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y -q curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt update echo "" echo "" echo -e "[36m2.正在安装Docker[0m" apt install docker-ce docker-ce-cli containerd.io docker-compose docker-compose-plugin -y -q echo "" echo "" echo -e "[36m3.正在写入Docker国内加速源[0m" # 国内加速源,可替换 echo -e "{ "registry-mirrors":["https://docker.
实际使用
在实际使用过程中,基本可以完成覆盖CentOS 7全版本和Rocky全系列。
唯一的缺陷在于国内加速源不太稳定,可能需要时刻进行更新,并且未对加速源通过指定参数去赋值,导致每次加速源更新都需要对所有涉及到的操作进行更新。