一、環境搭建
本次實驗的環境為Ubuntu 16.04,Jenkins 2.8.3
1、安裝ssh
sudo apt-get update # 更新軟件源 sudo apt-get install openssh-server # 安裝ssh sudo ps -e |grep ssh ## 查詢是否啟動 ,如果沒有啟動 sudo service ssh start 啟動 使用gedit修改配置文件”/etc/ssh/sshd_config” 獲取遠程ROOT權限 打開”終端窗口”,輸入”sudo gedit /etc/ssh/sshd_config“
–>回車–>把配置文件中的”PermitRootLogin without-password“加一個”#”號,把它注釋掉
–>再增加一句”PermitRootLogin yes“
–>保存,修改成功
查看ip:
ifconfig
2、安裝vim
sudo apt-get install vim
3、本地使用ssh工具或者git bash遠程連接
ssh root@47.95.0.243 -p 22
這里推薦一個不錯的ssh工具,基於Java開發,叫FinalShell,下載地址http://www.hostbuf.com/。自帶加速海外連接功能。
4、安裝jdk
sudo apt-get install openjdk-8-jdk
java -version # 查看是否安裝成功
openjdk的安裝目錄在 /usr/lib/jvm/java-8-openjdk-amd64
5、安裝maven
最新版本為3.6.0
wget http://apache.communilink.net/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz ## 下載 tar vxf apache-maven-3.5.0-bin.tar.gz ## 解壓 mv apache-maven-3.5.0 /usr/local/maven3 ## 移動
修改環境變量
在/etc/profile 中添加以下幾行
MAVEN_HOME=/usr/local/maven3 #此處根據你的maven安裝地址修改
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
執行source /etc/profile使環境變量生效
運行mvn -v驗證maven是否安裝成功
6、安裝git
sudo apt-get install git # 安裝git git config --global user.name "zsh" git config --global user.email "43240825@qq.com"
7、關閉防火牆
sudo ufw status # 查看防火牆狀態
sudo ufw disable #關閉防火牆
active為開啟狀態。inactive為關閉狀態
8、安裝MySQL(非必需)
sudo apt-get update
sudo apt-get install mysql-server
在彈出的頁面中輸入兩次數據庫root用戶的密碼即可。
修復數據庫中文亂碼問題
修改/etc/mysql/my.cnf,加入下面這幾行
[mysqld] character_set_server=utf8 [mysql] default-character-set= utf8 [client] default-character-set = utf8
重啟數據庫:
service mysql restart
查詢數據庫字符編碼
mysql -uroot -p
show variables like '%character%';
自此中文亂碼問題已經修復。
一般阿里雲或者騰訊雲買的服務器,Ubuntu 16.04 中自帶ssh和vim。
二、Jenkins 安裝
下載 https://pkg.jenkins.io/debian-stable/
sudo apt-get update
sudo apt-get install jenkins
或者離線下載之后,上傳至服務器,此處我放在了 /opt
啟動服務
默認啟動在8080 java -jar jenkins.war & 啟動在指定端口可以 nohup java -jar jenkins.war --httpPort=8080 &
Jenkins 就啟動成功了!它的war包自帶Jetty服務器
第一次啟動Jenkins時,出於安全考慮,Jenkins會自動生成一個隨機的按照口令。注意控制台輸出的口令,復制下來,然后在瀏覽器輸入密碼:
因為項目是啟動在 ubuntu 系統里,所以我們在外面可以用服務器ip訪問
http://47.95.0.243:8080
此處注意,如果沒有給服務器防火牆打開8080端口,是沒法訪問的。
輸入上面的密碼
進入用戶自定義插件界面,建議選擇安裝官方推薦插件,因為安裝后自己也得安裝:
等待一段時間之后,插件安裝完成,如果有部分插件未安裝成功,不比擔心,繼續配置用戶名密碼:
三、Jenkins 配置
進入 系統管理 -> 全局工具配置
1、配置jdk
2、配置git
3、配置maven
四、部署項目
1、首頁點擊新建:輸入項目名稱
如果你沒有第二個選項,需要安裝 Maven Integration 插件
2、勾選丟棄舊的構建,選擇是否備份被替換的舊包。我這里選擇備份最近的10個
3、源碼管理,選擇git,配置Git相關信息
4、構建環境中勾選“Add timestamps to the Console Output”,代碼構建的過程中會將日志打印出來
5、在Build中輸入打包前的mvn命令,如:
clean install -Dmaven.test.skip=true -Ptest
6、Post Steps 選擇 Run only if build succeeds
7、點擊Add post-build step,選擇 Excute Shell
cd /home/admin/Jenkins-in #根據自己stop.sh、replace.sh腳本地址寫 sh stop.sh sh replace.sh BUILD_ID=dontKillMe nohup java -jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar & #根據自己jar包的名稱、地址修改
stop.sh
# 將應用停止 #stop.sh #!/bin/bash echo "Stopping SpringBoot Application" pid=`ps -ef | grep personal-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid fi #此處personal-0.0.1-SNAPSHOT.jar根據自己的jar包名稱修改
replace.sh
#replace.sh 用於將上次構建的結果備份,然后將新的構建結果移動到合適的位置 #!/bin/bash # 先判斷文件是否存在,如果存在,則備份 file="/www/server/workspace/autumn-0.0.1-SNAPSHOT.jar" if [ -f "$file" ] then mv /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S` fi mv /root/.jenkins/workspace/hello/target/personal-0.0.1-SNAPSHOT.jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar #此處 /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar根據自己實際jar包名稱和路徑修改
此處如果使用windows的notepad++寫好之后再上傳上去,有可能出現一個錯誤
stop.sh: Syntax error: end of file unexpected (expecting "then")
解決方案
在vim中修改下文件的格式就好了,直接輸入":",然后在":"之后輸入"set ff"如下圖所示
把格式改為unix,方法是輸入":set ff=unix",也可以輸入":set fileformat=unix"如下圖所示。
輸入完之后,回車即可完成切換格式。然后我們再輸入":set ff"來查看格式,如下圖所示,可以看到當前腳本格式變成了我們想要的"unix"了。
此時就沒有問題了。
五、構建項目
左側有構建狀態,藍色表示成功,紅色表示失敗。
點進去可以查看本次構建信息,點擊左側的控制台日志。
訪問項目,成功!