一:按照官方文檔下載對(duì)應(yīng)軟件和環(huán)境
- 先要注意是否有對(duì)應(yīng)的java環(huán)境
java -version
[root@ java-1.8.0]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
沒(méi)有java環(huán)境的需要先安裝Java環(huán)境
sudo yum install java
- 首先要先添加Jenkins源:
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.key
- 添加完成之后直接使用yum命令安裝Jenkins:
yum install jenkins
二 啟動(dòng)Jenkins
- 使用命令啟動(dòng)Jenkins:
sudo service jenkins start
(啟動(dòng))
sudo service jenkins stop
(暫停)
[root@ ~]# service jenkins start
Starting jenkins (via systemctl): [ OK ]
- 默認(rèn)為8080端口,如需修改端口可修改配置文件,然后將Jenkins暫停后啟動(dòng)
vim /etc/sysconfig/jenkins
- 開(kāi)防火墻端口
如果沒(méi)有對(duì)端口進(jìn)行開(kāi)發(fā)躯枢,服務(wù)器是拒絕外部訪問(wèn)的,
systemctl status firewalld
:查看防火墻的狀態(tài)
- running 狀態(tài)即防火墻已經(jīng)開(kāi)啟
- dead 狀態(tài)即防火墻未開(kāi)啟
systemctl start firewalld
: 開(kāi)啟防火墻(建議開(kāi)啟)
systemctl stop firewalld
: 停止防火墻
firewall-cmd --query-port=8000/tcp
:查看端口是否開(kāi)放(8000代表端口) - yes表示已開(kāi)通
- no表示未開(kāi)通
firewall-cmd --add-port=8000/tcp --permanent
: 開(kāi)放端口(8000代表端口) - success表示成功
firewall-cmd --reload
: 重載配置
要使配置生效一定要重新載入配置
- 在這里很多人會(huì)去網(wǎng)站上訪問(wèn)
你服務(wù)器ip:端口
結(jié)果發(fā)現(xiàn)無(wú)法訪問(wèn)
其實(shí)是我們沒(méi)有把端口加到阿里云的安全組里,是不是忘了,哈哈哈哈哈荠列,
-
訪問(wèn)Jenkins管理平臺(tái),嗒噠载城!
三 配置Jenkins
1.找密碼(我的方法獨(dú)一無(wú)二)
- 使用命令:
ps -ef | grep jenkins
獲取Jenkins運(yùn)行的端口
- 看到上圖中黃色框框中的文件路徑肌似,cat 它,往下滾滾找到黃色框框中的那串密碼(我打了少兒不宜的那個(gè))
cat /var/log/jenkins/jenkins.log
-
然后復(fù)制粘貼到網(wǎng)頁(yè)中诉瓦,點(diǎn)擊驗(yàn)證進(jìn)入如下頁(yè)面
- 安裝插件(可以點(diǎn)擊推薦的安裝锈嫩,或者自行選擇安裝受楼,如果清楚自己要什么的可以自行選擇安裝,我就鼠標(biāo)點(diǎn)錯(cuò)了點(diǎn)到推薦安裝了┭┮﹏┭┮)
安裝有點(diǎn)慢呼寸,間隙打個(gè)小廣告歡迎訪問(wèn)我的垃圾博客 -
賬號(hào)創(chuàng)建
-
安裝NodeJs插件
Avaliable 搜索 NodeJS,勾選 NodeJS猴贰,點(diǎn)擊 Install without restart 安裝
- 配置 NodeJS 插件
-
Jenkins -> Manage Jenkins -> Global Tool Configuation
-
NodeJS 節(jié)點(diǎn)下对雪,點(diǎn)擊 NodeJS installations
-
填寫(xiě) Name,勾選 Install automatically米绕,選擇 Version瑟捣,最后點(diǎn)擊 Save
- 發(fā)布配置(最最最最 重要)
-
創(chuàng)建一個(gè)項(xiàng)目Jenkins -> New Item
-
General 配置,填寫(xiě) DescriptionSource Code Management栅干,選擇 Git迈套,填寫(xiě) Repository URL,如果是私有倉(cāng)庫(kù)碱鳞,還需要填寫(xiě) Credentials( 點(diǎn)擊 Add 添加)
- 番外篇--私有倉(cāng)庫(kù)設(shè)置:
1.1 生成SSH密鑰桑李,輸入命令:
ssh-keygen -t rsa -C “郵箱”
公鑰內(nèi)容在 ~/.ssh/id_rsa.pub
私有內(nèi)容在 ~/.ssh/id_rsa
1.2 將密鑰加入到GitHub中
1.3 在Jenkins配置git ssh
在Jenkins ->Credentials->System--> Add credentials
新增登錄方式
選擇SSH登陸方式,將私鑰復(fù)制到key中
1.4 Jenkins Job中配置git
取得私有g(shù)it的倉(cāng)庫(kù)配置果安裝了git插件窿给,在源碼管理會(huì)出現(xiàn)Git選項(xiàng)贵白,
選中之后,主要配置 git服務(wù)器地址,這里要取git的地址.
登錄方式和分支(默認(rèn)是 */master)
1.5 Build Environment,勾選 Provide Node & npm bin/ folder to PATH
1.6 Build崩泡,點(diǎn)擊 Add build step 下拉禁荒,選擇 Execute shell
重要、重要角撞、重要啦 shell命令
node -v #檢測(cè)node版本(此條命令非必要)
npm -v #檢測(cè)npm版本(此條命令非必要)
npm config set registry https://registry.npm.taobao.org #把npm源設(shè)置為淘寶源(這個(gè)你懂的)
npm config get registry #檢測(cè)npm是否切換成功(此條命令非必要)
npm install #安裝項(xiàng)目中的依賴
npm run build #打包
cd dist
rm -rf blog_vue.tar.gz #刪除上次打包生成的壓縮文件(一般建議備份呛伴,不要直接刪除,這邊測(cè)試就無(wú)所謂啦)
tar -zcvf blog_vue.tar.gz * #把生成的項(xiàng)目打包成壓縮包谒所,方便移動(dòng)到項(xiàng)目部署目錄
cd dist
# 備份歷史版本
myPath="/home/vue_project_version/blog/" #歷史版本存放路徑
tarName=$(date +%Y%m%d_%H%M%S)
# 這里的-d 參數(shù)判斷$myPath是否存在
if [ ! -d $myPath ]; then
mkdir $myPath
fi
cp blog_vue.tar.gz /home/vue_project_version/blog/ #版本拷貝
mv /home/vue_project_version/blog/blog_vue.tar.gz /home/vue_project_version/blog/blog_vue$tarName.tar.gz #版本改名
cd /home/vue_project/blog/ #進(jìn)入web項(xiàng)目根目錄
mv /var/lib/jenkins/workspace/blog_vue/dist/blog_vue.tar.gz ./ #移動(dòng)剛剛打包好的項(xiàng)目到web項(xiàng)目根目錄
tar -zxvf blog_vue.tar.gz -C ./ #解壓項(xiàng)目到dist目錄
rm -rf blog_vue.tar.gz #刪除壓縮包
注1:Jenkins默認(rèn)目錄centos: /var/lib/jenkins/workspace 在第一次構(gòu)建的時(shí)候會(huì)創(chuàng)建這個(gè)文件夾热康,以后每次構(gòu)建都會(huì)跳轉(zhuǎn)到這個(gè)目錄下你創(chuàng)建項(xiàng)目名字的目錄下 例:項(xiàng)目名字為blog_vue,跳轉(zhuǎn)的目錄為/var/lib/jenkins/workspace/blog_vue/百炬,暫且可認(rèn)為其實(shí)目錄
注2:知道有人想修改默認(rèn)目錄褐隆,如下:
我就不啰嗦了,有前賢
注2.5:有人想修改項(xiàng)目的工作目錄剖踊,如下:
注3:建議shell命令 分開(kāi)寫(xiě)庶弃,一小段一小段,注中注:分開(kāi)的每段的開(kāi)始目錄為注2中所說(shuō)的默認(rèn)目錄德澈,切記切記 如下:
四. 構(gòu)建項(xiàng)目(簡(jiǎn)單歇攻? 哈哈哈哈 坑來(lái)了)
-
回滾到項(xiàng)目路徑下 點(diǎn)擊Build Now,如圖中2就會(huì)開(kāi)始構(gòu)建
-
查看構(gòu)建情況(我弄幾個(gè)錯(cuò)誤的看看)
修改對(duì)應(yīng)問(wèn)題得shell命令,就跟服務(wù)器操作一樣一樣的
-
正常的構(gòu)建
五.運(yùn)行問(wèn)題錦集:
1.文件權(quán)限問(wèn)題:
mkdir: cannot create directory ‘/home/jenkins_workspace/blog_vue’: Permission denied
- 解決方法:
修改用戶為root:
打開(kāi)jenkins配置文件: vim /etc/sysconfig/jenkins
將原來(lái)的jenkins用戶修改為 root用戶: $JENKINS_USER="root"
修改Jenkins相關(guān)文件夾用戶權(quán)限:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
重啟Jenkins:systemctl restart jenkins
查看當(dāng)前運(yùn)行用戶:ps -ef | grep jenkins
為當(dāng)前用戶添加權(quán)限
chown -R jenkins 文件路由
2.軟件權(quán)限問(wèn)題:
+ uwsgi --reload /etc/uwsgi/blog/uwsgi.pid
/tmp/jenkins6897959297090627100.sh: line 8: uwsgi: command not found
- 解決方法:
將服務(wù)器shell命令路徑配置到Jenkins環(huán)境中
獲取服務(wù)器的shell 命令路徑:echo $PATH
[root@ myblog]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/python3/bin/:/root/bin
將路徑復(fù)制到下圖路徑里,再運(yùn)行