├── README.md └── a /README.md: -------------------------------------------------------------------------------- 1 | 很开心今天来分享运维外挂的2.0版本。 2 | 3 | 有了前边[1.0](https://github.com/eryajf/shellabout/blob/master/yunweiwaigua.sh "1.0")的基础,今天所见的2.0版本基本上就是水到渠成了。 4 | 5 | 最大的变化,就是从原来的单层选择菜单,丰富到了两层,以实现更丰富的功能需求。 6 | 7 | ## 1,架构图。 8 | 9 | 最新版本脚本架构如下所示: 10 | 11 | ![运维外挂2.0版本架构草图](https://raw.githubusercontent.com/eryajf/t/master/img20190517103350.jpg "运维外挂2.0版本架构草图") 12 | 13 | `我这里提供的脚本以及内容都是提供出来一个思路,各位可以根据自己的实际需求,对脚本进行更改定制,从而符合自己的生产情况。` 14 | 15 | ## 2,详细说明。 16 | 17 | ### 内容介绍。 18 | 19 | 完成之后的内容所包含的功能如下: 20 | 21 | - 总入口 22 | - 1,安装 23 | - 1,nginx-1.14.0 24 | - 2,jdk-1.8 25 | - 3,tomcat-8 26 | - 4,mysql-5.6 27 | - 5,node-10.6 28 | - 6,maven-3.3 29 | - 7,php-7.0 30 | - 8,zabbix-agent-3.4 31 | - 9,py-3.6 32 | - 10,redis-4.0.6 33 | - 11,trash-autotrash 34 | - 12,jdk-1.7 35 | - 13,暂时未定义 36 | - 2,初始化 37 | - 1,初始化模板克隆的虚拟机 38 | - 2,初始化全新的centos 39 | - 3,zabbix-agent-3.4 40 | - 4,安装配置vmtools 41 | - 5,更改主机IP。 42 | - 6,更改主机名。 43 | - 7,新购阿里云服务器初始化。 44 | - 3,优化 45 | - 1,暂未定义 46 | - 2,暂未定义 47 | - 3,暂未定义 48 | - 4,其他 49 | - 1,暂未定义 50 | - 2,暂未定义 51 | - 3,暂未定义 52 | 53 | ### 使用说明 54 | 55 | 首先将外挂脚本放置在nginx配置的目录下,然后根据文中对应的包,将对应的包放置到对应的位置,详细部署方案,[参考这里。](http://www.eryajf.net/1395.html "参考这里。") 56 | 57 | > 只要是网络可达外挂服务的服务器,都可以通过`curl 192.168.10.10/a | sh`进行调用。 58 | > 59 | > 所有请求进来首先通过总入口进入,然后分出四个菜单供选择,接着在对应菜单中选择对应方法即可执行,若选择``则再返回到总入口当中。 60 | 61 | ![](https://raw.githubusercontent.com/eryajf/t/master/img/GIF.gif) 62 | 63 | 64 | ## 3,对比1.0。 65 | 66 | v2.0主脚本可[`点我`](https://github.com/eryajf/magic-of-sysuse-scripts/blob/master/a)跳转查看。 67 | 68 | 更新日志: 69 | 70 | 食用方法不变,主要是更新了内容并优化了相关脚本内容 71 | 72 | ### 更新内容如下 73 | - 1,新增二级菜单选项,从而让功能更加清晰可控。 74 | - 2,新增阿里云服务器初始化选项,新建一台阿里云服务器之后,一键执行,即可投入使用。 75 | - 3,优化安装菜单中的各个安装方法。 76 | - 4,更改原whiptail使用if判断为case判断,使阅读更加简洁。 77 | - 5,增加输出颜色控制,使输出更加显眼。 78 | 79 | ## 星路历程 80 | 81 | [![Stargazers over time](https://starchart.cc/eryajf/magic-of-sysuse-scripts.svg)](https://starchart.cc/eryajf/magic-of-sysuse-scripts) 82 | -------------------------------------------------------------------------------- /a: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #used of one time install, version-2.0 3 | #author: eryajf & shashuji 4 | #2019-2-14 12:40 5 | ip=192.168.10.10 6 | zabbixserver=192.168.10.11 7 | mkdir "onetimeused-$(date +%s)" && cd onetimeused-* && dir=`pwd` 8 | # 9 | ##set color## 10 | echoRed() { echo $'\e[0;31m'"$1"$'\e[0m'; } 11 | echoGreen() { echo $'\e[0;32m'"$1"$'\e[0m'; } 12 | echoYellow() { echo $'\e[0;33m'"$1"$'\e[0m'; } 13 | ##set color## 14 | # 15 | #判断一下当前用户 16 | if [ "`whoami`" != "root" ];then 17 | echoRed "注意:当前系统用户非root用户,将无法执行安装等事宜!" && exit 1 18 | fi 19 | #--------------------------------------------------------------------------------------------------------------------------------------------- 20 | # 三级方法 21 | #--------------------------------------------------------------------------------------------------------------------------------------------- 22 | S(){ 23 | echo "-----------------------------------------------------" 24 | echo "运行source /etc/profile && source /etc/bashrc安装完成!" 25 | echo "-----------------------------------------------------" 26 | } 27 | #install 28 | nginx(){ 29 | cd $dir && wget -V &> /dev/null || yum -y install wget 30 | [ -d /usr/local/nginx ] && echoRed "检测到/usr/local下已安装ngixn,故而退出!" && rm -rf $dir && exit 1 31 | [ ! -f $dir/nginx-1.14.0.tar.gz ] && wget $ip/pack/nginx-1.14.0.tar.gz 32 | yum install gcc gcc-c++ pcre pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 33 | tar -xvzf nginx-1.14.0.tar.gz && cd nginx-1.14.0 34 | ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module \ 35 | --with-http_realip_module && make && make install 36 | ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin 37 | /usr/local/nginx/sbin/nginx -V &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 38 | rm -rf $dir 39 | } 40 | tomcat(){ 41 | cd $dir && wget -V &> /dev/null || yum -y install wget 42 | [ -d /usr/local/tomcat ] && echoRed "检测到/usr/local下已安装tomcat,故而退出!" && rm -rf $dir && exit 1 43 | wget $ip/pack/tomcat.tar.gz && tar xf tomcat.tar.gz && mv tomcat /usr/local/tomcat 44 | /usr/local/tomcat/bin/version.sh &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 45 | rm -rf $dir 46 | } 47 | jdk8(){ 48 | cd $dir && wget -V &> /dev/null || yum -y install wget 49 | java -version &> /dev/null && echoRed "检测到系统中有java命令,故而退出!" && rm -rf $dir && exit 1 50 | wget $ip/pack/jdk-8u192-linux-x64.tar.gz -O jdk.tar.gz && tar xf jdk.tar.gz -C /usr/local/ 51 | echo 'JAVA_HOME=/usr/local/jdk1.8.0_192' >> /etc/profile && echo 'PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile && echo 'export PATH' >> /etc/profile && source /etc/profile 52 | /usr/local/jdk1.8.0_192/bin/java -version &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 53 | S && rm -rf $dir 54 | } 55 | jdk7(){ 56 | java -version &> /dev/null && echoRed "检测到系统中有java命令,故而退出!" && rm -rf $dir && exit 1 57 | wget $ip/pack/jdk-7u79-linux-x64.tar.gz -O jdk7.tar.gz && tar xf jdk7.tar.gz && mv jdk*/ /usr/local/jdk7 58 | echo 'JAVA_HOME=/usr/local/jdk7' >> /etc/profile && echo 'PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile && echo 'export PATH' >> /etc/profile && source /etc/profile 59 | /usr/local/jdk7/bin/java -version &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 60 | S && rm -rf $dir 61 | } 62 | maven(){ 63 | cd $dir && wget -V &> /dev/null || yum -y install wget 64 | mvn -v &> /dev/null && echoRed "检测到系统中有mvn命令,故而退出!" && rm -rf $dir && exit 1 65 | wget $ip/pack/maven.tar.gz && tar -xf maven.tar.gz -C /usr/local 66 | echo 'MAVEN_HOME=/usr/local/maven' >> /etc/profile && echo 'PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin' >> /etc/profile && source /etc/profile 67 | /usr/local/maven/bin/mvn -v &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 68 | S && rm -rf $dir 69 | } 70 | mysql(){ 71 | cd $dir && wget -V &> /dev/null || yum -y install wget 72 | [ -d /usr/local/mysql ] && echoRed "检测到/usr/local下已安装mysql,故而退出!" && rm -rf $dir && exit 1 73 | wget $ip/pack/mysql-5.6.16.tar.gz && mqnu=`cat /etc/passwd | grep mysql |wc -l` 74 | if [ $mqnu -ne 1 ];then 75 | echoRed "mysql用户不存在,新建用户" && groupadd mysql && useradd -g mysql -s /sbin/nologin mysql 76 | else 77 | echoRed "mysql已经存在" 78 | fi 79 | yum install gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* make cmake -y 80 | [ ! -d /usr/local/mysql/data ] && mkdir -p /usr/local/mysql/data && chown -R mysql.mysql /usr/local/mysql 81 | echoGreen "开始编译安装!!" && tar -xf mysql-5.6.16.tar.gz && cd mysql-5.6.16 && cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install 82 | echoGreen "注册为服务!!" && cd /usr/local/mysql/scripts && ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 83 | cd /usr/local/mysql/support-files && cp mysql.server /etc/rc.d/init.d/mysql && yes | cp my-default.cnf /etc/my.cnf && chkconfig --add mysql && chkconfig mysql on && service mysql start 84 | echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile 85 | echo 'export PATH' >> /etc/profile && source /etc/profile 86 | /usr/local/mysql/bin/mysql -V &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 87 | S && rm -rf $dir 88 | } 89 | node(){ 90 | cd $dir && wget -V &> /dev/null || yum -y install wget 91 | [ -d /usr/local/node ] && echoRed "检测到/usr/local下已安装node,故而退出!" && rm -rf $dir && exit 1 92 | wget $ip/pack/node-v10.6.0-linux-x64.tar.xz && tar xf node-v10.6.0-linux-x64.tar.xz -C /usr/local &> /dev/null 93 | echo 'NODE=/usr/local/node' >> /etc/profile && echo 'PATH=$PATH:$NODE/bin' >> /etc/profile && echo 'export PATH' >> /etc/profile && source /etc/profile 94 | /usr/local/node/bin/node -v &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 95 | S && rm -rf $dir 96 | } 97 | php(){ 98 | cd $dir && wget -V &> /dev/null || yum -y install wget 99 | [ -d /usr/local/php ] && echoRed "检测到/usr/local下已安装php,故而退出!" && rm -rf $dir && exit 1 100 | wget $ip/pack/php-7.0.25.tar.gz && yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel curl-devel libxslt-devel openssl-devel 101 | tar -xf php-7.0.25.tar.gz && cd php-7.0.25 && ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip && make && make test && make install 102 | \cp php.ini-development /usr/local/php/etc/php.ini && \cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf && \cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf && \cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm 103 | /etc/init.d/php-fpm && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 104 | rm -rf $dir 105 | } 106 | zabbix(){ 107 | cd $dir && wget -V &> /dev/null || yum -y install wget 108 | zabbix_agentd -V &> /dev/null && echoRed "检测到系统中有zabbix-agentd命令,故而退出!" && rm -rf $dir && exit 1 109 | wget $ip/pack/zabbix-agent-3.4.11-1.el7.x86_64.rpm && yum -y install $dir/zabbix-agent-3.4.11-1.el7.x86_64.rpm 110 | #修改相应的配置文件 111 | sed -i "s/^Server=.*/Server=$zabbixserver/g" /etc/zabbix/zabbix_agentd.conf 112 | sed -i "s/^ServerActive=.*/ServerActive=$zabbixserver/g" /etc/zabbix/zabbix_agentd.conf 113 | sed -i "s/^Hostname=.*/Hostname=$(hostname -I)/g" /etc/zabbix/zabbix_agentd.conf 114 | systemctl enable zabbix-agent && systemctl restart zabbix-agent 115 | zabbix_agentd -V &> /dev/null && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 116 | rm -rf $dir 117 | } 118 | py3(){ 119 | cd $dir && wget -V &> /dev/null || yum -y install wget 120 | python3.6 -V &> /dev/null && echoRed "检测到系统中有python3.6命令,故而退出!" && rm -rf $dir && exit 1 121 | yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel wget gcc gcc-c++ 122 | wget $ip/pack/Python-3.6.3.tgz && tar -xf Python-3.6.3.tgz && mv Python-3.6.3 /usr/local/Python-3.6.3 && cd /usr/local/Python-3.6.3 && ./configure --prefix=/usr/local && make && make altinstall 123 | cd /usr/bin && mv python python.backup && ln -s /usr/local/bin/python3.6 /usr/bin/python && ln -s /usr/local/bin/python3.6 /usr/bin/python3 && ln -s /usr/local/bin/pip3.6 /usr/bin/pip 124 | sed -i '1s/python/python2/g' /usr/bin/yum && sed -i '1s/python/python2/g' /usr/libexec/urlgrabber-ext-down 125 | /usr/local/bin/python3.6 -V && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 126 | rm -rf $dir 127 | } 128 | redis(){ 129 | cd $dir && wget -V &> /dev/null || yum -y install wget 130 | redis-server -v &> /dev/null && echoRed "检测到系统中有redis-server命令,故而退出!" && rm -rf $dir && exit 1 131 | wget $ip/pack/redis-4.0.6.tar.gz && yum -y install gcc gcc-c++ && tar -xf redis-4.0.6.tar.gz && cd redis-4.0.6 && make && make install 132 | sed -i '136s/no/yes/g' redis.conf && sed -i '166s/notice/warning/g' redis.conf && mv $dir/redis-4.0.6 /usr/local/redis 133 | /usr/local/redis/src/redis-server /usr/local/redis/redis.conf 134 | /usr/local/redis/src/redis-server && echoGreen "已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 135 | rm -rf $dir 136 | } 137 | trash(){ 138 | cd $dir && wget -V &> /dev/null || yum -y install wget 139 | /usr/bin/trash --version &> /dev/null && echoRed "检测到系统中有trash命令,故而退出!" && rm -rf $dir && exit 1 140 | wget $ip/pack/trash-cli.tar && tar xf trash-cli.tar && cd trash-cli && python setup.py install &> /dev/null 141 | #yum install -y python-setuptools.noarch &> /dev/null && easy_install trash-cli &> /dev/null && sleep 3 142 | echo "alias rm='trash-put'" >> /etc/bashrc && source /etc/bashrc 143 | /usr/bin/trash --version &> /dev/null && echoGreen "回收站已完成安装,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 144 | 145 | /usr/bin/autotrash -V &> /dev/null && echoRed "检测到系统中有autotrash命令,故而退出!" && rm -rf $dir && exit 1 146 | wget $ip/pack/autotrash.tar.gz && tar xf autotrash.tar.gz && cd autotrash && python setup.py install 147 | echo "#add clean tool" >> /var/spool/cron/root 148 | echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/root 149 | echo "#add clean tool" >> /var/spool/cron/aladin 150 | echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/aladin 151 | /usr/bin/autotrash -h &> /dev/null && echoGreen "自动删除回收站七天前的内容功能已配置完成,可尽情享用!" || echoYellow "可能安装有问题,请检查!" 152 | S && rm -rf $dir 153 | } 154 | 155 | #chushihua 156 | vmtools(){ 157 | #安装vmware tools 158 | [ -d /usr/bin/vmware-toolbox-cmd ] && echo "已经安装vmwaretools $(vmware-toolbox-cmd -v)" && rm -rf $dir && exit 0 159 | wget $ip/pack/VMwareTools-10.1.7-5541682.tar.gz -O vmware-tools.tar.gz 160 | tar -xf vmware-tools.tar.gz && mv vmware-tools*/ ../vmware-tools && cd ../vmware-tools && chmod +x ./vmware-install.pl 161 | echo -e "\n\n请\n执\n行\n $(pwd)/vmware-install.pl\n手\n动\n完\n成\n安\n装\n\n" 162 | rm -rf $dir 163 | } 164 | allnewcentos(){ 165 | yum install -y epel-release && mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 166 | wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 167 | yum clean all && yum makecache fast && yum install wget curl net-tools vim lrzsz ntpdate -y 168 | timedatectl set-timezone Asia/Shanghai && /usr/sbin/ntpdate -u ntp1.aliyun.com &> /dev/null & 169 | echo "export HISTTIMEFORMAT=\"`whoami` : %F %T :\"" >> /etc/profile && source /etc/profile 170 | #防火墙 171 | getenforce && setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 172 | systemctl status firewalld && systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld 173 | yum install iptables-services -y && systemctl stop iptables && systemctl disable iptables 174 | /sbin/iptables -I INPUT -p tcp --dport 10036 -j ACCEPT && /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 175 | service iptables save && sed -i 's/\\u@\\h\ /\\u@\\H\ /g' /etc/bashrc 176 | echo -e "root soft nofile 65535\nroot hard nofile 65535\n* soft nofile 65535\n* hard nofile 65535\n" >> /etc/security/limits.conf 177 | sed -i 's#4096#65535#g' /etc/security/limits.d/20-nproc.conf 178 | #下载vmtools 179 | [ ! -d /usr/bin/vmware-toolbox-cmd ] && wget $ip/pack/VMwareTools-10.1.7-5541682.tar.gz -O vmware-tools.tar.gz 180 | tar -xf vmware-tools.tar.gz && mv vmware-tools*/ ../vmware-tools && chmod +x ../vmware-tools/vmware-install.pl 181 | echo "----------------------------------------------------" 182 | echo -e "\n\n\n\n\n\n\n\n" 183 | cd .. && echo "请重启后手动执行 $(pwd)/vmware-install.pl 安装vmtools" 184 | echo -e "\n\n\n\n\n\n\n\n" 185 | sleep 5 186 | #调用模板脚本 187 | newvitrulhost 188 | echo 189 | } 190 | newvitrulhost(){ 191 | #VM虚拟机克隆安装配置项。 192 | #默认删除网卡信息,配置静态IP,更改主机名,安装zabbixagent。 193 | #只需配置一次,用完即可删除本文档。 194 | echo "----------------------------------------------------" 195 | [ -e /etc/sysconfig/network-scripts/ifcfg-eth0 ] && echo -e "\n请勿\n 重复执行\n" && rm -rf $dir &&exit 1 196 | hostnameip=$(hostname -I) 197 | int=$(ls /etc/sysconfig/network-scripts/ifcfg-* | grep -v lo) 198 | eth=$(nmcli dev status | grep connected | awk '{print $1}') 199 | hostname=$(echo "ALD-"$(echo $hostnameip|awk -F'.' '{print $4}')"-SERVER") 200 | #在前面定义了zabbixserver=192.168.10.11 201 | rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm 202 | sleep 2 203 | yum install zabbix-agent -y 204 | echo "当前IP地址: "[$hostnameip] 205 | echo "网卡名称: "$eth 206 | echo "网络文件路径: "$int 207 | echo "当前主机名:"$(hostname) 208 | echo "新主机名为:"$hostname 209 | echo "zabbix服务器为:["$zabbixserver] 210 | echo "----------------------------------------------------" 211 | echo "即将进行:" 212 | echo " 删除克隆的网卡信息、配置静态IP、更改主机名、修改zabbixAgent" 213 | echo "----------------------------------------------------" 214 | #read -n 1 -t 30 -p "是否进行修改?y/n" Number 215 | #echo 216 | #case $Number in 217 | #[Yy]) 218 | echo "----------------------------------------------------" 219 | echo " (1) 删除克隆的网卡信息" 220 | rm -f /etc/udev/rules.d/*.rules 221 | sed -i 's/UUID/#UUID/g' $int 222 | grep ^DEVICE $int && sed -i "s/^DEVICE.*/DEVICE=$eth/g" $int ||echo "DEVICE="$eth >> $int 223 | cat $int | grep UUID 224 | cat $int | grep DEVICE 225 | #配置静态IP 226 | echo "----------------------------------------------------" 227 | echo " (2) 配置静态IP" 228 | sed -i 's/dhcp/static/i' $int 229 | grep ^IPADDR $int && sed -i "s/^IPADDR=.*/IPADDR=$hostnameip/g" $int || echo "IPADDR="$hostnameip >>$int 230 | sed -i "s/^NETMASK=.*//g" $int 231 | grep ^PREFIX $int && sed -i "s/^PREFIX=.*/PREFIX=24/g" $int || echo "PREFIX=24" >>$int 232 | grep ^GATEWAY $int && sed -i "s/^GATEWAY=.*/GATEWAY=$(echo $hostnameip|awk -F'.' '{print $1"."$2"."$3}').254/g" $int||echo "GATEWAY="$(echo $hostnameip | awk -F'.' '{print $1"."$2"."$3}')".254" >>$int 233 | grep ^DNS= $int && sed -i "s/^DNS=.*//g" $int 234 | grep ^DNS1= $int && sed -i "s/^DNS1=.*/DNS1=100.100.2.136/g" $int || echo "DNS1=100.100.2.136" >>$int 235 | grep ^DNS2= $int && sed -i "s/^DNS2=.*/DNS2=100.100.2.138/g" $int || echo "DNS2=100.100.2.136" >>$int 236 | grep ^DNS3= $int && sed -i "s/^DNS3=.*/DNS3=114.114.114.114/g" $int || echo "DNS3=114.114.114.114" >>$int 237 | cat $int | grep BOOTPROTO 238 | cat $int | grep --color -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}" 239 | #更改主机名 240 | echo "----------------------------------------------------" 241 | echo " (3) 更改主机名" 242 | hostnamectl set-hostname $hostname 243 | hostname 244 | sed -i 's/\\u@\\h\ /\\u@\\H\ /g' /etc/bashrc 245 | #yum -y install open-vm-tools 246 | echo "----------------------------------------------------" 247 | systemctl restart network 248 | echo " (4) 修改网卡名称为eth0" 249 | mv $(ls /etc/sysconfig/network-scripts/ifcfg-* | grep -v lo ) /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null 250 | rm -f /etc/udev/rules.d/*.rules 251 | #sed -i 's/UUID/#UUID/g' $int 252 | sed -i 's/NAME=.*/NAME=eth0/g' /etc/sysconfig/network-scripts/ifcfg-eth0 253 | sed -i 's/DEVICE=.*/DEVICE=eth0/g' /etc/sysconfig/network-scripts/ifcfg-eth0 254 | #关闭IPV6 255 | grep ^IPV6INIT /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^IPV6INIT=yes/IPV6INIT=no/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0 256 | sed -i "/^IPV6_/d" /etc/sysconfig/network-scripts/ifcfg-eth0 257 | systemctl disable ip6tables.service 258 | echo "net.ipv6.conf.all.disable_ipv6=1" >>/etc/sysctl.conf 259 | sed -i 's/GRUB_CMDLINE_LINUX=\"crashkernel/GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\ crashkernel/g' /etc/default/grub 260 | grub2-mkconfig -o /etc/grub2.cfg &> /dev/null 261 | ls /etc/sysconfig/network-scripts/ifcfg-* | grep -v lo 262 | echo "----------------------------------------------------" 263 | echo " (5) 更新zabbixAgent" 264 | #rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm 265 | #sleep 2 266 | #yum install zabbix-agent -y 267 | #ls /etc/zabbix/zabbix_agentd.conf 268 | sed -i "s/^Server=.*/Server=$zabbixserver/g" /etc/zabbix/zabbix_agentd.conf 269 | sed -i "s/^ServerActive=.*/ServerActive=$zabbixserver/g" /etc/zabbix/zabbix_agentd.conf 270 | sed -i "s/^Hostname=.*/Hostname=$hostnameip/g" /etc/zabbix/zabbix_agentd.conf 271 | cat /etc/zabbix/zabbix_agentd.conf | grep ^Server 272 | cat /etc/zabbix/zabbix_agentd.conf | grep ^Hostname 273 | systemctl enable zabbix-agent 274 | systemctl restart zabbix-agent 275 | systemctl status zabbix-agent 276 | echo "----------------------------------------------------" 277 | echo " (6) 配置完成,五秒后重启" 278 | #read -n 1 -t 30 -p "是否重启主机reboot,y/n? " Number 279 | echo "----------------------------------------------------" 280 | echo "$(date)" 281 | echo "----------------------------------------------------" 282 | rm -rf $dir 283 | echo "rebooting....." 284 | #case $Number in 285 | #[Yy]) 286 | #重启 287 | # echo "" > ./.bash_history && history -c 288 | shutdown -r now && exit 0 289 | #;; 290 | #esac 291 | # ;; 292 | # esac 293 | } 294 | changeipaddress(){ 295 | changeip=$(whiptail --title "更改IP" --inputbox "请输入新的IP地址" 10 60 `hostname -I` 3>&1 1>&2 2>&3) 296 | exitstatus=$? 297 | if [ $exitstatus = 0 ]; then 298 | whiptail --title "Message" --msgbox "IP地址将由\n$(hostname -I)\n改为:\n$changeip\n" 10 60 299 | #判断IP是否 300 | if echo $changeip | grep "^\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}$";then 301 | #判断文件是否规范 302 | [ ! -e /etc/sysconfig/network-scripts/ifcfg-eth0 ] && echo -e "\n网卡配置文件不规范,请检查 :\n /etc/sysconfig/network-scripts/ifcfg-eth0\n" && rm -rf $dir && exit 1 303 | #判断IP是否可用 304 | ping -c 2 $changeip > /dev/null && echo -e "\n[$changeip]\n 该IP已在使用中,请检查\n" && rm -rf $dir && exit 1 || echo "该IP可用" 305 | #执行 306 | # echo "$(hostname -I) >>> $changeip" 307 | sed -i 's/dhcp/static/i' /etc/sysconfig/network-scripts/ifcfg-eth0 308 | grep ^IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^IPADDR=.*/IPADDR=$changeip/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "IPADDR="$changeip >>/etc/sysconfig/network-scripts/ifcfg-eth0 309 | sed -i "s/^NETMASK=.*//g" /etc/sysconfig/network-scripts/ifcfg-eth0 310 | grep ^PREFIX /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^PREFIX=.*/PREFIX=24/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "PREFIX=24" >>/etc/sysconfig/network-scripts/ifcfg-eth0 311 | grep ^GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^GATEWAY=.*/GATEWAY=$(echo $changeip|awk -F'.' '{print $1"."$2"."$3}').254/g" /etc/sysconfig/network-scripts/ifcfg-eth0||echo "GATEWAY="$(echo $changeip | awk -F'.' '{print $1"."$2"."$3}')".254" >>/etc/sysconfig/network-scripts/ifcfg-eth0 312 | grep ^DNS= /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^DNS=.*//g" /etc/sysconfig/network-scripts/ifcfg-eth0 313 | grep ^DNS1= /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^DNS1=.*/DNS1=100.100.2.136/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "DNS1=100.100.2.136" >>/etc/sysconfig/network-scripts/ifcfg-eth0 314 | grep ^DNS2= /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^DNS2=.*/DNS2=100.100.2.138/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "DNS2=100.100.2.138" >>/etc/sysconfig/network-scripts/ifcfg-eth0 315 | grep ^DNS3= /etc/sysconfig/network-scripts/ifcfg-eth0 && sed -i "s/^DNS3=.*/DNS3=114.114.114.114/g" /etc/sysconfig/network-scripts/ifcfg-eth0 || echo "DNS3=114.114.114.114" >>/etc/sysconfig/network-scripts/ifcfg-eth0 316 | sed -i "s/^Hostname=.*/Hostname=$changeip/g" /etc/zabbix/zabbix_agentd.conf 317 | systemctl restart zabbix-agent 318 | echo -e "\n修改完毕,请手动重启网卡:\n systemctl restart network\n" 319 | #systemctl restart network 320 | rm -rf $dir 321 | else 322 | echo "输入的IP不合法" 323 | fi 324 | else 325 | xuanxiang 326 | fi 327 | } 328 | changehostname(){ 329 | CHANGENAME=$(whiptail --title "更改主机名" --inputbox "请输入新的主机名,用-来连接" 10 60 `hostname` 3>&1 1>&2 2>&3) 330 | exitstatus=$? 331 | if [ $exitstatus = 0 ]; then 332 | whiptail --title "Message" --msgbox "主机名由\n$(hostname)\n改为:\n$CHANGENAME\n" 10 60 333 | # whiptail --title "Yes/No Box" --yesno "Choose between Yes and No." --msgbox "主机名将由\n$(hostname)\n改为:\n\"$NAME\"\n""asdasdasd" 10 60 334 | hostnamectl set-hostname $CHANGENAME 335 | echo "hostname : $(hostname)" 336 | else 337 | #echo "You chose Cancel." 338 | xuanxiang 339 | fi 340 | } 341 | 342 | alili(){ 343 | #root用户操作 344 | #root用户操作 345 | useradd aladin && useradd develop 346 | yum -y install lrzsz net-tools vim curl wget unzip gunzip git mysql expect ntpdate 347 | echo "export HISTTIMEFORMAT=\"`whoami` : %F %T :\"" >> /etc/profile && source /etc/profile 348 | sed -i 's/HISTSIZE=1000/HISTSIZE=5000/g' /etc/profile 349 | sed -i 's/#Port 22/Port 10036/g' /etc/ssh/sshd_config && systemctl restart sshd 350 | cat > /root/.bashrc << EOF 351 | # .bashrc 352 | 353 | # User specific aliases and functions 354 | 355 | alias rm='rm -i' 356 | alias cp='cp -i' 357 | alias mv='mv -i' 358 | alias untar='tar xvf ' 359 | alias grep='grep --color=auto' 360 | alias getpass="openssl rand -base64 20" 361 | 362 | # Source global definitions 363 | if [ -f /etc/bashrc ]; then 364 | . /etc/bashrc 365 | fi 366 | PS1="\[\e[37;40m\][\[\e[36;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\$" 367 | EOF 368 | source /root/.bashrc 369 | echo "0 */2 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com &> /dev/null # ntpdate" >> /var/spool/cron/root 370 | #配置回收站 371 | trash 372 | #aladin init 373 | echoYellow "开始初始化aladin用户" 374 | cat > /home/aladin/.bashrc << EOF 375 | # .bashrc 376 | 377 | # Source global definitions 378 | if [ -f /etc/bashrc ]; then 379 | . /etc/bashrc 380 | fi 381 | 382 | # Uncomment the following line if you don't like systemctl's auto-paging feature: 383 | # export SYSTEMD_PAGER= 384 | 385 | # User specific aliases and functions 386 | PS1="\[\e[37;40m\][\[\e[36;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\$" 387 | EOF 388 | chown aladin.aladin /home/aladin/.bashrc 389 | 390 | mkdir /home/aladin/.ssh && chmod 700 /home/aladin/.ssh 391 | cat > /home/aladin/.ssh/authorized_keys << EOF 392 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdEw+PsiXnaM7feJ1cgpBFksWMM33QGAIB2E5fW5d85Cc/+4I0+2Som+ukV9uCxyuUs1xexqBKuT7PdQrxzHgUwnevJFFhFMagnCR00HKRjpmCC7QAK48SsvdbU/6hvGBsaTH8V0eipNgatnhFnnGGkDLtqw/aSjWbdT1dfAgHbuACzko1cnc0JjP6r+DGImWlNn+BKO2UziI5w0G1J7k2/WPFldj++2Ja6Q7clHB1FNz06mDxSfCmenrophaFjnvzwNoPITs2CTTp/yh+uvMZTaqcYfc93dy2fyvy+GsVH6+WjQVLxyGRIKxYsTh+spN9ngxHWqV7RTNHTbBEj1t3 aladin@jump 393 | EOF 394 | chmod 600 /home/aladin/.ssh/authorized_keys && chown -R aladin.aladin /home/aladin/.ssh 395 | echoGreen "aladin用户初始化完毕!" 396 | #develop init 397 | echoYellow "开始初始化develop用户" 398 | mkdir /home/develop/.ssh && chmod 700 /home/develop/.ssh 399 | cat > /home/develop/.ssh/authorized_keys << EOF 400 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1Cy+UURmFDlxT/RQcz7m2mws82Bf5ZYFD/RwjYNqkPDlayGihSU7LBfdgDKrJuaYt62SyGveV88z6xM+NzaPH6gZAWJr1S+lUBz27TLoBenMKfMahsrqI1eQ/Lic7wOLhiP3UOuFvG+y9udRNt56FiQsmrNzpHWPHLczpei4flPaGk7/Xv6yUmuEhRaa2itorA9qnUD2ZlGyTWaCWyroEdffeypq38aBFVSyKi3c3kbokx8anN6YFzNlZBvjbGDUzK6eOs3ufOiwJHdokTkMjBW9LtAbJPAEBzcSmozgi5Eg7Yn0TBu5RZ12xBBvXU8MHGGuYmjYeJjMyUS6e/8KX develop@jump 401 | EOF 402 | chmod 600 /home/develop/.ssh/authorized_keys && chown -R develop.develop /home/develop/.ssh 403 | echoGreen "develop用户初始化完毕!" 404 | echoGreen "--------------------------------------------------------------------------------------------------------" 405 | echoRed "服务器已初始化完毕,所做事情:1,更改默认22端口。2,更改命令提示符颜色及添加命令别名。3,更改历史命令条数与显示规则。" 406 | echoRed "4,安装基础软件。5,配置回收站。6,初始化aladin用户。7,初始化develop用户。8,时间同步。" 407 | echoGreen "--------------------------------------------------------------------------------------------------------" 408 | } 409 | 410 | A(){ 411 | echo -e "\e[36m ****\n您\n选\n择\n安\n装\n的\n是\n$OPTION\n,\n现\n在\n开\n始\n安\n装\n$OPTION\n**** \e[39m" 412 | } 413 | 414 | 415 | #--------------------------------------------------------------------------------------------------------------------------------------------- 416 | # 二级菜单 417 | #--------------------------------------------------------------------------------------------------------------------------------------------- 418 | 419 | anzhuang(){ 420 | OPTION=$(whiptail --title "运维外挂-安装脚本" --menu "请选择想要安装的项目,上下键进行选择,回车即安装,左右键可选择返回上层!" 25 55 15 \ 421 | "1" "nginx-1.14.0" \ 422 | "2" "jdk-1.8" \ 423 | "3" "tomcat-8" \ 424 | "4" "mysql-5.6" \ 425 | "5" "node-10.6" \ 426 | "6" "maven-3.3" \ 427 | "7" "php-7.0" \ 428 | "8" "zabbix-agent-3.4" \ 429 | "9" "py-3.6" \ 430 | "10" "redis-4.0.6" \ 431 | "11" "trash-autotrash" \ 432 | "12" "jdk-1.7" \ 433 | "13" "暂时未定义" 3>&1 1>&2 2>&3 ) 434 | case $OPTION in 435 | 1) 436 | A && nginx 437 | ;; 438 | 2) 439 | A && jdk8 440 | ;; 441 | 3) 442 | A && tomcat 443 | ;; 444 | 4) 445 | A && mysql 446 | ;; 447 | 5) 448 | A && node 449 | ;; 450 | 6) 451 | A && maven 452 | ;; 453 | 7) 454 | A && php 455 | ;; 456 | 8) 457 | A && zabbix 458 | ;; 459 | 9) 460 | A && py3 461 | ;; 462 | 10) 463 | A && redis 464 | ;; 465 | 11) 466 | A && trash 467 | ;; 468 | 12) 469 | A && jdk7 470 | ;; 471 | 13) 472 | echo -e "\e[36m ****您选择的安装项目暂时未定义!****\e[39m" && exit 1 473 | ;; 474 | *) 475 | xuanxiang 476 | ;; 477 | esac 478 | } 479 | 480 | chushihua(){ 481 | OPTION=$(whiptail --title "运维外挂-初始化菜单" --menu "请选择想要初始化的选项,上下键进行选择,回车即运行,左右键可选择返回上层!" 25 50 10 \ 482 | "1" "虚拟机 moban clone host" \ 483 | "2" "init a new CeontOS" \ 484 | "3" "zabbix agent" \ 485 | "4" "vmtools" \ 486 | "5" "change ip address" \ 487 | "6" "change hostname" \ 488 | "7" "aliyun init" 3>&1 1>&2 2>&3 ) 489 | 490 | case $OPTION in 491 | 1) 492 | A && sleep 3 && newvitrulhost 493 | ;; 494 | 2) 495 | A && sleep 3 && allnewcentos 496 | ;; 497 | 3) 498 | A && sleep 3 && zabbix 499 | ;; 500 | 4) 501 | A && sleep 3 && vmtools 502 | ;; 503 | 5) 504 | A && changeipaddress 505 | ;; 506 | 6) 507 | A && changehostname 508 | ;; 509 | 7) 510 | A && alili 511 | ;; 512 | *) 513 | rm -rf $dir && xuanxiang 514 | ;; 515 | esac 516 | } 517 | 518 | youhua(){ 519 | OPTION=$(whiptail --title "运维外挂-优化菜单" --menu "请选择想要优化的选项,上下键进行选择,回车即运行,左右键可选择返回上层!" 25 50 4 \ 520 | "1" "优化11111111111" \ 521 | "2" "优化22222222222" \ 522 | "3" "优化33333333333" \ 523 | "4" "优化44444444444" 3>&1 1>&2 2>&3 ) 524 | 525 | case $OPTION in 526 | 1) 527 | A 528 | ;; 529 | 2) 530 | A 531 | ;; 532 | 3) 533 | A 534 | ;; 535 | 4) 536 | A 537 | ;; 538 | *) 539 | rm -rf $dir && xuanxiang 540 | ;; 541 | esac 542 | } 543 | 544 | qita(){ 545 | OPTION=$(whiptail --title "运维外挂-其他菜单" --menu "请选择相应的选项,上下键进行选择,回车即运行,左右键可选择返回上层!" 25 50 4 \ 546 | "1" "其他11111111111" \ 547 | "2" "其他22222222222" \ 548 | "3" "其他33333333333" \ 549 | "4" "其他44444444444" 3>&1 1>&2 2>&3 ) 550 | 551 | case $OPTION in 552 | 1) 553 | A 554 | ;; 555 | 2) 556 | A 557 | ;; 558 | 3) 559 | A 560 | ;; 561 | 4) 562 | A 563 | ;; 564 | *) 565 | rm -rf $dir && xuanxiang 566 | ;; 567 | esac 568 | } 569 | 570 | #--------------------------------------------------------------------------------------------------------------------------------------------- 571 | # 入口菜单 572 | #--------------------------------------------------------------------------------------------------------------------------------------------- 573 | xuanxiang(){ 574 | OPTION=$(whiptail --title "运维外挂-一步到位" --menu "请选择想要操作的菜单,回车即可进入!" 30 60 6 \ 575 | "1" "安装(install service)" \ 576 | "2" "初始化(new initialization)" \ 577 | "3" "优化(optimization)" \ 578 | "4" "其他(others)" 3>&1 1>&2 2>&3 ) 579 | 580 | case $OPTION in 581 | 1) 582 | anzhuang 583 | ;; 584 | 2) 585 | chushihua 586 | ;; 587 | 3) 588 | youhua 589 | ;; 590 | 4) 591 | qita 592 | ;; 593 | *) 594 | rm -rf $dir && echo "You chose Cancel." 595 | ;; 596 | esac 597 | } 598 | 599 | #调用首页 600 | xuanxiang --------------------------------------------------------------------------------