运维之路第五期

第五期

1.安装JDK

  1. Linux上一般会安装Open JDK,但是实际开发中使用的一般都是JDK,所以要先卸载
    如何卸载可以自行百度,(#.#)
  2. JDK下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
    现在下载低于1.8版本的jdk需要登录,亲测可用,账号2696671285@qq.com ,密码Oracle123
    坑来也:
    一定要注意你主机的架构是x86还是arm,不要下错版本啦
  3. 创建新目录mkdir /usr/local/java
  4. 将压缩包上传至新目录,解压
    tar -zxvf jdk-8u241-linux-arm64-vfp-hflt.tar.gz
  5. 删除压缩包
    rm -f jdk-8u241-linux-arm64-vfp-hflt.tar.gz
  6. 配置JDK环境变量:
    在最后一行插入
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

这里有看到文档提示说最好是去/etc/profile.d/下新建一个.sh脚本用来配置java环境变量

  1. 检查是否安装成功
    source /etc/profile让刚刚设置的环境变量生效
    java -version

2.安装OpenJDK

  1. 查找安装源中有什么版本
    yum search java | grep -i --color JDK
    在这里插入图片描述
  2. 此处只需要安装jdk1.8,所以安装包命令如下
    yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel #安装openjdk
  3. 配置环境变量
    默认安装位置:/usr/lib/jvm/
  4. ubantu或Kylin安装openJDK:
    apt install openjdk-8-jdk-headless

3.安装maven,配置阿里源

  1. 进入https://maven.apache.org/download.cgi下载maven在这里插入图片描述
  2. cd /usr/local创建maven文件夹
  3. 将下载好的maven压缩包上传至此
  4. tar -zxvf apache-maven-3.6.3-bin.tar.gz
  5. rm -f apache-maven-3.6.3-bin.tar.gz
  6. 和java一样,去/etc/profile.d下创建maven.sh文件,并修改内容为:
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3

export PATH=$MAVEN_HOME/bin:$PATH

  1. 重启配置source /etc/profile
  2. mvn -v
    在这里插入图片描述
  3. 配置阿里云镜像
    在maven安装目录中的conf中修改setting.xml
    新增配置内容就可以了
<!-- 阿里镜像仓库 -->
  <mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>
            http://maven.aliyun.com/nexus/content/groups/public/
        </url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

成功,(^-^)V
ubantu和kylin步骤一致

4.了解maven的生命周期和工作流程

自己看,O(∩_∩)O哈哈~

5.注册github,下载tale程序

直接去github注册一个账号,基本都有,就略过啦
搜索tale,进入tale
按照说明快速开始
在这里插入图片描述

  1. 在/usr/local下新建tale文件夹,输入wget -qO- git.io/fxsWx | bash准备下载
  2. 结果半天没反应
  3. 按照提示参考了install.sh后直接copy了一份运行,结果报错说找不到
    在这里插入图片描述
  4. 看来可能是地址错了,根据install.sh中提供的信息,进入他的release页面
    在这里插入图片描述
  5. 手动下载吧,要记得用迅雷,默认下载太慢了o(╥﹏╥)o
  6. 下载完成后tar -zxvf tale.tar.gz
  7. 赋权chmod +x ./tool
  8. ./tool start
  9. 然后访问浏览器的 http://[你的主机]:9000 即可安装。
    在这里插入图片描述

5. 通过maven命令行对tale博客程序进行打包

在/usr/local下新建tale-dev目录

  1. 安装git
    yum install -y gitapt-get install git
  2. 进入tale-dev目录
    运行git clone -b develop https://github.com/otale/tale.git
  3. 下载完成后进入下载后的tale目录
    tale 使用maven命令进行打包,但在打包前你需要确认一个配置。
    application.properties 配置文件中的 application.devMode 项需要设置为 false,因为打包后不属于开发环境。
    然后使用命令:mvn clean package -Pprod -Dmaven.test.skip=true 在你的项目根目录下执行。
    打包后生成在 target/dist 这个文件夹里,tale 这个目录整体就是打包的结果。
  4. 在dist目录下运行./tool start即可跑启服务,成功(^-^)V

6.编写运行tale的shell脚本

可以先尝试自己编写
start: 启动 tale
stop: 停止 tale
restart: 重启 tale
status: 查看 tale 运行状态
log: 查看 tale 运行日志
upgrade: 升级 tale,会自动备份这些命令
在 tale 根目录下有一个名为 tool 的文件,该文件为帮助脚本。

#!/bin/sh

APP_NAME="tale"
JAVA_OPTS="-Xms256m -Xmx256m -Dfile.encoding=UTF-8"
psid=0

checkpid() {
   javaps=$(pgrep -f "tale-latest")

   if [ -n "$javaps" ]; then
      psid=$javaps
   else
      psid=0
   fi
}

start() {
   checkpid

   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "warn: $APP_NAME already started! (pid=$psid)"
      echo "================================"
   else
      echo "Starting $APP_NAME ..."
      nohup java $JAVA_OPTS -jar tale-latest.jar --app.env=prod >/dev/null 2>&1 &
      sleep 1
      checkpid
      if [ $psid -ne 0 ]; then
         echo "(pid=$psid) [OK]"
      else
         echo "[Failed]"
      fi
   fi
}

stop() {
   checkpid

   if [ $psid -ne 0 ]; then
      echo -n "Stopping $APP_NAME ...(pid=$psid) "
      kill -9 $psid

      if [ $? -eq 0 ]; then
         echo "[OK]"
      else
         echo "[Failed]"
      fi

      checkpid
      if [ $psid -ne 0 ]; then
         stop
      fi
   else
      echo "================================"
      echo "warn: $APP_NAME is not running"
      echo "================================"
   fi
}

status() {
   checkpid
   if [ $psid -ne 0 ];  then
      echo "$APP_NAME is running! (pid=$psid)"
   else
      echo "$APP_NAME is not running"
   fi
}

showlog() {
   tail -f logs/tale.log
}

get_latest_release() {
  curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
    grep '"tag_name":' |                                            # Get tag line
    sed -E 's/.*"([^"]+)".*/\1/'                                    # Pluck JSON value
}

REMOVE_LOCAL_THEME=1

upgrade(){
    echo "是否允许覆盖本地主题 (y/n)?"
    read con
    case $con in
        y|yes|Y|YES)
            REMOVE_THEME=1
        ;;
        *)
            break
        ;;
    esac

    # 备份当前目录
    TIME=`date +%Y%m%d_%H%m`
    tar czvf back_$TIME.tar.gz *
    echo '备份成功'

    echo '开始下载最新版本.'

    TAG_VERSION=$(get_latest_release "otale/tale")
    wget -N --no-check-certificate https://github.com/otale/tale/releases/download/$TAG_VERSION/tale.tar.gz

    mkdir upgrade_tmp
    tar -zxvf $APP_NAME.tar.gz -C upgrade_tmp
    sh tool stop
    rm -rf lib tale-latest.jar tool resources/static resources/templates/admin resources/templates/comm resources/templates/*.html resources/*.properties

    if [ "$REMOVE_LOCAL_THEME" -eq "1" ]; then
        rm -rf resources/templates/themes
        mv upgrade_tmp/resources/templates/themes resources/templates
    fi

    mv upgrade_tmp/lib .
    mv upgrade_tmp/tale-latest.jar .
    mv upgrade_tmp/tool .
    chmod +x tool
    mv upgrade_tmp/resources/static ./resources
    mv upgrade_tmp/resources/*.properties ./resources
    mv upgrade_tmp/resources/templates/admin ./resources/templates
    mv upgrade_tmp/resources/templates/comm ./resources/templates
    mv upgrade_tmp/resources/templates/*.html ./resources/templates

    echo '升级完毕, 请执行 sh tool restart 重启博客系统!'

    rm -rf upgrade_tmp
    rm -rf tale.tar.gz
}

case "$1" in
   'start')
      start
      ;;
   'stop')
     stop
     ;;
   'restart')
     stop
     start
     ;;
   'status')
     status
     ;;
   'log')
     showlog
     ;;
   'upgrade')
     upgrade
     ;;
  *)
     echo "Usage: $0 {start | stop | restart | status | upgrade | log}"
     exit 1
esac
exit 0

7.编写shell脚本程序监控tale的运行

  1. 编写脚本,通过监听9000端口来判断是否关闭
#! /bin/sh
while [ 1==1 ]
   do
   state=`netstat -lnetp | grep 9000 | awk '{print $6}'`
echo "$state";
if [ "$state" == "" ]
   then `
        cd /usr/local/tale`;
        ./tool start;
fi
   sleep 1
done
  1. 运行脚本即可

8.通过nginx把tale对外进行访问

在nginx配置中增加一段即可

location /{
            proxy_pass http://uat001.chenpengan.top:9000/;
            proxy_read_timeout 300;
            proxy_connect_timeout 300;
            proxy_redirect     off;

            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   Host              $http_host;
            proxy_set_header   X-Real-IP         $remote_addr;
        }

9.把上次购买的域名备案(选做)

10.把上次做的内容发布到自己的博客上

正好自己用用,哈哈哈

11.安装switchhosts,按照RC,DEV,PROD管理自己的域名

不再额外写了

参考文档

https://www.cnblogs.com/116970u/p/10400436.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值