server-init/CentOS/7/all/centos-7-init

259 lines
9.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
## curl -o init.sh https://git.zykeji.club/open/server-init/raw/master/CentOS/7/all/centos-7-init && sh init.sh
# curl -o init.sh https://git.zzzykj.cn/open/server-init/raw/branch/master/CentOS/7/all/centos-7-init && sh init.sh
# 循环提示用户输入要设置的主机名,直到用户正常输入
while true; do
read -p "请输入要设置的主机名: " hostname
if [[ -n "$hostname" ]]; then
break
fi
done
# 提示用户输入要创建的管理员账户
read -p "请输入要创建的管理员账户: " admin_user
# 提示用户输入要创建的普通账户
read -p "请输入要创建的普通账户: " user
# 循环询问用户是否要将yum源修改为阿里云镜像直到用户输入y或n默认为n
while true; do
read -p "是否将yum源修改为阿里云镜像(y/n默认为n): " use_aliyun_mirror
if [[ -z "$use_aliyun_mirror" ]]; then
use_aliyun_mirror="n"
fi
if [[ "$use_aliyun_mirror" == "y" || "$use_aliyun_mirror" == "n" ]]; then
break
fi
done
# 循环询问用户是否要更新系统直到用户输入y或n默认为n
while true; do
read -p "是否要更新系统?(y/n默认为n): " update_system
if [[ -z "$update_system" ]]; then
update_system="n"
fi
if [[ "$update_system" == "y" || "$update_system" == "n" ]]; then
break
fi
done
# 如果用户不更新系统循环询问是否更新软件直到用户输入y或n默认为n
if [[ "$update_system" == "n" ]]; then
while true; do
read -p "是否要更新软件?(y/n默认为n): " update_software
if [[ -z "$update_software" ]]; then
update_software="n"
fi
if [[ "$update_software" == "y" || "$update_software" == "n" ]]; then
break
fi
done
fi
# 循环询问用户是否安装宝塔直到用户输入y或n默认为n
while true; do
read -p "是否安装宝塔?(y/n默认为n): " install_bt
if [[ -z "$install_bt" ]]; then
install_bt="n"
fi
if [[ "$install_bt" == "y" || "$install_bt" == "n" ]]; then
break
fi
done
# 循环询问用户是否安装jdk8直到用户输入y或n默认为n
while true; do
read -p "是否安装jdk8(y/n默认为n): " install_jdk8
if [[ -z "$install_jdk8" ]]; then
install_jdk8="n"
fi
if [[ "$install_jdk8" == "y" || "$install_jdk8" == "n" ]]; then
break
fi
done
# 循环询问用户是否安装docker直到用户输入y或n默认为n
while true; do
read -p "是否安装docker(y/n默认为n): " install_docker
if [[ -z "$install_docker" ]]; then
install_docker="n"
fi
if [[ "$install_docker" == "y" || "$install_docker" == "n" ]]; then
break
fi
done
# 如果安装docker循环询问是否配置阿里云镜像加速直到用户输入y或n默认为n
if [[ "$install_docker" == "y" ]]; then
while true; do
read -p "是否配置阿里云镜像加速?(y/n默认为n): " configure_aliyun_acceleration
if [[ -z "$configure_aliyun_acceleration" ]]; then
configure_aliyun_acceleration="n"
fi
if [[ "$configure_aliyun_acceleration" == "y" || "$configure_aliyun_acceleration" == "n" ]]; then
break
fi
done
fi
# 如果不配置阿里云镜像加速循环询问是否配置私服加速直到用户输入y或n默认为n
if [[ "$configure_aliyun_acceleration" == "n" ]]; then
while true; do
read -p "是否配置私服加速?(y/n默认为n): " configure_private_registry_acceleration
if [[ -z "$configure_private_registry_acceleration" ]]; then
configure_private_registry_acceleration="n"
fi
if [[ "$configure_private_registry_acceleration" == "y" || "$configure_private_registry_acceleration" == "n" ]]; then
break
fi
done
fi
# 如果安装docker循环询问是否安装docker-compose直到用户输入y或n默认为n
if [[ "$install_docker" == "y" ]]; then
while true; do
read -p "是否安装docker-compose(y/n默认为n): " install_docker_compose
if [[ -z "$install_docker_compose" ]]; then
install_docker_compose="n"
fi
if [[ "$install_docker_compose" == "y" || "$install_docker_compose" == "n" ]]; then
break
fi
done
fi
# -------------- 开始执行 --------------
# 如果用户输入了主机名,则设置当前主机主机名
if [[ -n "$hostname" ]]; then
hostnamectl set-hostname "$hostname"
fi
# 如果用户输入了管理员账户且账户不存在,则创建管理员账号
if [[ -n "$admin_user" && ! $(id -u "$admin_user" 2>/dev/null) ]]; then
admin_password="Zqh${admin_user^}@$(hostname)"
useradd "$admin_user"
echo "$admin_password" | passwd --stdin "$admin_user"
echo "创建管理员账号成功:账号为$admin_user,密码为$admin_password"
fi
# 如果用户输入了普通账户且账户不存在,则创建普通账号
if [[ -n "$user" && ! $(id -u "$user" 2>/dev/null) ]]; then
user_password="Zqh${$user^}@$(hostname)"
useradd "$user"
echo "$user_password" | passwd --stdin "$user"
echo "创建普通账号成功:账号为$user,密码为$user_password"
fi
# 如果用户要将yum源修改为阿里云镜像则进行阿里云yum镜像加速配置
if [[ "$use_aliyun_mirror" == "y" ]]; then
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
echo "已将yum源修改为阿里云镜像"
fi
# 如果用户要更新系统,则执行系统更新命令
if [[ "$update_system" == "y" ]]; then
yum update -y
echo "系统更新完成"
fi
# 如果用户要更新软件,则执行软件更新命令
if [[ "$update_software" == "y" ]]; then
yum upgrade -y
echo "软件更新完成"
fi
# 如果用户要安装宝塔,则执行宝塔安装命令
if [[ "$install_bt" == "y" ]]; then
yum install -y wget
wget -O install.sh http://download.bt.cn/install/install_6.0.sh
sh install.sh
echo "宝塔安装完成"
fi
# 如果用户要安装jdk8则通过yum安装jdk8
if [[ "$install_jdk8" == "y" ]]; then
rpm -qa | grep java | xargs rpm -e --nodeps
yum install -y java-1.8.0-openjdk
java -version
echo "JDK 8安装完成"
fi
# 如果用户要安装docker则通过yum安装docker-ce
if [[ "$install_docker" == "y" ]]; then
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum remove docker-ce
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
echo "Docker安装完成"
# 如果管理员账户被创建将其添加到docker组
if [[ -n "$admin_user" && $(id -u "$admin_user" 2>/dev/null) ]]; then
usermod -aG docker "$admin_user"
echo "管理员账户$admin_user已添加到docker组"
fi
# 如果普通用户账户被创建将其添加到docker组
if [[ -n "$user" && $(id -u "$user" 2>/dev/null) ]]; then
usermod -aG docker "$user"
echo "普通账户$user已添加到docker组"
fi
fi
# 如果用户要为docker配置阿里云镜像加速则执行配置阿里云镜像加速命令
if [[ "$configure_aliyun_acceleration" == "y" ]]; then
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://qu3lgucz.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker
echo "已配置阿里云镜像加速"
fi
# 如果用户要配置私服加速,则执行配置私服加速命令
if [[ "$configure_private_registry_acceleration" == "y" ]]; then
# 执行配置私服加速命令
if [[ "$configure_private_registry_acceleration" == "y" ]]; then
while true; do
read -p "请输入私服镜像地址: " private_registry_mirror
if [[ -n "$private_registry_mirror" ]]; then
break
fi
done
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": ["$private_registry_mirror"]
}
EOF
systemctl restart docker
echo "已配置私服加速"
fi
fi
# 如果用户要安装docker-compose则先判断当前路径下是否有docker-compose二进制文件如果没有则通过curl下载然后执行安装
if [[ "$install_docker_compose" == "y" ]]; then
if [[ ! -x "$(command -v docker-compose)" ]]; then
if [[ ! -f "./docker-compose" ]]; then
# "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)"
curl -u zqh:OpenFile -o docker-compose http://file.zzzykj.cn/soft/docker-compose
fi
chmod +x docker-compose
mv docker-compose /usr/local/bin/
docker-compose version
fi
echo "Docker Compose安装完成"
fi