Linux-项目部署

  • 安装包简介:
  • 1.二进制发布包
  • 2.源码包
  • 3.RPM包
  • 软件部署
  • 安装JDK
  • 安装MySQL
  • 安装Redis
  • 自动部署
  • 2.安装Maven
  • 自动化部署脚本


安装包简介:

1.二进制发布包

软件已经针对具体平台编译打包发布,开发人员拿到安装包之后只要解压,修改配置即可使用

2.源码包

此种安装包软件以源码工程的形式发布,需要程序员自行编译安装,它一般包含四个步骤:解压------>配置------->编译-------->安装

3.RPM包

这种包是redhat已经按照包管理规范对软件进行打包之后发布出来的一类包,对于rpm包的安装,有两种方式:
1 直接下载rpm包,然后使用rpm命令安装[A --> B–> C]
2 采用yum命令联网安装[它会自动联网下载rpm包]

rpm命令安装
    语法:  rpm  参数  安装包
    参数:
        -v 显示指令执行过程
        -h 表示显示进度
        -q 查询包是否已经安装
        -a 查看所有安装的软件
        -i 安装软件
        -U 更新升级
        -e 卸载软件
        --nodeps 不验证软件的相互关联性 
    常用命令:
        安装:rpm  -ivh  rpm文件
        升级:rpm  -Uvh  rpm文件
        (*)卸载:rpm  -e --nodeps 软件名
        (*)查看所有安装的软件:rpm -qa | grep 具体名
yum安装
    软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
  
    yum install 软件名      (yum install ksh)
    yum localinstall rpm包  使用yum安装本地rpm包[此过程会自动解决依赖]
    
    
    安装一个rpm包所需要的所有依赖都在仓库中  使用 yum install a
    本地有一个rpm包, 它安装需要的其他包在远程仓库中有的话 可以使用 yum localinstall a.rpm
    本地有一个rpm包, 它安装需要的其他包不在远程仓库中有的话 只能使用 rpm -ivh a.rpm

软件部署

软件的安装包文件上传到/usr/local/src/,软件安装位置在/usr/local/

安装JDK

官方提供的是二进制安装包

#1 解压
	tar -zxvf /usr/local/src/jdk-8u181-linux-x64.tar.gz -C /usr/local/
#2 测试
	/usr/local/jdk1.8.0_181/bin/java -version
#3 配置环境变量
# 如果想在系统的任何位置都能使用到java命令,就需要将其配置到环境变量文件,此文件位置在/etc/profile,
	# 使用vim打开配置文件
	vim /etc/profile
	
	export JAVA_HOME=/usr/local/jdk1.8.0_181
	export PATH=$PATH:$JAVA_HOME/bin
#4 更新配置文件
	source /etc/profile
#5 测试
	java -version

安装MySQL

官方提供的是rpm包

#1 查看CentOS是否自带的mysql
	rpm -qa | grep -i mysql
	rpm -qa | grep -i mariadb
#2 卸载mariadb
	rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
	
#3 安装依赖包 [复制]
	yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 
#4 升级包依赖 [复制]
	yum install libgcc.i686 -y
	
	
#5 安装服务端
	yum localinstall /usr/local/src/MySQL-server-5.5.49-1.linux2.6.i386.rpm -y
#6 安装客户端
	yum localinstall /usr/local/src/MySQL-client-5.5.49-1.linux2.6.i386.rpm -y
#7 启动mysql服务器 
	systemctl start mysql 
#8 设置root用户密码
	/usr/bin/mysqladmin -u root password 'root'
	
	
#9 防火墙放行端口
	firewall-cmd --zone=public --add-port=3306/tcp --permanent
	firewall-cmd --reload
#10 开启mysql的远程登录权限
	#使用mysql客户端登录mysql,然后修改远程连接设置[注意修改成自己的密码]
	mysql -uroot -proot
	> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
	> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
	> FLUSH PRIVILEGES;
	> exit;
	
	默认的root账号  'root'@'localhost'
#11 MySQL编码问题
# Mysql安装完毕后默认的字符集为ISO-8859-1,需要在配置文件中修改成UTF-8,并重启服务
	# 查找mysql的配置文件
		find / -name 'MySQL*'
	# 将文件复制到/etc目录下,并重新命名为my.cnf(这是服务启动时默认读取的位置)
		cp /usr/share/doc/MySQL-server-5.5.49/my-medium.cnf   /etc/my.cnf
	# 编辑/etc/my.cnf,在[mysqld]选项下添加字符集的设置
		vim /etc/my.cnf
        [mysqld]
        character-set-server=utf8
	# 重新启动mysql的服务
#12 服务重启
	systemctl restart mysql

安装Redis

官方提供的是源码包

#1 安装需要的依赖[复制]
	yum  install gcc automake autoconf libtool make -y	
#2 解压
	tar -zxvf /usr/local/src/redis-3.0.7.tar.gz -C /usr/local/src/
#3 编译
	cd /usr/local/src/redis-3.0.7/
	make
#4 安装
 	make PREFIX=/usr/local/redis install
 	
#5 添加配置文件, 将redis配置文件复制到redis的安装目录的bin目录下
	cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/bin/
#6 修改配置文件, 编辑配置文件,将redis服务修改成后台运行
	vim /usr/local/redis/bin/redis.conf
	将daemonize no选项修改成daemonize yes
	设置bind为 bind  0.0.0.0
#7 启动redis服务
	/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
#8 防火墙放行端口
	firewall-cmd --zone=public --add-port=6379/tcp --permanent
	firewall-cmd --reload
#9 [非必要操作]关闭Redis
	# 查看运行的redis进程
		ps -ef | grep redis
	# 杀掉redis的进程
		kill -9 2738[此处是redis进程号]

自动部署

1.将git 上代码进行开源
2. 安装git

## 1. 安装git软件
yum install git -y

2. 尝试下载reggie代码(注意:这个代码必须是打jar包的版本)
cd /usr/local/
git clone https://****(git仓库的克隆地址)****

2.安装Maven

# 1. 解压软件
tar -zxvf /usr/local/src/apache-maven-3.5.4-bin.tar.gz -C /usr/local

# 2. 修改配置文件,在最后加入如下内容
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$PATH:$MAVEN_HOME/bin

# 3. 更新配置
source /etc/profile

# 4. 修改maven配置文件settings.xml,配置本地仓库和中央仓库镜像
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/apache-maven-3.5.4/repo</localRepository>

添加镜像

<mirror> 
    <id>alimaven</id> 
    <mirrorOf>central</mirrorOf> 
    <name>aliyun maven</name> 
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

自动化部署脚本

Shell脚本,是一种Linux系统中的脚本程序。

/usr/local/下创建bootStart.sh脚本,内容如下

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=项目名-web-app-1.0-SNAPSHOT

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/项目名

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd 项目名-web-app/target

echo 启动项目
nohup java -jar 项目名-web-app-1.0-SNAPSHOT.jar > /usr/local/项目名-parent/reggie-web-app/项目名-web-app.log &
echo 项目启动完成

为脚本添加执行权限,然后运行脚本:

# 添加执行权限
chmod +x /usr/local/bootStart.sh

# 执行脚本
/usr/local/bootStart.sh