1. 程式人生 > >jenkins+Gitlab+maven+tomcat實現自動化集成、打包、部署。

jenkins+Gitlab+maven+tomcat實現自動化集成、打包、部署。

linux 編譯 oracle system group org 51cto check soft

為什麽需要持續集成呢?

1.因為在開發的過程中,用於階段性地構建出產品。
這樣可以更加清楚地審視產品的不足之處。
2.由於在某些情況下,例如有緊急bug的時候,研發的版本更新可能很頻繁,
部署持續集成環境,可以減少每次部署所花費的時間。
化整為零:
1.這套組合可以分成源碼管理、編譯構建、遠程部署
2.源碼管理常見的有gitlab、SVN
3.編譯構建是針對編譯型語言的。
此處針對Java語言使用Maven、針對IOS則是使用其他編譯工具。
4.遠程部署由jenkins提供。

基礎環境
192.168.254.134 Maven-3.5.4、Jenkins-2.133、Git-2.12.0、JDK1.8
192.168.254.135 Gitlab-11.0.4

192.168.254.131 tomcat9.0.10

安裝Gitlab
Gitlab的作用:作為源碼管理的角色。
Gitlab實際上是整合了nginx、git等多種軟件提供了一個可視化的界面。
包含git命令的基本功能,但相比於git命令更加簡單易用。

GitLab的安裝及使用教程
https://www.cnblogs.com/weifeng1463/p/7714492.html

信任 GitLab 的 GPG 公鑰:
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

安裝gitlab和必要的依賴
yum makecache
yum install gitlab-ce
yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd

systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix

初始化gitlab
gitlab-ctl reconfigure
有時候,像上面步驟修改了GitLab的ip地址一樣,臨時修改了GitLab的配置之後,得執行如下的命令,應用重新配好的配置並重啟GitLab,然後查看GitLab的狀態
gitlab-ctl reconfigure
gitlab-ctl retart
gitlab-ctl status
gitlab-ctl tail

找到應該訪問的地址
vim /etc/gitlab/gitlab.rb
external_url ‘http://node.abc.com‘
註意:需要解析域名
正常訪問頁面:
技術分享圖片

安裝maven
Maven的作用:Maven負責java語言的編譯和打包。
換個角度來說,Maven相當於Java中的make命令。
同類型的工具有Ant,但是Ant不提供解決依賴關系的功能
獲取安裝包:鏡像。
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
解壓tar包
tar -zxf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
cd /usr/local/
mv apache-maven-3.5.4 maven
定義變量,輸出執行路徑
vim /etc/profile 在最後面添加
export M2_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
source /etc/profile
測試能否正常運行
mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_171, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.3.3.el7.x86_64", arch: "amd64", family: "unix"

安裝jenkins
Jenkins的功能:
1.通過git命令從Gitlab中拉取源碼
2.讓maven進行編譯並打包
3.把打好的包發送到目標主機
4.執行部署腳本。

之前有安裝過 http://blog.51cto.com/10158955/2146748
#安裝方式有多種,包括rpm、war包啟動、dockerfile。

編譯安裝新版的git
註意:Maven、Git、JDK都是安裝到jenkins服務器。
在往後的設置中,需要在jenkins中指定他們的路徑。

獲取源碼包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz
註意:為了能讓jenkins能正常從gitlab中拉取源碼,需要編譯1.9以上的版本。
git構建時,需要的環境
yum groupinstall "Development Tools"
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker openssh-clients
除了正常的編譯環境之外,編譯git的時候還要額外安裝各種devel包。否則會構建失敗。

編譯並安裝,同時輸出執行路徑到環境變量中:
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

驗證能否正常運行:
git --version
git version 2.18.0

在jenkins上完成配置
指定Maven、Git、JDK的安裝路徑
技術分享圖片
技術分享圖片
技術分享圖片
為Jenkins安裝配件:
技術分享圖片
需要安裝的插件:
Gitlab Plugin
#安裝之後才可以在系統配置中指定gitlab的IP地址
Git Plugin
Git Client Plugin
#用於jenkins在gitlab中拉取源碼
Publish Over SSH
#用於通過ssh部署應用
Maven Integration plugin
#用於新建maven項目
註意 : 安裝了插件之後,在全局配置才能詳細配置。
技術分享圖片
配置相關選項
技術分享圖片
配置Gitlab的地址,紅字表示需要Gitlab的賬號密碼,但是這個可以在新建項目的時候指定。
技術分享圖片
Publish_over_SSH插件,可以使用Path to key指定jenkins主機的私鑰路徑,也可以如上。 註意:部署應用的主機需要jenkins主機的公鑰,可以ssh-copy-id命令復制過去。
技術分享圖片
配置需要部署應用的主機的IP地址及相關信息測試是否可以連接
技術分享圖片
在jenkins上新建項目
註意:安裝了Maven Integration plugin才可以創建maven項目
技術分享圖片
之後到裏面配置

jenkins+Gitlab+maven+tomcat實現自動化集成、打包、部署。