初始化脚本

#! /bin/bash

#安装wget
we=`ls /usr/bin/ | grep 'wget' >> /dev/null`
if [[ ${we} != o ]];then
    yum install wget -y
fi

#安装iostat
io=`ls /usr/bin/ | grep 'iostat' >> /dev/null`
if [[ ${io} != o ]];then
    yum install sysstat -y
fi

#关闭selinux和setenforce
echo "正在关闭selinux...."
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
echo "selinux已关闭~"

# #创建一个垃圾站
# if [[ -f "/tmp/garbage" ]]
# then
#         echo "垃圾站创建成功~~ (/tmp/garbage)"
# else
#         touch /tmp/garbage
#         echo "垃圾站创建成功~~ (/tmp/garbage)"
# fi

#创建并挂载swap分区
echo "正在创建swap分区,请稍等..." 
echo "swap分区文件地址:/mnt/swapfile"
dd if=/dev/zero of=/mnt/swapfile bs=1MB count=1024 >> /tmp/garbage
mkswap /mnt/swapfile
if [[ $? == 0 ]] && [[ -e "/mnt/swapfile" ]]
then
        echo "swap盘创建成功,正在挂载....."
        swapon /mnt/swapfile
        if [[ $? == 0 ]];then  
           echo "swap 分区挂载成功!!!"
        fi
fi
echo "/mnt/swapfile swap swap defaults 0 0" >> /etc/fstab
echo "swap 分区已添加至永久挂载~~~"
chown root:root /mnt/swapfile
chmod 0600 /mnt/swapfile
sysctl vm.swappiness=10 >> /tmp/garbage
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "swap 分区创建完毕~"

sleep 3

#挂盘
echo "开始挂载磁盘"

check_expect=`ll /usr/bin/ | grep 'expect' | wc -l`
if [[ ${check_expect} == 0 ]];then
    yum install expect -y 
fi

mount_disk(){
    mkdir /root/init
    DISK="/dev/vdb"
    /usr/bin/expect -c"
    set timeout -1
    spawn /usr/sbin/fdisk $DISK
    
    expect \"*m for help*:\"
    send -- \"n\r\"
    expect \"*p*\n\"
    send -- \"p\r\"
    expect \"*Partition number*\"
    send -- \"\r\"
    expect \"*default*:\"
    send -- \"\r\"
    expect \"*default*:\"
    send -- \"\r\"
    expect \"*m for help*:\"
    send -- \"w\r\"

    expect eof
    "
    mkfs.ext4 ${DISK}{$vdb_free} > /dev/null

    df -lh | grep -q "${DISK}${vdb_free}"
    if [ $? -ne 0 ];then
        grep -q "/home" /etc/fstab
        if [ $? -ne 0 ];then
            
            mount ${DISK}${vdb_free} /home
            echo "${DISK}${vdb_free}  /home   ext4    defaults    0   0" >>/etc/fstab
        else
            sed -i '/home/d' /etc/fstab && mount ${DISK}${vdb_free} /home
            echo "${DISK}${vdb_free}   /home  ext4  defaults   0   0" >> /etc/fstab
        fi

        df -h |grep home
        if [ $? -eq 0 ];then
            touch /root/init/mountdisk.status
        fi
    else
        echo "Home partition has been mounted,please check!!" >> /root/init.log
    fi
}

check_home=`df -h | grep home |wc -l`
if [[ $check_home == 0 ]]
then
        vdb_free=`ll /dev/ | grep vdb | wc -l`
        check_mount=`blkid | grep vdb1 | wc -l`
        check_df=`df -h | grep vdb1 | wc -l`
        check_fstab=`grep -v '^#' /etc/fstab  | grep -E 'vdb1|home' |wc -l`
        if [[ ${vdb_free} -lt 4 ]]
        then
                if [[ ${vdb_free} == 1 ]] 
                then
                        mount_disk
                elif [[ ${vdb_free} == 2 ]]   
                then                     
                        if [[ ${check_mount} == 0  ]]
                        then
                                mkfs.ext4 /dev/vdb1
                                mount /dev/vdb1 /home
                                echo "/dev/vdb1  /home   ext4    defaults    0   0" >>/etc/fstab 
                                echo "/dev/vdb1 挂载完毕,挂载点:/home"
                        elif  [[ ${check_mount} != 0  ]] && [[ ${check_df} == 0 ]]
                        then
                                mount /dev/vdb1 /home
                                echo "/dev/vdb1 挂载完毕,挂载点:/home"
                                if  [[ ${check_fstab} == 0 ]]
                                then
                                        echo "/dev/vdb1  /home   ext4    defaults    0   0" >>/etc/fstab                                        
                                fi
                        fi
                fi
        else    
                echo "磁盘vdb可用分区不足,请检查"
        fi
else
        echo "home 分区已挂载"
fi


#启动并添加firewalld规则
echo "即将配置防火墙规则"
sleep 3
systemctl restart firewalld
systemctl enable firewalld
if [[ $? == 0 ]]
then
        echo "firewall 启动完成~"
else
        echo "firewall 启动失败,请检查~"
        break
fi
firewall-cmd --zone=public --add-port=52525/tcp --permanent
firewall-cmd --zone=public --add-port=52526/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
echo "********************************************************
#信任端口 52525、52526、10051、10050、80、443、8080添加完毕~
#为您显示firewall规则
#*********************************************************       
#"
firewall-cmd --list-all --zone=public

sleep 3

#ntp时间同步
echo "开始ntp同步时间~~"
ntpdcheck=`systemctl status ntpd | wc -l`
if [[ ${ntpdcheck} == 0 ]];then
        yum install -y ntpdate
        if [[ $? == 0 ]];then
                systemctl start ntpd
        fi
else
        echo "ntpdate 已经存在,重启中。。。"
        systemctl restart ntpd
fi

if [[ $? == 0 ]]
then
        systemctl stop ntpd
        ntpdate cn.pool.ntp.org
        systemctl restart ntpd
        echo "ntp 时间同步完成~"
fi

sleep 3

#salt-minion 安装
echo "开始安装salt-minion . . ."
cat >/etc/yum.repos.d/salt.repo <<EOF

[salt-latest-repo]
name=Salt repo for RHEL/CentOS 7 PY2
baseurl=https://archive.repo.saltproject.io/yum/redhat/7/x86_64/archive/3000.5
skip_if_unavailable=True
failovermethod=priority
enabled=1
enabled_metadata=1
gpgcheck=0
gpgkey=https://archive.repo.saltproject.io/yum/redhat/7/x86_64/archive/30005/SALTSTACK-GPG-KEY.pub, https://archive.repo.saltproject.io/yum/redhat/7/x86_64/archive/3000.5/base/RPM-GPG-KEY-CentOS-7
EOF
yum clean all
yum install -y salt-minion
echo "" > /etc/salt/minion
echo "master: 49.233.21.192" >>  /etc/salt/minion
echo "master_port: 52526" >>  /etc/salt/minion
echo "id: 82.157.253.241" >>  /etc/salt/minionfdisk
echo "salt-minion 配置完成,为您重启~"
if [[ $? == 0 ]];then
    echo "salt-minion 重启成功"
fi


echo "下来安装coscmd工具。。。。"
sleep 3

#安装并配置python环境
if [[ -e "/usr/bin/python3" ]]
then
        #rm -rf /usr/bin/python
        #ln -s /usr/bin/python3 /usr/bin/python
        echo "Python 配置成功~"
else
        yum install python3 -y
        if [[ $? == 0 ]]
        then
                echo "Python 配置成功~"
        fi
fi

echo "正在配置pip环境,以及安装coscmd"

#检测pip
if [[ -e "/usr/bin/pip3" ]]
# 安装coscmd
then
        pip3 install coscmd
        if [[ $? == 0 ]]
        then
                echo "coscmd 安装成功!!!"
        fi
else
        yum install python-pip -y
        pip3 install coscmd
        if [[ $? == 0 ]]
        then
                echo "coscmd 安装成功!!!"
        fi
fi

echo "开始安装HTTP。。。"
sleep 3

#安装httpd

httpcheck=`systemctl status  httpd | wc -l`
if [[ ${httpcheck} == 0 ]];then
        yum install -y httpd
        if [[ $? == 0 ]];then
                systemctl start httpd
        fi
else
        echo "http 已经存在,重启中。。。"
        systemctl restart httpd
fi

systemctl enable httpd
#echo "DirectoryIndex index.html index.php" >> /etc/httpd/conf/httpd.conf
#echo "AddType application/x-httpd-php .php .php3 .php4 .php5" >> /etc/httpd/conf/httpd.conf
systemctl start httpd

if [[ $? == 0 ]]
then
        echo "HTTP 启动成功"
fi


#*******************************************************************************************************
#安装zabbix-server及配置数据库

#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#
#yum clean all
#
#yum install zabbix-server-mysql zabbix-agent -y
#
#yum install centos-release-scl -y
#
#sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/zabbix.repo
#
#yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
#
#wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
#
#rpm -ivh mysql57-community-release-el7-8.noarch.rpm
#sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/mysql-community.repo
#sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/mysql-community-source.repo
#yum -y install mysql-server
#
#systemctl start mysqld
#
#passwd=`grep "root@localhost" /var/log/mysqld.log | awk '{print $NF}'`
#read -p "请输入Mysql的新密码:" mysqlnewpasswd
#mysqladmin -uroot -p"$passwd" password $mysqlnewpasswd
#echo "Mysql密码修改成功!!!"
#gg
#echo "Mysql安装成功,开始安装zabbix......"
#
#mysql -uroot -p$mysqlnewpasswd -e 'create database zabbix character set utf8 collate utf8_bin;'
#if [[ $? == 0 ]]
#then
#        echo "zabbix 数据库创建成功!!!"
#fi
#read -p "请输入zabbix用户密码:" zabbixpasswd
#mysql -uroot -p$mysqlnewpasswd -e "grant all on zabbix.* to zabbix@localhost identified by '$zabbixpasswd'"
#echo "用户zabbix创建成功!!"
#mysql -uroot -p$mysqlnewpasswd -e "update mysql.user set host='%' where user='zabbix';"
#mysql -uroot -p$mysqlnewpasswd -e "update mysql.user set host='%' where user='root';"
#echo "权限修改成功!!"
#
#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p"$zabbixpasswd" zabbix
#echo "DBPassword=$mysqlnewpasswd" >> /etc/zabbix/zabbix_server.conf
#
#echo "php_value[date.timezone] = Asia/Shanghai" >> /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#
#systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
#
#systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#
#if [[ $? == 0 ]]
#then
#        echo "zabbix-server 启动成功!!!"
#        echo "浏览器输入 ’IP+/zabbix‘ 进入zabbix监控~~~ "
#fi

#*******************************************************************************************************


echo "开始安装zabbix-agent ,并配置接入到zabbix监控平台"
sleep 3
#源码安装zabbix并且将其接入zabbix监控平台

installdir='/usr/local/zabbix'
purl='http://49.233.25.108/get_proxy_api/'
IP=`ip a | egrep -w "inet" | grep 'brd' | awk '{print $2}' | awk -F"/" '{print $1}'`
# IP='10.157.0.3'
Proxy=`curl ${purl}${IP}`  
# oldstartdir='/tmp/oldzabbix'
startdir='/etc/init.d/'
confdir='/usr/local/etc/'

wget http://101.200.170.223/linux/zabbix_agent5/zabbix-5.0.15_x64_kernel2.6.tgz

if [[ $? == 0 ]];then
    if [[ -d ${installdir} ]];then
        tar -xzvf zabbix-5.0.15_x64_kernel2.6.tgz -C /usr/local/zabbix
        chmod 755 -R ${installdir}/sbin/
    else
        mkdir ${installdir}
        tar -xzvf zabbix-5.0.15_x64_kernel2.6.tgz -C /usr/local/zabbix
        chmod 755 -R ${installdir}/sbin/
    fi
fi

[[ ! -f ${installdir}/conf/zabbix_agentd.conf ]] && echo "ERROR:install zabbix_agent filed!!" && break

sed -i "s/IP/${IP}/g" ${installdir}/conf/zabbix_agentd.conf
sed -i "s/Proxy/${Proxy}/g" ${installdir}/conf/zabbix_agentd.conf
mv ${installdir}/conf/zabbix_agentd.conf ${confdir}



if [[ -e ${installdir}/sbin/zabbix_agentd ]];then
    mv ${installdir}/sbin/zabbix_agentd ${startdir}
fi

if [[ $? == 0 ]];then
    ${startdir}zabbix_agentd
        if [[ $? == 0 ]];then
            echo "/etc/init.d/zabbix_agentd" >> /etc/rc.local
            echo "zabbix-agent started!!"
        else
            echo "zabbix-agent start failed" && break
        fi
fi


# echo "修改root用户密码,并创建普通用户!!"
# sleep 3

# 修改root用户密码
# # read -p "请输入root用户的新密码:" rootnewpasswd
# echo "root123456" | passwd --stdin root
# # read -p "请输入新创建的用户名:" newuser
# useradd yanjie_c
# if [[ $? == 0 ]]
# then                    
#       echo "用户 yanjie_c 创建成功~~ ~"     
# fi


sleep 3
# ssh免密认证
# echo "配置ssh免密认证"
# /usr/bin/expect -c"
# set timeout -1
# spawn  /usr/bin/ssh-keygen     
# expect \"*/root/.ssh/id_rsa*:\"
# send -- \"\r\"
# expect \"*Enter passphrase*:\"
# send -- \"\r\"
# expect \"*same passphrase again*:\"
# send -- \"\r\"

# spawn  ssh-copy-id -i /root/.ssh/id_rsa.pub  root@10.157.0.3
# expect \"*t@10.157.0.3's pass*:\"
# send -- \"Nebula@123\r\"

# expect eof
# "


echo "开始添加ssh 权限名单"
sleep 3

#创建ssh黑/白名单
echo "开始创建ssh黑/白名单..."
echo "sshd:ALL" >> /etc/hosts.deny
echo "sshd:10.1.38.2" >> /etc/hosts.allow
echo "sshd:10.157.0.3" >> /etc/hosts.allow
echo "sshd:10.157.0.12" >> /etc/hosts.allow
systemctl restart sshd

# while :
# do
#         cat << EOF
# ***************************     
# 请选择你要进行的操作
# ***************************     
# 1.禁用IP
# 2.开放IP
# 3.禁用用户
# 4.开放用户
# 5.退出程序
# ***************************     
# EOF
#         read -p "输入你的操作:" choice
#         case $choice in
#                 "1")
#                 read -p "请输入你要禁用的IP:" rejectip
#                 echo "sshd:$rejectip:deny" >> /etc/hosts.deny
#                 ;;
#                 "2")
#                 read -p "请输入你要开放的IP:" acceptip
#                 echo "sshd:$acceptip:allow" >> /etc/hosts.allow
#                 ;;
#                 "3")
#                 read -p "请输入你要禁用的用户名:" rejectuser
#                 echo "DenyUsers $rejectuser" >> /etc/ssh/sshd_config
#                 ;;
#                 "4")
#                 read -p "请输入你要开放的用户名:" acceptuser
#                 echo "AllowUsers $acceptuser" >> /etc/ssh/sshd_config
#                 ;;
#                 [!12345])
#                 echo "输入错误,请重新输入"
#                 ;;
#                 "5")
#                 echo "程序退出~"
#                 break
#         esac
# done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值