天天看點

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

一. Jenkins官網

https://jenkins.io

二. Windows安裝Jenkins

1. 下載下傳msi檔案并安裝

msi下載下傳路徑:

https://jenkins.io/content/thank-you-downloading-windows-installer/

2. 通路頁面

安裝後程式會自動建立了一個Windows服務, Jenkins預設使用的端口是8080, 在浏覽器中輸入位址:

http://127.0.0.1:8080.

3. 更改端口号

方式一. (此方式是指令行啟動Jenkins)

在Jenkins根目錄執行如下指令啟動服務:

java -jar jenkins.war --httpPort=8081           

方式二. (此方式是通過Windows服務啟動Jenkins)

在Jenkins根目錄下的jenkins.xml中搜尋httpPort, 将其後面預設的8080改為要設定的端口号, 改好後重新啟動Jenkins的Windows服務.

4. 根據提示輸入密鑰并安裝所需要的插件, 如果不知道需要哪些插件, 安裝标準配置插件即可.

三. Docker安裝Jenkins

version: "3.5"

services:
 jenkins:
  image: jenkins:2.60.3
  restart: always
  container_name: jenkins
  ports:
   - "8080:8080"
  volumes:
   - type: bind
     source: /home/paul/docker/myvolume/jenkins/home
     target: /var/jenkins_home           

四. Jenkins配置使用者權限

1. 點選左側的Manage Jenkins --> Configure Global Security, 選擇Enable security, Jenkins’ own user database, Allow users to sign up, Matrix-based security, 在Anonymous Users這一行全部打鈎, 點選儲存.

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

2. 登出, 注冊新賬戶, 然後用新賬戶登入, 同樣點開上一步頁面, 取消Allow users to sign up, 取消Anonymous Users這一行的打鈎, 在User/group to add這裡填寫新注冊的賬戶, 點選Add, 在paul這一行全部打鈎, 點選儲存.

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

3. 建立的paul使用者擁有所有的權限, 可以根據需要更改權限, 并且設定後Jenkins不允許注冊新賬号

五. Jenkins漢化

1. 個人建議: 各種軟體, 官網, 文檔等盡量不漢化, 看不懂的去查去學, 畢竟翻譯過來的可能會錯誤了解原意.

2. 使用中文版的Google浏覽器, 并把語言設定成了中文. 語言配置在設定頁.

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

3. 安裝插件: Manage Jenkins --> Manage Plugins 選中Avaliable這一欄, 在右側搜尋: Locale, 選擇Install without restart安裝

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

4. 出現success表示安裝成功

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

5. 安裝插件: Manage Jenkins --> Configure System, 找到Locale, 填寫zh_CN, 并在Ignore browser...這一項打鈎, 儲存.

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

六. Jenkins自動部署Maven項目

1. 在安裝了基本配置的那些插件後, 需要再安裝兩個插件:

Maven Integration plugin

Publish Over SSH

2. 配置JDK, Maven, Git

(1) Manage Jenkins --> Global Tool Configuration
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(2) 設定本地JDK的安裝路徑(若不使用本地已有的JDK, 可選中Install automatically, Jenkins會自動安裝)
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(3) 設定本地Maven的安裝路徑(若不使用本地已有的Maven, 可選中Install automatically, Jenkins會自動安裝)
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(4) 設定Maven自定義配置檔案的路徑
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(5) 設定本地Git的exe路徑(若不使用本地已有的Git, 可選中Install automatically, Jenkins會自動安裝)
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

3. 配置SSH

Manage Jenkins --> Configure System 在頁面中找到Publish over SSH, 點選Add按鈕, 然後點選Advanced...按鈕并在Use password authentication, or use a different key前面打鈎, 填寫如下内容:

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

<1>name: SSH連接配接的名稱

<2>Hostname: 遠端伺服器IP

<3>Username: 遠端伺服器使用者名

<4>Remote Directory: 這個是相對于遠端伺服器的路徑, 具體項目中的SSH配置還需要填寫Source files, Remote Directory, Remove prefix這三項, Jenkins會通過這幾個配置得出最終檔案上傳後遠端伺服器中檔案的路徑. 參考第5(5)<4>步.

<5>Passphrase/Password: 遠端伺服器密碼

<6>Path to key: 遠端伺服器SSH秘鑰路徑

<7>Port: 遠端伺服器SSH連接配接端口号

4. 建立Maven項目

(1) New Item
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(2) 選擇Maven Project, 填寫Jenkins項目名稱, 點選OK
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

5. 項目配置說明

(1) Description: 項目描述
(2) Source Code Management: 配置代碼管理

<1> 使用Git

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

填寫URL, 使用者名, 密碼, 分支, Jenkins會在安裝目錄下的workspace目錄下一個檔案夾, 檔案夾名稱為目前Jenkins項目的名稱, 這個檔案夾下存放所有下載下傳的代碼.

<2> 使用SVN

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

Local module directory: 用來指定代碼存放路徑, 這個與Git有所差別, 若不填, 則存放位置與Git類似, 若填寫, 則為預設路徑的相對路徑. 例如: Jenkins安裝目錄為: C:/Program Files (x86)/Jenkins, 目前Jenkins項目名稱為blogs, Local module directory為: all, 則最終代碼存放路徑為: C:/Program Files (x86)/Jenkins/workspace/blogs/all

(3) 自動部署觸發器
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

<1> 可以不設定, 每次手動點選按鈕進行一鍵部署

<2> 可以在上面的各種情況下設定部署, 上圖選擇的是通過Poll SCM定時部署, H/24 代表每24小時部署一次, 下面還會顯示上一次部署時間和下一次部署時間.

<3> 也可以通過安裝如Github plugin等插件實作每次版本控制器有代碼送出, 就自動部署, 但正式環境不建議這麼幹.

(4) 配置pom檔案路徑與Maven執行指令(Root POM也可以是相對路徑)
Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目
(5) 通過SSH上傳檔案至遠端伺服器并執行備份等操作

在Post-build Actions的下拉框中選擇Send build artifacts over SSH

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

SSHServer的配置如下:

Jenkins的安裝, 配置, 以及Maven項目自動部署示例一. Jenkins官網二. Windows安裝Jenkins三. Docker安裝Jenkins四. Jenkins配置使用者權限五. Jenkins漢化六. Jenkins自動部署Maven項目

<1>Name: 下拉框選擇第3步配置的SSH伺服器

<2>Source files: 指定需要上傳到遠端伺服器的檔案相對路徑(相對于代碼存放路徑), 例如: 代碼存放路徑為: C:/Program Files (x86)/Jenkins/workspace/all, Source files為: oa_jinnan/target/oa_jinnan.war, 則上傳前檔案的最終路徑為: C:/Program Files (x86)/Jenkins/workspace/all/oa_jinnan/target/oa_jinnan.war.

<3> Remote directory: 參考第5(5)<4>步.

<4>Remove prefix: 需要移除的目錄字首, 如果設定了此項屬性, 則Source files必須以這個目錄字首開頭.

舉例說明該屬性的作用, 假設配置如下:

系統中SSH配置的Remote directory為: /usr/local/test

目前Jenkins項目SSH配置的Source files為: oa_jinnan/target/oa_jinnan.war

目前Jenkins項目SSH配置的Remove prefix為: oa_jinnan/target

目前Jenkins項目SSH配置的Remote directory為: ../projects/blogs

則最終檔案上傳後遠端伺服器中檔案的路徑為: /usr/local/projects/blogs/oa_jinnan.war.

如果不配置目前Jenkins項目SSH配置的Remove prefix, 則最終檔案上傳後遠端伺服器中檔案的路徑為: /usr/local/projects/blogs/oa_jinnan/target/oa_jinnan.war

<5>Exec command: 檔案上傳後, 遠端伺服器要執行的指令

export DATE=$(date "+%Y%m%d_%H%M%S")
sleep 5
cp -rf /usr/local/tomcat/webapps/ROOT /usr/local/bak/oa_$DATE
sh /usr/local/tomcat/bin/shutdown.sh
netstat -apn |grep java |awk '{print $7}' |xargs |awk -F '/' '{print $1}' |xargs kill -9
rm -rf /usr/local/tomcat/webapps/ROOT
cp -rf /usr/local/tomcat/webapps/oa_jinnan/* /usr/local/tomcat/webapps/ROOT
rm -rf /usr/local/tomcat/webapps/oa_jinnan.war /usr/local/tomcat/webapps/oa_jinnan
sh /usr/local/tomcat/bin/startup.sh           

可以不用重新開機Tomcat, 因為Tomcat會自動解壓縮, 視需要而定.

export DATE=$(date "+%Y%m%d_%H%M%S")這一句是用來給備份檔案添加年月日時分秒的字尾

備份也可以在檔案上傳之前執行, 在Pre Steps的下拉框中選擇Send files or execute commands Over SSH, 配置方法與上面相同.

netstat -apn |grep java |awk '{print $7}' |xargs |awk -F '/' '{print $1}' |xargs kill -9這一句代表查出java程序的PID, 然後kill掉.