通过shell脚本自动部署项目

操作步骤:

  1. 在Linux中安装Git
  2. 在Linux中安装maven
  3. 编写Shell脚本(拉取代码、编译、打包、启动)
  4. 为用户授予执行Shell脚本的权限
  5. 执行shell脚本

具体实现:

  1. 在Linux中安装Git

    1
    2
    3
    4
    yum list git
    yum install git

    CMAKE
  2. 使用Git克隆代码

    1
    2
    3
    4
    cd /usr/local/
    git clone https://gitee.com/[占位]/[占位].git

    ASCIIDOC
  3. 将maven安装包上传到Linux,在Linux中安装maven

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    tar -zxvf apache-maven-3.5.4-bin.tar.gz-C/usr/local
    vim /etc/profile
    修改配置文件,加入如下内容
    export MAVENIHOME=/usr/local/apache-maven-3.5.4
    export PATH=$JAVA HOME/bin:$MAVEN HOME/bin:$PATH


    source /etc/profile
    mvn -version
    vim /usr/local/apache-maven-3.5.4/conf/settings.xml
    修改配置文件内容如下
    <localRepository>/usr/local/repo</localRepository>

    BASH
  4. Shell脚本

    可以创建一个sh脚本在/usr/local/sh目录下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #!/bin/sh
    echo =================================
    echo 自动化部署脚本启动
    echo =================================

    echo 停止原来运行中的工程
    APP_NAME=helloworld

    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
    fi
    sleep 2
    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/helloworld

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

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

    cd target

    echo 启动项目
    nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
    echo 项目启动完成


    SH
  5. 为用户授权

    1
    2
    3
    4
    5
    6
    chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
    Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
    Linux的文件调用权限分为三级:文件所有者(0wner)、用户组(Group)、其它用户(0ther Users)
    只有文件的所有者和超级用户可以修改文件或目录的权限要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

    STYLUS
    1
    2
    3
    -r--r--r--.1 root root 785 May 17 20:43 bootstart.sh

    CEYLON

    file权限


    • chmod命令可以使用八进制数来指定权限

    • 举例:

      chmod 777 bootstart.sh 为所有用户授予读、写、执行权限 chmod 755 bootstart.sh 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限

      chmod 210 bootstart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限

    • 注意:三位数字分别代表不同用户的权限 第1位表示文件拥有者的权限 第2位表示同组用户的权限 第3位表示其他用户的权限

    • # 权限 rwx
      7 读+写+执行 rwx
      6 读+写 rw-
      5 读+执行 r-x
      4 只读 r–
      3 写+执行 -wx
      2 只写 -w-
      1 只执行 –x
      0

通过shell脚本自动部署项目
http://example.com/2024/07/31/通过shell脚本自动部署项目/
作者
John Doe
发布于
2024年7月31日
许可协议