Ecs初始化1

#!/bin/bash

###########################################
# Author : JRT                   #
# why :  #ecs初始化,预期以一个脚本完成常用的安全配置
# Version : 1.0                           #
# Create_Time : 2021.9.29  #
# Description : 1.创建普通用户,2.创建可免密切换root用户,3.修改端口 4.安装修改docker目录,5.操作日志 6.创建user白名单,7.配源和安装依赖
###########################################

#ip白名单
ip=1.1.1.1
port=22
#ip+端口
harbor=1.1.1.1:22

#环境检查
check_env()
{
   if [  -n "`cat /etc/os-release |grep CentOS-7`" ];then
    echo -e "\e[35;40mGood,Your env is CentOS-7 \e[0m"

    elif [  -n "`cat /etc/os-release |grep CentOS-8`" ];then
        echo -e "\e[35;40mGood,Your env is CentOS-8 \e[0m"

    elif [  -n "`cat /etc/os-release |grep ubuntu`" ];then
        echo -e "\e[35;40mGood,Your env is ubuntu \e[0m"
    else
        echo -e "\e[35;40m环境检查失败,请将脚本放在正确环境,重新执行 \e[0m"
    exit

    fi
}

#加入非ip的密钥登陆
ip_white()
{
    check_env
    #禁陌生IP登陆,允许ip登陆
    echo "sshd: $ip" >> /etc/hosts.allow
    if [ ! -n "`cat /etc/hosts.deny |grep sshd:ALL`"  ];then
        echo "sshd:ALL" >> /etc/hosts.deny
    else
        echo "NOT NULL"
    fi
    service sshd  restart
}

#数据盘初始化和挂载
i=0
for j in `lsblk |grep vd |grep  -v  vda |awk 'NF <7' |awk '{print $1}'` 
do

if [ $i == 0 ];then

    if [ ! -d "/data" ];then
        mkdir /data
        mkfs -t ext4 "/dev/$j"
        mount /dev/$j /data
        #永久挂载
        echo "/dev/$j                                 /data                   ext4    defaults        0 0" >> /etc/fstab
    else
        mkfs -t ext4 "/dev/$j"
        mount /dev/$j /data
        #永久挂载
        echo "/dev/$j                                 /data                   ext4    defaults        0 0" >> /etc/fstab
    fi
else
    mkdir "/data$i"
    mkfs -t ext4 "/dev/$j"
    mount /dev/$j "/data$i" 
    #永久挂载
    echo "/dev/$j                                 /data$i                   ext4    defaults        0 0" >> /etc/fstab
    df -TH
fi

i=`expr $i + 1`
done
}


#修改远程连接端口(涉及重新连接,放在最后)
alter_port()
{
    check_env
    read -p "请输入ssh连接的端口:" port
    sed -i "17i Port $port" /etc/ssh/sshd_config
    systemctl restart sshd.service
}

#加入镜像加速 ,harbor镜像 ,实验特性打开 
#安装docker20.10.8版本
install_docker()
{
    check_env
    if [ -n "`docker info`" ];then
        echo "docker 已安装"
    else
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    fi
    #docker授权   
    if [ ! -d "/data" ];then
        mkdir /data
    fi
    mkdir /etc/docker
    touch  /etc/docker/daemon.json

cat > /etc/docker/daemon.json << EOF    
{
"insecure-registries":["https://119.3.173.212:8085","http://$harbor"],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"graph" : "/data/docker",
"experimental": true

}

EOF
    mkdir -p /root/.docker
    touch /root/.docker/config.json
cat > /root/.docker/config.json << EOF  
{
"experimental": "enabled"

}

EOF
    echo "`pwd`"
    systemctl restart docker
    echo "`ls -la /run/docker.sock`"
    chmod a+rw /run/docker.sock
    systemctl restart docker 

}


#开机挂载
check_env
echo "开机挂载"
disk_mount
sleep 2s
check_env
#docker安装授权,及加速,修改docker目录,打开实验特性打开
echo "docker安装授权,及加速,修改docker目录,打开实验特性打开" 
install_docker