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