ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Jenkins | VuePress博客自动化部署
    • 前言
    • 安装配置
      • Jenkins
      • 导入密钥
      • 下载安装
      • 查看目录
      • 启动应用
      • 常用命令
      • 修改配置
      • 打开应用
      • 创建任务
      • 安装插件
      • General
      • 源码管理
      • 解决方案
      • 添加凭证
      • 构建触发器
      • 构建环境
      • 部署 Nginx
      • 访问应用
    • 参考文章
    • 推荐阅读
  • 三步教你轻松安装配置 Linux Anaconda 环境
  • Windows SSH 远程连接 Linux
  • VuePress 数学公式支持
  • 一文教你如何防御数据库渗透入侵
  • WSL2 Ubuntu20.04 配置 CUDA
  • 前端开发部署运维笔记
  • 运维监控指南
  • 如何使用『Nginx』配置后端『HTTPS』协议访问
  • 华为云云耀云服务器L实例评测|搭建您的私人影院网站
  • 华为云云耀云服务器L实例评测|服务器反挖矿防护指南
  • 华为云云耀云服务器L实例评测|Git 私服搭建指南
  • VSCode『SSH』连接服务器『GUI界面』传输
  • 『硅云』海外云服务器购买指南
  • GitHub Unfork 指南
  • 摆脱推荐算法,实现万物皆可『RSS』
  • Drone 指南
  • 教你如何『SSH』远程连接『内网』服务器
  • 『GitHub Actions』静态博客部署指南
  • Nginx 配置路径解析
  • 『pnpm』多项目环境迁移指南
  • Nginx 403 forbidden 问题
  • 你知道『SSH』为什么安全吗
  • 手把手教你如何给『Linux』打补丁
  • KVM Anolis OS 环境搭建
  • Docker 快速搭建 MySQL 高可用集群
  • RabbitMQ 入门指南(安装,配置,应用)
  • linux JDK8 环境配置
  • 发布策略
  • Spring Cloud Gateway + Nacos 灰度发布
  • Nginx 负载均衡集群 节点健康检查
  • 前端监控搭建
  • 运维监控系统
  • MySQL 可视化监控
  • MySQL 死锁问题排查与解决
  • Zookeeper Windows 安装配置(单机 - 集群)
  • 阿里云服务器镜像迁移
  • git clone 失败问题
  • Couldn't find ffmpeg or avconv 问题
  • 运维笔记
ReturnTmp
2023-08-09
目录

Jenkins | VuePress博客自动化部署

# 前言

博主此前是将博客部署在 Github Pages(基于 Github Action)和 Vercel 上的,但是这两种部署方式对于国内用户很不友好,访问速度堪忧。因此将博客迁移到自己的云服务器上,并且基于 Jenkins(一款开源持续集成工具)实现本地推送代码后,自动化集成部署

环境

云服务器:CentOS 7,OracleJDK 11

本地主机:Windows 11

# 安装配置

# Jenkins

官网安装介绍(Redhat):Redhat Jenkins Packages (opens new window)

注意:最新版本 Jekins 最好适配 jdk11,使用 jdk8 可以正常启动,但是可能会有其他错误

# 导入密钥

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
1
2

# 下载安装

yum install jenkins -y
1

# 查看目录

rpm -ql jenkins
1

image-20230809230054692

# 启动应用

默认启动

# 端口默认8080
java -jar /usr/share/java/jenkins.war --httpPort=8090
1
2

注:这里启动时可能碰到问题Caused: hudson.util.AWTProblem需要执行下面命令

yum -y install fontconfig
1

# 常用命令

systemctl start jenkins
systemctl stop jenkins
systemctl status jenkins
# 开机自启动
systemctl enable jenkins
1
2
3
4
5

重启命令:http://<公网ip/域名>:8090/restart

# 修改配置

打开配置文件

vim /usr/lib/systemd/system/jenkins.service
1

配置文件修改如下(JDK 安装目录以本地为准)

# 安装的OracleJDK则需配置下面两项
Environment="JAVA_HOME=/usr/java/jdk-11.0.20"
Environment="JENKINS_JAVA_CMD=$JAVA_HOME/bin/java"
# 如果使用root用户则配置下面两项
User=root
Group=root
# 更换端口
Environment="JENKINS_PORT=8090"
1
2
3
4
5
6
7
8

初次启动时 systemctl start jenkins 执行时间可能略长

# 打开应用

浏览器访问:http://<公网ip/域名>:8090

注意:外部浏览器访问需要开启对应端口号防火墙,阿里云服务器还需要打开相应安全组

image-20230809234842425

按照上述提示得到密码,执行如下命令

cat /root/.jenkins/secrets/initialAdminPassword
1

之后选择安装默认工具或是自己手动安装均可

image-20230810000226352

直接使用 admin 用户登陆即可,密码就在上面的文件/root/.jenkins/secrets/initialAdminPassword中

image-20230810000940621

# 创建任务

博客仓库地址 (opens new window)

# 安装插件

安装 nvm-wrapper 插件(没有 nvm 可以直接安装 node 插件),并重启

CentOS7 不兼容 node 高版本问题参考文末博客仓库中的链接

注意:设置 nvm 默认 node 版本命令 nvm alias default <version>

image-20230810004252188

# General

image-20230810001119323

# 源码管理

image-20230810001652153

有时候添加上述 git 地址后会爆出错误:stderr: No ECDSA host key is known for github.com

# 解决方案
rm -f  ~/.ssh/known_hosts
git ls-remote -h git@github.com:ReturnTmp/blog-vuepress-vdoing.git HEAD
1
2
# 添加凭证

选择 SSH Username with private key

image-20230810002024280

描述和 ID 可以随意,最后 Key 直接复制 SSH 私钥即可

image-20230810002204296

# 构建触发器

image-20230810002542374

image-20230810002655311

添加 Webhooks,Payload Url 填写 http://<公网ip/域名>:8090/github-webhook/ 即可,最后点击创建

# 构建环境

image-20230810004120879

image-20230810004727779

echo $WORKSPACE
node -v
npm -v
npm install
npm run build
1
2
3
4
5

构建成功后之后部署 Nginx 即可

# 部署 Nginx

nginx.conf(vuepress 自行更改为自己的工程名)

        location / {
             root   /var/lib/jenkins/workspace/vuepress/docs/.vuepress/dist;
             index  index.html index.htm;
             try_files $uri $uri/ /index.html;
        }
1
2
3
4
5

# 访问应用

浏览器访问:http://<IP或域名>/

image-20230810204557026

修改本地代码推送到远程分支,观察到 Jenkins 出现新的构建记录,WebHooks 即配置成功

本文对应博客仓库地址 (opens new window),本文也同步更新在仓库博客中,直接从仓库中进入博客链接首页即可看到文章

有任何问题或错误欢迎大家在评论区指出

# 参考文章

Jenkins实现Vuepress自动化部署(上)-安装配置Jenkins - 掘金 (juejin.cn) (opens new window)

Jenkins实现Vuepress自动化部署(下)-Jenkins任务配置自动化部署 - 掘金 (juejin.cn) (opens new window)

# 推荐阅读

Centos 7 安装 Jenkins-阿里云开发者社区 (aliyun.com) (opens new window)

编辑 (opens new window)
#Linux#VuePress
上次更新: 2023/10/14, 10:01:13
三步教你轻松安装配置 Linux Anaconda 环境

三步教你轻松安装配置 Linux Anaconda 环境→

最近更新
01
百度网盘加速
03-24
02
新版 PyCharm 设置 Conda 虚拟环境
03-24
03
腾讯云域名转到阿里云
03-24
更多文章>
Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式