centos7 安裝jenkins

文章目錄

  • 前言
  • 一、pandas是什么?
  • 二、安裝依賴環境
    • 1.前提準備
    • 2.安裝git
    • 3.安裝jdk,以及jdk版本選擇
    • 4.安裝maven
    • 5.安裝NodeJS
    • 6.驗證
  • 三、安裝Jenkins
  • 四、驗證Jenkins
  • 總結


前言

正在學習jenkins+docker部署前后端分離項目,安裝jenkins的時候遇到了一些問題,本著安裝步驟重新做一下記錄。


一、pandas是什么?

Jenkins 是一個開源的、基于 Java 開發的 持續集成和持續交付 (CI/CD) 工具。它的核心使命是自動化軟件開發過程中的構建、測試和部署階段,從而顯著提高開發效率、軟件質量和發布速度。

二、安裝依賴環境

1.前提準備

提前準備好了centos7環境,網絡配置成功,能夠正常ping通百度。

2.安裝git

輸入命令

yum install -y git

3.安裝jdk,以及jdk版本選擇

這里jdk使用21,因為之前我用的是openjdk8,安裝完以后,到jenkins找到匹配的版本是2.346.1版本
在這里插入圖片描述
安裝完jenkins后初始化時候插件無法下載,
問題排查一:根據日志排查發現是因為清華源開源網絡禁用問題。
請求鏡像源網頁出現提示:我們檢測到您所在的子網和/或所使用的客戶端存在大量下載某些較大二進制文件的行為,為保證用戶的正常使用,我們阻斷了此類請求。
解決方法就是切換網絡,或者使用手機熱點。
切換了手機熱點以后,下載插件依舊失敗,
問題排查二:根據查詢問題,進行鏡像源的切換,進入到Jenkins > Manage Jenkins > Plugin Manager、點擊Advanced頁面替換Update Site的url、并submit
在這里插入圖片描述
切換為了華為鏡像源,下載還是失敗。
問題排查三:至此我就不打算解決插件下載問題了,直接使用,有些地方沒有插件無法正常使用,比如git插件,沒有的話無法配置遠程代碼倉庫。最終我只能放棄jdk8安裝了jdk21安裝最新版本的jenkins。具體原因到安裝jenkins時介紹。
jdk21下載命令如下:

wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz -P /opt/software

下載成功后通過命令解壓

tar -zxvf /opt/software/jdk-21_linux-x64_bin.tar.gz

配置環境變量

vi /etc/profile

到最下面將jdk環境變量配置粘貼到最后一行,注意地址。

export JAVA_HOME=/opt/software/jdk-21.0.7
export PATH=$JAVA_HOME/bin:$PATH

執行命令使環境變量生效

source /etc/profile

4.安裝maven

通過命令下載maven

wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.9/binaries/apache-maven-3.8.9-bin.tar.gz

解壓maven

tar -zxvf apache-maven-3.8.8-bin.tar.gz

配置maven環境變量

vi /etc/profile

將以下配置粘貼到最后一行,注意maven地址

MAVEN_HOME=/home/soft/maven/apache-maven-3.8.8
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export MAVEN_HOME PATH

執行命令使環境變量生效

source /etc/profile

修改maven配置,注意地址

vi /home/soft/maven/apache-maven-3.8.9/conf/settings.xml

修改本地倉庫位置,找到localRepository標簽修改內容

<localRepository>/home/soft/maven/repository</localRepository>

配置阿里云鏡像加速粘貼到mirrors標簽中,將原來的配置注釋掉

    <!-- 國內中央倉庫的配置-阿里云中央倉庫 --><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

5.安裝NodeJS

下載NodeJS

wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz

解壓

tar -xvf node-v12.18.3-linux-x64.tar.xz

配置環境變量

vi /etc/profile

將以下內容粘貼到最后一行,注意地址

NODEJS_HOME=/home/soft/node-v12.18.3-linux-x64
PATH=$PATH:$NODEJS_HOME/bin
export NODEJS_HOME PATH

執行命令使環境變量生效

source /etc/profile

6.驗證

輸入以下命令驗證安裝的所需環境是否成功

java -version
git --version
mvn -v
node -v
npm -v

如下輸出對應的版本信息即為成功。
在這里插入圖片描述

三、安裝Jenkins

https://pkg.jenkins.io/redhat-stable/ 到此網頁下查看對應jenkins 和jdk的版本
在這里插入圖片描述
https://mirrors.jenkins.io/war-stable/下載對應版本的jenkins
在這里插入圖片描述
因為我們使用的時jdk21所以就下載最新的2.479.1點擊下載war包即可
在這里插入圖片描述
將war包上傳到服務器對應的路徑下
在war包路徑下新建jenkins.sh

vi jenkins.sh
#!/bin/bash# 檢查參數個數
if [ "${#}" -lt 1 ]; thenecho "\033[41;37m 腳本使用示例: sh jenkins.sh start(運行)|stop(停止)|restart(重啟)  \033[0m"exit
fi# SOFT_DIR='/home/soft'# 獲取腳本第一個參數
APP_OPT=${1}
# 端口
APP_PORT=10000
# 名稱
APP_NAME=jenkins
# jar名 | war名
APP_JAR=${APP_NAME}.war
# 程序根目錄
APP_JAR_HOME=.
# 日志名
APP_LOG_NAME=jenkins
# 日志根目錄
APP_LOG_HOME=.
# 程序運行參數
JAVA_OPTS="--httpPort=${APP_PORT} --prefix=/jenkins"echo "本次操作服務名:[${APP_NAME}]"
echo "本次操作選擇:[${APP_OPT}]"# 停止
function stop(){echo "<-------------------------------------->"echo "[${APP_NAME}] ... stop ..."# 查看該jar進程pid=`ps -ef | grep ${APP_JAR} | grep -v 'grep' | awk '{print $2}'`echo "[${APP_NAME}] pid="${pid}# 存在則kill,不存在打印一下吧if [ "${pid}" ]; thenkill -9 ${pid}# 檢查kill是否成功if [ "$?" -eq 0 ]; thenecho "[${APP_NAME}] stop success"elseecho "[${APP_NAME}] stop fail"fielseecho "[${APP_NAME}] 進程不存在"fi
}# 運行
function start(){echo "<-------------------------------------->"echo "[${APP_NAME}] ... start ..."cd ${APP_JAR_HOME}echo "當前路徑:`pwd`"# 賦予可讀可寫可執行權限chmod 777 ${APP_JAR}echo "啟動命令: nohup java -jar ${APP_JAR} ${JAVA_OPTS} >> ${APP_LOG_HOME}/${APP_NAME}.log 2>&1 &"nohup java -jar ${APP_JAR} ${JAVA_OPTS} >> ${APP_LOG_HOME}/${APP_NAME}.log 2>&1 &if [ "$?" -eq 0 ]; thenecho "[${APP_NAME}] start success"elseecho "[${APP_NAME}] start fail"fi
}# 重啟
function restart(){echo "<-------------------------------------->"echo "[${APP_NAME}] ... restart ..."stopstart
}# 多分支條件判斷執行參數
case "${APP_OPT}" in"stop")stop;;"start")start;;"restart")restart;;*)echo "\033[41;37m 提示:不支持參數 命令 -> ${APP_OPT} \033[0m";;
esac

保存文件通過sh jenkins.sh start命令啟動jenkins
然后通過瀏覽器訪問IP:10000/jenkins/等待初始化,
在這里插入圖片描述
安裝推薦插件等待安裝完成
在這里插入圖片描述
用戶默認使用admin即可,默認密碼即為上面解鎖的密碼,登錄成功以后可在用戶管理中修改,路徑jenkins->manage->securityRealm
在這里插入圖片描述
在這里插入圖片描述

四、驗證Jenkins

點擊新建任務
在這里插入圖片描述
輸入任務名稱,創建自由風格軟件
在這里插入圖片描述
構建步驟這里選擇執行shell
在這里插入圖片描述
輸入shell命令
在這里插入圖片描述

java -version
git --version
mvn -v
node -v
npm -v

點擊保存即可
然后點擊立即構建
在這里插入圖片描述
點擊查看控制臺輸出
在這里插入圖片描述
在這里插入圖片描述


總結

以上就是今天要講的內容,本文僅僅簡單介紹了jenkins的安裝和驗證。

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

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

相關文章

Leetcode刷題營第二十題:刪除鏈表中的重復節點

面試題 02.01. 移除重復節點 編寫代碼&#xff0c;移除未排序鏈表中的重復節點。保留最開始出現的節點。 示例1&#xff1a; 輸入&#xff1a;[1, 2, 3, 3, 2, 1]輸出&#xff1a;[1, 2, 3]示例2&#xff1a; 輸入&#xff1a;[1, 1, 1, 1, 2]輸出&#xff1a;[1, 2]提示&…

關于市場主流自動化測試工具和框架的簡要介紹

下面我會分別講解 Selenium、Appium、Playwright 等主流自動化框架的區別、聯系、適用場景和歸屬范疇&#xff0c;幫助你更系統地理解它們。&#x1f527; 一、它們都屬于哪一類工具&#xff1f;Selenium、Appium、Playwright、Cypress 等都屬于&#xff1a;?? 自動化測試框架…

基于cornerstone3D的dicom影像瀏覽器 第三十二章 文件夾做pacs服務端,fake-pacs-server

文章目錄 前言一、實現思路二、項目與代碼三、dicom瀏覽器調用1. view2d.vue前言 本系列最后一章,提供一個模擬pacs服務,供訪問dicom圖像測試。 修改nodejs本地目錄做為http服務根目錄,提供一個根目錄,其中的每個子目錄代表一個檢查。在dicom瀏覽器url中帶入參數studyId=目…

【Python 核心概念】深入理解可變與不可變類型

文章目錄一、故事從變量賦值說起二、不可變類型 (Immutable Types)三、可變類型 (Mutable Types)四、一個常見的陷阱&#xff1a;當元組遇到列表五、為什么這個區別如此重要&#xff1f;1. 函數參數的傳遞2. 字典的鍵 (Dictionary Keys)3. 函數的默認參數陷阱六、進階話題與擴展…

wpf使用webview2顯示網頁內容(最低兼容.net framework4.5.2)

wpf使用webview2顯示網頁內容(最低兼容.net framework4.5.2 一、核心功能與架構混合開發支持?進程隔離模型?通信機制?二、核心優勢性能與兼容性?跨平臺部署?開發效率?安全機制?三、適用場景四、開發部署要點WebView2 是微軟推出的現代瀏覽器控件,基于 Chromium 內核的 …

MySQL斷開連接后無法正常啟動解決記錄

問題現象 夜里23點MySQL在還原備份的時候斷開連接&#xff0c;嘗試重啟&#xff0c;表面上是運行中實際上無法通過命令端連接&#xff0c;無法正常啟動。 問題檢查 可以使用 systemctl start mysql 但是沒有監聽 3306端口 mysql -ucosmic -p 提示無法找到socket文件 刪除原先的…

隧道安全監測系統的應用意義

隨著我國交通基礎設施建設的快速發展&#xff0c;公路、鐵路及城市地鐵隧道數量不斷增加&#xff0c;隧道安全問題日益凸顯。隧道作為地下封閉空間&#xff0c;受地質條件、施工質量、運營環境等多因素影響&#xff0c;易出現結構變形、滲漏水、襯砌開裂等安全隱患。一旦發生事…

前端UI邏輯復雜可以用什么設計模式

中介者模式 當UI組件間存在復雜交互或多個組件需共享狀態時&#xff0c;中介者模式能集中管理事件分發和狀態更新&#xff0c;減少組件間的直接依賴&#xff0c;提升解耦性。 vue實現中介者模式 在Vue中實現中介者模式&#xff0c;你可以通過創建一個全局的事件中心&#xff08…

WIFI協議全解析05:WiFi的安全機制:IoT設備如何實現安全連接?

&#x1f510; WiFi的安全機制&#xff1a;IoT設備如何實現安全連接&#xff1f;“我的設備明明連上WiFi了&#xff0c;為什么還是能被‘蹭網’&#xff1f;” “WPA3 是什么&#xff1f;ESP32 支持嗎&#xff1f;” “我做了MQTT加密就算安全了嗎&#xff1f;”IoT設備連接WiF…

HTTP 請求體類型詳解:選擇最適合的數據提交格式

HTTP 請求體類型詳解&#xff1a;選擇最適合的數據提交格式 &#x1f680; 本文全面解析 HTTP 請求中不同 Content-Type 的適用場景、數據結構與優劣勢&#xff0c;幫助開發者高效選擇數據傳輸方案。 &#x1f4cc; 目錄 核心請求體類型對比詳細類型解析最佳實踐指南總結 &am…

C語言 | 函數核心機制深度解構:從底層架構到工程化實踐

個人主頁-愛因斯晨 文章專欄-C語言 引言 最近偷懶了&#xff0c;迷上了三國和李賀。給大家分享一下最喜歡的一句詩&#xff1a;吾不識青天高黃地厚&#xff0c;唯見月寒日暖來煎人壽。我還不是很理解27歲的李賀&#xff0c;如何寫出如此絕筆。 正文開始&#xff0c;今天我們…

uniapp真機調試“沒有檢測到設備,請插入設備或啟動模擬器后點擊刷新再試”

當真機調試&#xff0c;運行到安卓 APP基座 時&#xff0c;有時會檢測不到設備&#xff0c;顯示下面的問題&#xff1a;此時&#xff0c;可以通過下面的幾種方法進行排查&#xff1a;1.在手機中找到“開發者選項”選項&#xff08;可在設置中搜索&#xff0c;如搜索不到&#x…

使用langchain連接llama.cpp部署的本地deepseek大模型開發簡單的LLM應用

langchain是一個基于python實現的開源LLM開發框架&#xff0c;llama.cpp是一個基于C框架可以在本地部署大模型并開放服務端接口開放給外部應用使用。 本文結合langchain和llama.cpp&#xff0c;在本地部署輕量級的deepseek大模型&#xff0c;并構建一個簡單的鏈式LLM應用&…

Serverless 數據庫來了?無服務器數據庫 vs 傳統數據庫有何不同?

隨著云計算技術的迅猛發展&#xff0c;無服務器&#xff08;Serverless&#xff09;架構逐漸成為一種主流趨勢。其中&#xff0c;Serverless 數據庫作為云原生應用的重要組成部分&#xff0c;為開發者提供了前所未有的靈活性和成本效益。相比傳統的數據庫管理方式&#xff0c;S…

【讀書筆記】如何畫好架構圖:架構思維的三大底層邏輯

【讀書筆記】如何畫好架構圖&#xff1a;架構思維的三大底層邏輯 架構圖并非技術人的“畫功比拼”&#xff0c;而是一個團隊、一個系統、一次項目從混沌走向清晰的關鍵抓手。它是系統的視覺語言&#xff0c;是讓技術人員、產品經理、運營甚至老板都能站在統一上下文下討論的“…

Maven 編譯過程中發生了 Java Heap Space 內存溢出(OutOfMemoryError)

這個是我最近遇到的&#xff0c;因為本人最近換了電腦&#xff0c;這個電腦的前任是配置好了環境&#xff0c;但是當我用這個環境去做另外一個項目的時候&#xff0c;在maven構建war和jar包的時候&#xff0c;報了這個內存溢出mvn clean install 就給我報錯了[ERROR] Failed to…

C++ 模板參數展開

C 模板參數展開一、獲取可變參數大小二、通過模版循環繼承的方式來展開可變參數三、改用Using去實現循環繼承一、獲取可變參數大小 背景&#xff1a; FLen<int, char, long> Len; 我想要獲取模板參數類型的總大小 template<typename T,typename ...ParamTypes> c…

零基礎入門物聯網-遠程門禁開關:云平臺創建

一、 onenet云平臺注冊創建 遠程開關的信息傳輸依賴云平臺&#xff0c;本教程以 OneNET - 中國移動物聯網開放平臺為例進行操作&#xff0c;具體步驟如下&#xff1a; 1、平臺賬號創建 點擊 OneNET - 中國移動物聯網開放平臺進入官網 點擊頁面中的 “登錄” 按鈕&#xff0c;…

html頁面,當鼠標移開A字標就隱藏顏色框

html頁面代碼&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>顏色選擇器</title><style>body {font-family: "Microsoft YaHei", sans-serif;padding: 20px;}.c…

保姆級搭建harbor私有倉庫與docker-ce教程與使用教程

搭建harbor倉庫[rootharbor ~]# vim cat /etc/host192.168.121.12 harbor[rootharbor ~]# vim /etc/hostnameharbor導入 harbor 項目鏡像[rootharbor ~]# tar -zxf harbor-v2.9.2.tgz -C /usr/local/[rootharbor ~]# cd /usr/local/harbor[rootharbor harbor]# docker load -i…