运维开发网

Centos下运行环境配置脚本【jdk,tomcat,maven,mysql】

运维开发网 https://www.qedev.com 2021-04-15 13:05 出处:51CTO 作者:我爱哇哈哈
对于互联网行业运维岗,服务器环境搭建(Jdk、Tomcat、MySQL、Redis、Maven、MySQL)一直都是比较头疼的事情,不难但是要求细心。这里我们将常用的软件通过脚本形式自动安装,最大程度下避免重复劳动。

自动化shell脚本

ps:此处安装的jdk,maven,tomcat均在/opt目录下,如需其他目录或者其他版本,可根据需要改动shell脚本即可。

ps:所有代码全部手敲,已亲测能够使用,全部分享出来。

ps:上述代码在放进sh文件中,需要chmod改变文件权限赋予它执行权限。

ps:系统版本为centOS7,虚拟机为vitualbox

chmod 777 xx.sh

一:虚拟机初始化

创建shell脚本,把命令放进.sh脚本里,./xx.sh运行此脚本可以完成虚拟机初始化

#!/bin/bash

#1.改变机器名
hostnamectl set-hostname $1

#2.打通ip地址
sed -i 's/dhcp/static/' /etc/sysconfig/network-scripts/ifcfg-enp0s3
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp0s3
echo "IPADDR=$2" >> /etc/sysconfig/network-scripts/ifcfg-enp0s3
systemctl restart network

#3.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

二:jdk自动化安装

创建shell脚本,把命令放进.sh脚本里,./xx.sh运行此脚本可以完成jdk自动化安装

#!/bin/bash

jdkTar="/opt/jdk-8u111-Linux-x64.tar.gz"

# 检查原先是否已安装
checkExist(){
    jdkline1=$(grep -n "export JAVA_HOME=.*" /etc/profile | cut -f1 -d':')
        if [ -n "$jdkline1" ];then
                echo "存在JAVA_HOME路径,将其删除"
                sed -i "${jdkline1}d" /etc/profile
        fi
    jdkline2=$(grep -n "export CLASSPATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
        if [ -n "$jdkline2" ];then
                echo "存在CLASSPATH路径,将其删除"
                sed -i "${jdkline2}d" /etc/profile
        fi
    jdkline3=$(grep -n "export PATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
        if [ -n "$jdkline3" ];then
                echo "存在PATH-JAVA路径,将其删除"
                sed -i "${jdkline3}d" /etc/profile
        fi
}

# 查询是否有jdk压缩包
if [ -e $jdkTar ];then

    echo "--------存在jdk安装包-------"
    echo "正在解压jdk安装包。。。"
    tar -zxvf /opt/jdk-8u111-Linux-x64.tar.gz
    if [ -e "/opt/soft2" ];then
        echo "存在该文件夹,删除。。"
        rm -rf /opt/soft2
    fi
    echo "---------------------------------"
    echo "---------------------------------"
    echo "正在建立jdk安装路径。。"
    echo "---------------------------------"
    echo "---------------------------------"
    mkdir -p /opt/soft2/jdk180
    mv -f jdk1.8.0_111  /opt/soft2/jdk180
    # 检查配置信息
    checkExist  
    echo "---------------------------------"
    echo "---------------------------------"
    echo "正在配置jdk环境。。。"
    sed -i '$a export JAVA_HOME=/opt/soft2/jdk180/jdk1.8.0_111' /etc/profile
    sed -i '$a export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile
    sed -i '$a export PATH=$PATH:$JAVA_HOME/bin' /etc/profile
    echo "---------------------------------"
    echo "---------------------------------"
    echo "配置环境已完成。。。"
    echo 'this is the end'
    echo "---------------------------------"
    echo "---------------------------------"
    echo "配置版本信息如下:"
    source /etc/profile
    java -version
else
    echo "未检测到安装包,请将安装包放到opt目录下"
fi

三:maven自动化安装

创建shell脚本,把命令放进.sh脚本里,./xx.sh运行此脚本可以完成maven自动化安装

#!/bin/bash

mavenTar="/opt/apache-maven-3.6.1-bin.tar.gz"

mavenMirror=" <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/repository/central</url>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
"
mavenrespo="<localRepository>/opt/soft2/maven361/apache-maven-3.6.1/jarstore</localRepository>"

# 检查原先是否已安装
checkExist(){
    mavenline1=$(grep -n "export MAVEN_HOME=.*" /etc/profile | cut -f1 -d':')
        if [ -n "$mavenline1" ];then
                echo "存在MAVEN_HOME路径,将其删除"
                sed -i "${mavenline1}d" /etc/profile
        fi
    mavenline3=$(grep -n "export PATH=.*\$MAVEN_HOME.*" /etc/profile | cut -f1 -d':')
        if [ -n "$mavenline3" ];then
                echo "存在PATH-MAVEN路径,将其删除"
                sed -i "${mavenline3}d" /etc/profile
        fi
}

# 查询是否有maven压缩包
if [ -e $mavenTar ];then

    echo "--------存在maven安装包-------"
    echo "正在解压maven安装包。。。"
    tar -zxvf /opt/apache-maven-3.6.1-bin.tar.gz
    if [ -e "/opt/soft2/maven361" ];then
        echo "存在该文件夹,删除。。"
        rm -rf /opt/soft2/maven361
    fi
    echo "---------------------------------"
    echo "---------------------------------"
    echo "正在建立maven安装路径。。"
    echo "---------------------------------"
    echo "---------------------------------"
    mkdir -p /opt/soft2/maven361
    mv -f  apache-maven-3.6.1 /opt/soft2/maven361
    # 检查配置信息
    checkExist  
    echo "---------------------------------"
    echo "---------------------------------"
    echo "正在配置maven环境。。。"
    sed -i '$a export MAVEN_HOME=/opt/soft2/maven361/apache-maven-3.6.1' /etc/profile
    sed -i '$a export PATH=$PATH:$MAVEN_HOME/bin' /etc/profile
    echo "---------------------------------"
    echo "---------------------------------"
    echo "----正在配置maven镜像源和mirror----"
    sed -i '/<\/mirrors>/i ${mavenMirror}' /opt/soft2/maven361/apache-maven-3.6.1/conf/settings.xml
    sed -i '/<\/settings>/i ${mavenrespo}' /opt/soft2/maven361/apache-maven-3.6.1/conf/settings.xml
    echo "---------------------------------"
    echo "---------------------------------"
    echo "配置环境已完成。。。"
    echo 'this is the end'
    echo "---------------------------------"
    echo "---------------------------------"
    echo "配置版本信息如下:"
    source /etc/profile
    mvn -version
else
    echo "未检测到安装包,请将安装包放到opt目录下"

fi

四:tomcat自动化安装

创建shell脚本,把命令放进.sh脚本里,./xx.sh运行此脚本可以完成tomcat自动化安装

#!/bin/bash

tomcatTar="/opt/apache-tomcat-8.5.54.tar.gz"

# 查询是否有tomcat压缩包
if [ -e $tomcatTar ];then

    echo "--------存在tomcat安装包-------"
    echo "正在解压maven安装包。。。"
    tar -zxvf /opt/apache-tomcat-8.5.54.tar.gz
    if [ -e "/opt/soft2/tomcat85" ];then
        echo "存在该文件夹,删除。。"
        rm -rf /opt/soft2/tomcat85
    fi
    echo "---------------------------------"
    echo "---------------------------------"
    echo "正在建立tomcat安装路径。。"
    echo "---------------------------------"
    echo "---------------------------------"
    mkdir -p /opt/soft2/tomcat85
    mv -f  apache-tomcat-8.5.54 /opt/soft2/tomcat85
    echo "---------------------------------"
    echo "---------------------------------"
    echo "配置tomcat环境已完成。。。"
    echo 'this is the end'
    echo "---------------------------------"
    echo "---------------------------------"

else
    echo "未检测到安装包,请将安装包放到opt目录下"
fi

五:mysql自动化安装

创建shell脚本,把命令放进.sh脚本里,./xx.sh运行此脚本可以完成mysql自动化安装—mysql脚本要执行两遍,第一遍可能检测不到mysql,server无法执行,安装好后登录mysql,没有密码,直接enter。

#!/bin/bash

mysqlInstall=$(rpm -qa | grep mysql)

mysqlRepoInstall1=$(find /etc/yum.repos.d/ -name "mysql-community.repo" | sed 's#.*/##')

mysqlRepoInstall2=$(find /etc/yum.repos.d/ -name "mysql-community-source.repo" | sed 's#.*/##')

wgetInstall=$(rpm -qa | grep wget)

mariadbInstall=$(rpm -qa | grep mariadb)

# 检查是否已安装了mysql,未安装再安装
if [ ! -n "${mysqlInstall}" ];then
        # 检查centOS是否自带了mariadb,若有则删除
        if [ -n "${mariadbInstall}" ];then
        echo "自带mariadb---删除mariadb中----"
                rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
        echo "--------------------------------"
        echo "--------------------------------"
        echo "--------------------------------"
    else
        echo "centOS里没有mariadb软件"
        echo "-----------------------"
        echo "-----------------------"
        fi
    if [ -n "${wgetInstall}" ];then
        echo "-------存在wget下载工具-------"
        echo "------------------------------"
        echo "------------------------------"
    else        
        echo "-------安装下载工具wget-------"
        echo "------------------------------"
        echo "------------------------------"
        yum install -y wget
    fi
        echo "-------在线下载5.7mysql并安装-------"
        wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
        echo "-----------下载mysql成功-------------"
        echo "-------------------------------------"
        echo "-----------正在安装mysql中----------"
        echo "-------------------------------------"
        rpm -ivh mysql-community-release-el7-5.noarch.rpm
        echo "-----正在检测mysql安装环境是否成功----"
else
    echo "-------------已安装过mysql--------------"
fi
installmysqlServer(){
    if [ "${mysqlRepoInstall1}" = "mysql-community.repo" -a "${mysqlRepoInstall2}" = "mysql-community-source.repo" ];then
                        echo "存在2个mysql安装环境,下载安装完成。。。"
                        echo "----------------------------------------"
                        echo "----------------------------------------"
            echo "-----------安装mysql-server中-----------"
                        echo "----------------------------------------"
                        echo "----------------------------------------"
            if [ ! -e "/var/lib/mysql" ];then
                yum install -y mysql-server
            else
                echo "-----已安装过mysql-server-----"
            fi
                        echo "修改访问权限为当前用户。。。"
                        chown -R root:root /var/lib/mysql
                        ls -l /var/lib
                        echo "重启mysql服务中"
                        service mysqld restart
                        echo "安装完成---请登录mysql修改密码和字符集"
        else
                        echo "${mysqlRepoInstall1}"
                        echo "${mysqlRepoInstall2}"
                        echo "----没有安装成功----"
    fi
}

installmysqlServer

欢迎关注个人公众号:服务端 技术精选。还有更多好玩的内容等你哟!

0

精彩评论

暂无评论...
验证码 换一张
取 消