安裝jdk
sudo apt-get install java-11-openjdk
java -version
/usr/lib/jvm
apt方式安裝
# 1. 更新包索引
sudo apt update
# 2. 添加jenkins GPG密鑰
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 進(jìn)行第二步的時(shí)候可能報(bào)錯(cuò) “gpg: no valid OpenPGP data found” ,是wget命令版本過(guò)舊問(wèn)題绰筛,這里用下面命令即可
wget --no-check-certificate -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 3. 將jenkins存儲(chǔ)庫(kù)添加到系統(tǒng)
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# 4. 更新包索引
sudo apt update
# 5. 安裝jenkins
sudo apt install jenkins
# 6. 啟動(dòng)jenkins
sudo systemctl start jenkins
## 啟動(dòng)jenkins后可以使用下面命令查看
sudo systemctl status jenkins # 查看運(yùn)行狀態(tài)
lsof -i:8080 # jenkins默認(rèn)端口是8080蛙讥,查看端口運(yùn)行狀態(tài)
war包安裝(推薦嫉鲸,方法簡(jiǎn)單价说,配置使用JDK)
# 1. 創(chuàng)建安裝目錄并進(jìn)入
cd /home/software/
mkdir jenkins
cd jenkins
# 2. 使用wget下載jenkins war包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war
# 3. 創(chuàng)建日志目錄假颇,用于記錄jenkins運(yùn)行日志
mkdir logs
# 4. 創(chuàng)建jenkins啟動(dòng)腳本start.sh
vim start.sh
# 5. start.sh內(nèi)容如下
#!/bin/bash
export JENKINS_HOME=/home/swp/jenkins
cd $JENKINS_HOME
# 設(shè)置JAVA_HOME變量并應(yīng)用以修改jenkins運(yùn)行JDK版本,自行修改為JDK安裝路徑胚鸯,使用APT安裝的JDK11默認(rèn)路徑如下
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
# 使用JAVA_HOME下的JDK
# 并修改端口號(hào)8080為8089,避免沖突笨鸡,該端口號(hào)用于訪問(wèn)jenkins后臺(tái)管理網(wǎng)址姜钳。
# 設(shè)置日志路徑
nohup $JAVA_HOME/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Xmx2g -jar jenkins.war --httpPort=8089 > logs/jenkins.log 2>&1 &
# 顯示實(shí)時(shí)日志
tail -f logs/jenkins.log
# 6. 創(chuàng)建jenkins配置文件hudson.model.UpdateCenter.xml
vim hudson.model.UpdateCenter.xml
# 7. hudson.model.UpdateCenter.xml內(nèi)容如下
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins-zh.cn/update-center.json</url>
</site>
</sites>
# 8. 給啟動(dòng)腳本文件start.sh提權(quán),避免在jenkins上報(bào)錯(cuò)權(quán)限不夠
sudo chmod 777 start.sh
# 9. 運(yùn)行腳本文件start.sh啟動(dòng)jenkins
sh start.sh
查找配置文件
find / -name 'default.json'
文件所在路徑
/var/lib/jenkins/updates/default.json 文件路徑
進(jìn)入updates目錄下
cd /var/lib/jenkins/updates/
執(zhí)行命令
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
鏡像地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
更換地址點(diǎn)擊 jenkins 的系統(tǒng)管理 --> 插件管理形耗,打開插件管理頁(yè)面哥桥,進(jìn)入Jenkins 歡迎頁(yè)面點(diǎn)擊系統(tǒng)管理,進(jìn)入系統(tǒng)管理頁(yè)面激涤,并點(diǎn)擊插件管理進(jìn)入到插件管理頁(yè)面拟糕,點(diǎn)擊在插件管理頁(yè)面點(diǎn)擊高級(jí)(Advanced),點(diǎn)擊在高級(jí)選項(xiàng)卡找到更新網(wǎng)站(Update Site)菜單項(xiàng)倦踢,將默認(rèn)網(wǎng)站更新為 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
并提交送滞。
安裝插件
Publish Over SSH
NodeJS Plugin
Role-based Authorization Strategy
shell腳本配置
node -v
rm -rf node_modules
npm install
npm run build
cp -r /var/lib/jenkins/workspace/vite-tsx/dist/* /usr/local/volume/nginx/html/
修改配置文件
vim /etc/default/jenkins
將下面兩個(gè)參數(shù)修改為root
----------修改前--------
JENKINS_USER=$NAME
JENKINS_GROUP=$NAME
---------修改后---------
JENKINS_USER=root
JENKINS_GROUP=root
更改目錄權(quán)限
cd /var/lib/
chown -R root:root ./jenkins
systemctl restart jenkins.service
用戶名修改(老版本):
查看/etc/sysconfig/jenkins
的JENKINS_USER="root"
,如果不是root
硼一,而是jenkins
或者其它累澡,要改成root
梦抢。
vim /etc/sysconfig/jenkins
systemctl daemon-reload
用戶名修改(新版本):
vim /usr/lib/systemd/system/jenkins.service
改成:
User=root
Group=root
systemctl daemon-reload
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service
配置vue3案例
node -v
rm -rf node_modules
npm install
npm run build
cp -r /var/lib/jenkins/workspace/vite-tsx/dist/* /usr/local/volume/nginx/html/80/
echo `pwd`
rm -rf node_modules
配置koa2案例
# node -v
# npm install
# npm run dev
cp -r /var/lib/jenkins/workspace/node-koa2/ /usr/local/volume/servers/
echo `pwd`
cd /usr/local/volume/servers/node-koa2
echo `pwd`
# x-node-koa2
docker inspect x-node-koa2 -f '{{.Name}}' > /dev/null
if [ $? -eq 0 ]; then
docker rm -f x-node-koa2
echo "x-node-koa2 has deleted"
fi
# node-koa2
CON=`docker image ls node-koa2 | wc -l`
if [ $CON -eq 2 ]; then
docker rmi node-koa2
echo "node-koa2 has deleted"
fi
docker build -t node-koa2 .
docker run -p 9000:9000 -d --name=x-node-koa2 node-koa2
# docker logs -f -t --tail 200 x-node-koa2
參考資料
jenkins shell腳本執(zhí)行權(quán)限不夠解決辦法 - 誤導(dǎo)
Jenkins啟動(dòng)失敗的七個(gè)問(wèn)題