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

自动化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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-05-19

虚拟机使用PuTTY、SSH Secure Shell Client前的配置

虚拟机使用PuTTY.SSH Secure Shell Client前的配置 1 仅主机模式 2 检查子网IP 为192.168.154.0 3 进入虚拟机,检查IP地址 ip addr show 添加IP地址 ip addr add dev eno16777736 192.168.154.18/24 ping ping 192.168.154.1 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

使用 powershell 创建虚拟机

在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure 上创建虚拟主机(Ubuntu 服务器). 虚拟主机虚拟主机需要与其他的一些基础性组件关联在一起才能提供可用的服务,这些组件包括:网卡.public IP 地址.虚拟网络.网络安全组.存储等.下图包含了新建一个虚机所需要的其他组件: 也就是说在我们创建虚机的同时也要把这些组件一一的创建出来. 定义变

PowerShell创建Byte数组例子

PowerShell中,如果需要可以创建字节数组,即传说中的Byte[]类型的数组.当然,它属于强类型的数组. 使用如下语句创建一个字节数组,数组元素的个数为100个. 复制代码 代码如下: $byteArray = New-Object Byte[] 100 创建一个字节数组,数组元素个数为100个,每个数组元素的值为0xFF. 复制代码 代码如下: $byteArray = [Byte[]] (,0xFF * 100) 这里要解释一下,Byte[]表示字节类型,而把Byte[]再用中括号括起

在VMware上创建虚拟机及安装Redhat Linux操作系统(图文教程)

在VMware上如何创建虚拟机以及安装Redhat Linux操作系统创建虚拟机(本人使用的是VMware pro 15) ( 1)点击Create a New Virtual Machine (2)选择自定义,然后点击next (3)出现以下界面,不做任何修改,点击next (4)选择稍后安装操作系统(s),点击next (5)客户机操作系统选择Linux,版本选择Red Hat Enterprise Linux 7 64-bit(可根据自己的实际镜像文件版本选择适合的版本),然后点击next

Hyper-V创建虚拟机示例图文教程

下面的教程在win2008与win2012 都可以 以上就完成了hyper-v虚拟机的创建工作.

Windows Powershell 创建数组

在Powershell中创建数组可以使用逗号. PS C:Powershell> $nums=2,0,1,2 PS C:Powershell> $nums 2 0 1 2 对于连续的数字数组可以使用一个更快捷的方法 PS C:Powershell> $nums=1..5 PS C:Powershell> $nums 1 2 3 4 5 数组的多态 象变量一样如果数组中元素的类型为弱类型,默认可以存储不同类型的值. PS C:Powershell> $array=1,"

Powershell创建数组正确、更快的方法

通常当新的对象添加到一个数组中,根据经验你最担心其性能问题.下面第一个例子将告诉你一个错误的操作方法: 复制代码 代码如下: Measure-Command {   $ar = @()     for ($x=0; $x -lt 10000; $x++)   {     $ar += $x   } } 在这个循环中,这个数组通过符号"+="增加了许多新的对象.这样做会需要很长时间,因为在你改变其大小时Powershell每次需要去创造一个新的数组. 下面将有一个非常快的办法-Array

Powershell创建简洁的HTML报告例子

支持所有版本 把结果变成复杂的HTML报告,一个简单的方法是定义三个脚本块:一个用作HTML的开头文档,一个用作它的结尾,还有一个是存放动态对象的表格 接着,把这些脚本块传入到ForEach-Object,分别对应脚本的开始块.中间要处理的动态列表块和结束代码块. 下面有个简单的例子阐述如何用它创造一个服务报告: 复制代码 代码如下: $path = "$env:temp\report.hta"   $beginning = {  @'     <html>     <

KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法

一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor.KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上. KVM在具备Intel VT或AMD-V功能的x86平台上运行.它也被移植到S/390,PowerPC与IA-64平台上.在Linux内核3.9版中,加入A

kvm虚拟机的创建与克隆操作方法

前言 这篇文章给大家介绍了kvm虚拟机的创建与克隆,下面话不多说,来看看详细的操作步骤 一.创建虚拟机: qemu-img create -f qcow2 -o preallocation=metadata /data/kvm_centos/centos6.7_base.qcow2 10G virt-install --name=centos6.7_base --ram 512 --vcpus=1 -f /data/kvm_centos/centos6.7_base.qcow2 --locati

详解VMware接入Openstack—使用Openstack创建vCenter虚拟机

前言 从虚拟化的层面来说,GuestOS 的生命周期.迁移.快照等管理过程都离不开 Hypervisor 的支持. EG. KVM/VMwate Workstation/Hpyer-V 等 VMM .VMware 暴露的 API 接口和 OpenStack Dirver 驱动程序两种结合,就能够实现使用 Openstack 平台来管理多种虚拟化产品.本质上就是 Openstack 的 Nova Service 能够使用这些 API/Dirver 去连接 VMware Hypervisor 并达到