一、系統版本centos7.6
二、根據jenkins官方安裝方法yum安裝jenkins
1、進入jenkins官網下載頁面https://jenkins.io/download/,選擇Red Hat/Fedora/CentOS
2、根據官方要求需首先安裝java8
yum install java-1.8.0-openjdk-devel -y
3、然后導入jenkins yum源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
4、yum安裝jenkins
yum install jenkins -y
5、手動啟動jenkins
/etc/init.d/jenkins start
查看8080端口啟動即可
6、通過瀏覽器訪問設置jenkins,http://192.168.0.77:8080/
初始的管理員密碼,jenkins自動生成的,根據頁面紅色的路徑找到密碼,拷到下面的輸入框中。
選擇默認建議安裝插件
7、安裝完進入后選擇系統管理-插件管理,手動安裝Maven Integration plugin
三、系統安裝maven程序
1、進入maven官網http://maven.apache.org/download.cgi#,選擇maven二進制tar包下載
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
2、解壓maven包
tar -zxvf /root/apache-maven-3.6.0-bin.tar.gz -C /usr/local
四、安裝nodejs和npm
1、去官網下載nodejs二進制包https://nodejs.org
因為我們使用的是node8.11.1,我這次安裝也使用這個版本
wget https://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.gz
2、解壓nodejs包
tar -zxvf node-v8.11.1-linux-x64.tar.gz -C /usr/local/
3、為了使用方便可以把nodejs命令加入到PATH路徑
vim /etc/profile
export PATH=$PATH:/usr/local/node-v8.11.1-linux-x64/bin
source /etc/profile
4、npm安裝包在國外,安裝較慢,更換淘寶npm源
npm install -g cnpm --registry=https://registry.npm.taobao.org
五、配置jenkins上jdk和maven路徑,進入系統管理-全局工具配置
六、構建項目設置
1、新建任務,構建一個maven項目
2、常規設置里面選擇丟棄舊的構建,保留5天5次即可
3、源碼管理選擇svn,填寫svn地址和svn賬號密碼
4、可以根據需要選擇構建觸發器,我這是手動構建,所以不選,構建環境選擇在構建前刪除原來構建項目
5、構建前步驟,因為我的項目需要首先npm打包后再給maven打包,所以在構建前需要執行shell命令進行npm打包
6、構建按如下寫即可
7、構建后執行shell命令,首先遠程關閉tomcat,然后刪除tomcat webapps下文件,然后上傳打包好的war包到tomcat下,然后啟動tomcat
七、構建項目
1、點剛才創建的項目-立即構建,開始構建
2、發現最后遠程執行命令報錯,雖然之前也做了這兩台機器無密鑰登錄,但是還是報錯,查找原因后發現,yum安裝jenkins后會自動創建一個jenkins賬號,jenkins服務是以jenkins賬號啟動,所以需要做jenkins賬號到遠程部署服務器無密鑰登錄
這里注意幾個坑:
1、默認jenkins賬號是不允許登錄的,需修改/etc/passwd里jenkins賬號/bin/false為/bin/bash后才能切換到jenkins賬號創建密鑰
2、jenkins賬號默認家目錄是/var/lib/jenkins
3、需要開啟jenkins賬號sudo無密碼登錄,在/etc/sudoers里加入jenkins ALL=NOPASSWD:ALL
4、linux第一次ssh連接遠程機器會有公鑰確認提示,需要輸入yes后才能繼續,我們需要關閉提示,否則構建時候遠程命令執行沒法通過,在/etc/ssh/ssh_config里StrictHostKeyChecking ask改為StrictHostKeyChecking no,重啟sshd服務