基于Shell脚本自动部署

content-661

  • 操作步骤如下:

    1. 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中。

    2. 在Linux中安装Git,克隆代码。

    3. 在Linux中安装maven。

    4. 编写Shell脚本(拉取代码、编译、打包、启动)。

    5. 为用户授予执行Shell脚本的权限。

    6. 执行Shell脚本。

推送代码到远程

  • 参考之前讲解的Git文章,完成helloworld工程代码推送即可。

创建远程仓库

content-662

将idea中的代码提交并推送到远程仓库

content-663

content-664

Git操作

Git软件安装

  • 参考之前的Linux软件安装文章。

Git克隆代码

1
2
cd /usr/local/
git clone https://gitee.com/yourgit/helloworld.git

content-665

Maven安装

  • 由于是maven工程,要想进行项目的编译打包,需要用到maven的指令,所以需要安装maven。

  • 参考之前的Linux软件安装文章。

Shell脚本准备

Shell脚本(shell script),是一种Linux系统中的脚本程序。使用Shell脚本编程跟 JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

  • 在/usr/local/目录下创建一个目录sh(mkdir sh),编写shell脚本。

content-666

脚本解读

content-667

Linux权限

  • Shell脚本已经准备好了,但是Shell脚本要想正常的执行,还需要给Shell脚本分配执行权限。

1). ==chmod==(英文全拼:change mode)命令是控制用户对文件的权限的命令

2). Linux中的权限分为三种 :读(r)、写(w)、执行(x)

3). Linux文件权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

4). 只有文件的所有者和超级用户可以修改文件或目录的权限

5). 要执行Shell脚本需要有对此脚本文件的执行权限(x),如果没有则不能执行

  • Linux系统中权限描述如下:

content-668

  • 解析当前脚本的权限情况:

content-669

  • chmod命令可以使用八进制数来指定权限(0代表无 , 1代表执行x , 2代表写w , 4代表读r):
权限rwx
7读 + 写 + 执行rwx
6读 + 写rw-
5读 + 执行r-x
4只读r--
3写 + 执行-wx
2只写-w-
1只执行--x
0---
  • 举例:
1
2
3
chmod 777 bootStart.sh   为所有用户授予读、写、执行权限
chmod 755 bootStart.sh 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
  • 注意:

    三个数字分别代表不同用户的权限:

    • 第1位表示文件拥有者的权限。
    • 第2位表示同组用户的权限。
    • 第3位表示其他用户的权限。

授权并执行脚本

  • 在测试阶段,可以给所有的人都赋予执行该shell脚本的权限。可以执行如下指令:
1
chmod 777 bootStart.sh

content-66-10

  • 权限解读:

    • 第一个7,代表当前文件所有者root用户,对该文件具有读写执行权限;

    • 第二个7,代表当前文件所有者所属组的用户,对该文件具有读写执行权限;

    • 第三个7,代表其他用户,对该文件具有读写执行权限。

  • 执行该shell脚本:

content-66-11

注意: 在执行maven指令进行打包时,第一次执行可能会耗时比较长,因为在进行maven工程的打包时,需要到中央仓库下载工程依赖的jar包和插件(可以在settings.xml中配置阿里云私服加速下载)。

  • 启动完成之后, 可以查看java进程:

content-66-12

  • 访问项目:

content-66-13