shell脚本自动化创建虚拟机的基本配置之tomcat--mysql--jdk--maven

 更新时间:2020年7月11日 15:10  点击:1774

自动化shell脚本

ps:此处安装的jdk,maven,tomcat均在/opt目录下,如需其他目录或者其他版本,可根据需要改动shell脚本即可。
ps:所有代码全部手敲,已亲测能够使用,全部分享出来。

一:虚拟机初始化

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

#!/bin/bash

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

#2.打通ip地址
sed -i 's/dhcp/static/' /etc/sysconfig/network-scripts/ifcfgenp0s3
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfgenp0s3
echo "IPADDR=$2" >> /etc/sysconfig/network-scripts/ifcfgenp0s3
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 '/<\/mirror>/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自动化安装

#!/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

总结

到此这篇关于shell脚本自动化创建虚拟机的基本配置--tomcat--mysql--jdk--maven的文章就介绍到这了,更多相关shell脚本自动化创建虚拟机的基本配置--tomcat--mysql--jdk--maven内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • Tomcat配置及如何在Eclipse中启动

    这篇文章主要介绍了Tomcat配置及如何在Eclipse中启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-04
  • MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
  • php webshell下直接反弹shell的例子

    webshell对于我们站长来讲肯定听到比较多了,我们网站可能经常被人使用期webshell方式注入一些东西了,下面一起来看一个php webshell下直接反弹shell的例子,具体如下。...2016-11-25
  • 详解Mysql中的JSON系列操作函数

    新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
  • Powershell实现编写和运行脚本

    本文为那些对学习 Windows PowerShell 命令行和脚本编写环境感兴趣的系统管理员提供了资源。也请告诉我们本网站如何才能对您更有用处。...2020-06-30
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • Shell脚本中让进程休眠的方法(sleep用法)

    这篇文章主要介绍了Shell脚本中让进程休眠的方法,本文讲解的就是sleep的用法,可以实现睡觉若干秒、若干分钟、若干小时,需要的朋友可以参考下...2020-07-11
  • mysql的3种分表方案

    一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 忘记MYSQL密码的6种常用解决方法总结

    首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11
  • shell脚本实战-while循环语句

    这篇文章主要介绍了shell脚本实战-while循环语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-09
  • MySQL数据库备份还原方法

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:/Program Files/MySQL/MySQL Server 4.1/bin (或者直接将windows的环境变量path中添加该目录) ...2013-09-26
  • Shell字符串比较相等、不相等方法小结

    这篇文章主要介绍了Shell字符串比较相等、不相等方法小结,本文直接给出代码,但代码中含有大量注释,需要的朋友可以参考下...2020-07-11
  • Mysql命令大全(详细篇)

    一、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密...2015-11-08
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • shell中的for循环用法详解

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11