【Linux】云服務器自動化部署VuePress博客(Jenkins)

前言

博主此前是將博客部署在 Github Pages(基于 Github Action)和 Vercel 上的,但是這兩種部署方式對于國內用戶很不友好,訪問速度堪憂。因此將博客遷移到自己的云服務器上,并且基于 Jenkins(一款開源持續集成工具)實現本地推送代碼后,自動化集成部署

環境

云服務器:CentOS 7,OracleJDK 11

本地主機:Windows 11

安裝配置

Jenkins

官網安裝介紹(Redhat):Redhat Jenkins Packages

注意:最新版本 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

下載安裝

yum install jenkins -y

查看目錄

rpm -ql jenkins

image-20230809230054692

啟動應用

默認啟動

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

常用命令

systemctl start jenkins
systemctl stop jenkins
systemctl status jenkins
# 開機自啟動
systemctl enable jenkins

重啟命令:http://<公網ip/域名>:8090/restart

修改配置

打開配置文件

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

配置文件修改如下(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"

初次啟動時 systemctl start jenkins 執行時間可能略長

打開應用

瀏覽器訪問:http://<公網ip/域名>:8090

注意:外部瀏覽器訪問需要開啟對應端口號防火墻,阿里云服務器還需要打開相應安全組

image-20230809234842425

按照上述提示得到密碼,執行如下命令

cat /root/.jenkins/secrets/initialAdminPassword

之后選擇安裝默認工具或是自己手動安裝均可

image-20230810000226352

直接使用 admin 用戶登陸即可,密碼就在上面的文件/root/.jenkins/secrets/initialAdminPassword

image-20230810000940621

創建任務

博客倉庫地址

安裝插件

安裝 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
添加憑證

選擇 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

構建成功后之后部署 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;}

訪問應用

瀏覽器訪問:http://<IP或域名>/

image-20230810204557026

修改本地代碼推送到遠程分支,觀察到 Jenkins 出現新的構建記錄,WebHooks 即配置成功

本文對應博客倉庫地址,本文也同步更新在倉庫博客中,直接從倉庫中進入博客鏈接首頁即可看到文章

有任何問題或錯誤歡迎大家在評論區指出

參考文章

Jenkins實現Vuepress自動化部署(上)-安裝配置Jenkins - 掘金 (juejin.cn)

Jenkins實現Vuepress自動化部署(下)-Jenkins任務配置自動化部署 - 掘金 (juejin.cn)

推薦閱讀

Centos 7 安裝 Jenkins-阿里云開發者社區 (aliyun.com)

本文由博客一文多發平臺 OpenWrite 發布!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35827.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35827.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35827.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

浪涌保護器中SPD防雷模塊的主要應用方案

浪涌保護器&#xff08;Surge Protective Device&#xff0c;SPD&#xff09;是一種用于限制瞬態過電壓和導引泄放電涌電流的非線性防護器件&#xff0c;用以保護耐壓水平低的電器或電子系統免遭雷擊及雷擊電磁脈沖或操作過電壓的損害。SPD可以將過電壓泄放到地線或限制過電壓到…

類與對象(入門)

目錄 1.前言 2.類的引入 3.類的定義 4.類的訪問限定符及封裝 4.1 訪問限定符 4.2 封裝 5.類的作用域 6.類的實例化 7. 結構體內存對齊規則 8.this指針 8.1 this指針的引出 8.2 this指針的特性 1.前言 C 是 基于面向對象 的&#xff0c; 關注 的是 對象 &#xff0c;…

【Spring】核心容器——依賴自動裝配

Spring容器根據bean所依賴的資源在容器中自動查找并注入bean的過程叫做自動裝配自動裝配的方式 1、按類型 2、按名稱&#xff08;耦合性較高&#xff09; 3、按構造方法 自動裝配特點 1、自動裝配用于對引用類型進行依賴注入&#xff0c;不能對簡單類型進行操作 2、自動裝配的…

多元最短路(Floyd)

是一個基于動態規劃的全源最短路算法。它可以高效地求出圖上任意兩點之間的最短路 時間復雜度 O(n^3) 狀態轉移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代碼 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

Vue前端 更具router.js 中的meta的roles實現路由衛士,實現權限判斷。

參考了之篇文章 1、我在登陸時獲取到登錄用戶的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具體是在login頁面實現&#xff0c;還是在menu頁面實現都可以。在menu頁面實現&#xff0c;可以顯得登陸快一些。 2、編寫router.js&#xff0c;注意&#xff0c;一個…

Spring 事務詳解

目錄 一、概述二、事務的特性&#xff08;ACID&#xff09;三、Spring 的事務管理3.1 編程式事務管理3.2 編程式事務管理 四、Spring 事務管理接口及其定義的屬性4.1 PlatformTransactionManager:事務管理接口4.2 TransactionDefinition:事務屬性4.3 TransactionStatus:事務狀態…

【基礎類】—前后端通信類系統性學習

一、什么是同源策略及限制 同源策略限制從一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的關鍵的安全機制。源&#xff1a;協議、域名和端口&#xff0c; 默認端口是80 三者有一個不同&#xff0c;即源不同&#xff0c;就是跨域 ht…

Stable Diffusion+Temporal-kit 半虛半實應用

1.先下載temporal-kit,重啟webui 2.下載好ffmpeg,配置好環境,下載Ebsynth 3.準備好你需要的視頻,拖到預處理視頻位置 4.填寫參數,點解保存設置,然后并點擊生成,會生成到目標文件夾的input位置 5.然后拉出input文件夾里面你想切換成處理的幀圖片,然后填寫prompt查看效…

中國省級、城市-數字經濟創新創業、分項指數(2010-2020年)

一、數據介紹 數據名稱&#xff1a;中國省級、城市-數字經濟創新創業、分項指數 數據年份&#xff1a;2010-2020年 數據范圍&#xff1a;31省、336個城市 數據來源&#xff1a;北大企業大數據研究中心 二、參考文獻 參考文獻&#xff1a; 戴若塵,王艾昭,陳斌開.中國數字…

Win10使用Guest和空密碼訪問共享的完整步驟

目錄 前言 啟動Guest 給予Guest網絡權限 允許空密碼登陸 啟用不安全的來并登陸 總結 前言 我們經常需要使用空密碼和guest賬戶訪問Windows共享&#xff0c;因為某些設備不支持輸入密碼等&#xff0c;那么該如何設置呢&#xff0c;因為步驟比較固定而且繁瑣&#xff0c;于…

Python小白入門:文件、異常處理和json格式存儲數據

這里寫自定義目錄標題 所用資料 一、從文件中讀取數據1.1 讀取整個文件1.2 文件路徑1.3 逐行讀取1.4 創建一個包含文件各行內容的列表1.5 使用文件的內容1.6 包含一百萬位的大型文件1.7 圓周率值中包含你的生日嗎練習題 二、寫入文件2.1 寫入空文件2.2 寫入多行2.3 附加到文件練…

Maven 生成(打包)帶有依賴的可以直接執行的一個 jar 包

在pom中增加如下內容 <build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><mainClass>com.example.xxx.YourClass</mainClass></manifest></…

酷開系統丨酷開會員,帶你解鎖K歌新姿勢

不管時代怎么變化&#xff0c;K歌這項娛樂活動始終深受人們的喜愛。不知道你有沒有遇到過這種情況&#xff1a;周末在家宅了一天&#xff0c;突然心血來潮想去KTV唱歌&#xff0c;但奈何外面過于悶熱實在不想出門&#xff0c;可在手機上唱歌又不過癮&#xff0c;讓人很是苦惱……

tomcat入門介紹

tomcat官網下載8.5.9版本&#xff0c;官網地址&#xff1a;https://tomcat.apache.org/download-80.cgi 下載完成后直接解壓即可 tomcat目錄 解壓后&#xff0c;可以看到tomcat有以下目錄 /bin - 啟動、關閉和其他腳本 *.sh后綴是linux下的腳本文件*.bat后綴windows系統下的…

繪畫AI工具的介紹與使用----強到離譜-2023年必備免費好用的AI工具

一.繪畫AI www.seaart.ai 這個是網站地址&#xff0c;進去之后直接注冊登錄即可&#xff0c;幾乎都是免費使用&#xff0c;不用擔心是否要VIP 點擊網站進入之后登錄&#xff0c;然后進入主頁面&#xff0c;一張圖片給你介紹清楚主頁 我會根據菜單欄來給大家演示&#xff0c;首…

web會話跟蹤以及JWT響應攔截機制

目錄 JWT 會話跟蹤 token 響應攔截器 http是無狀態的&#xff0c;登錄成功后&#xff0c;客戶端就與服務器斷開連接&#xff0c;之后再向后端發送請求時&#xff0c;后端需要知道前端是哪個用戶在進行操作。 JWT Json web token (JWT), 是為了在網絡應用環境間傳遞聲明而…

Unity特效總覽

一、粒子 Unity中的粒子組件叫做Particle System。 粒子系統顧名思義&#xff0c;與“微粒”有關。粒子系統會生成和發射很多粒子&#xff0c;通過控制粒子的生成數量、大小、角度、速度、貼圖和顏色等眾多屬性&#xff0c;可以實現或真實或炫酷的各種效果。其中&#xff0c;…

leetcode做題筆記76最小覆蓋子串

給你一個字符串 s 、一個字符串 t 。返回 s 中涵蓋 t 所有字符的最小子串。如果 s 中不存在涵蓋 t 所有字符的子串&#xff0c;則返回空字符串 "" 。 注意&#xff1a; 對于 t 中重復字符&#xff0c;我們尋找的子字符串中該字符數量必須不少于 t 中該字符數量。如果…

【Unity】VS Code 沒有智能提示 Unity 中的類

正常來說&#xff0c;VS Code中會對部分輸入類名進行提示&#xff0c;如下圖所述 假如你從Unity 中進入 VS Code后發現沒有提示相關 Unity的類&#xff0c;可能是 Unity 中 有關于 VS Code的相關Package 沒有跟著 VS Code升級到最新版本。 點擊Unity Windows 下拉框中的 Pac…

如何在電力行業運用IPD?

電力行業是國民經濟眾多壟斷行業中較早實施改革的行業之一。近幾年我國電力行業保持著較快的發展速度&#xff0c;也取得了很大的成績&#xff0c;發電機容量和發電量居世界首位。2015-2020年&#xff0c;全國發電量不斷攀升。 電力是以電能作為動力的能源。電力的發現和應用掀…