在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法
文章主要介紹了在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧本文以部署 Spring boot + M...
文章主要介紹了在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
本文以部署 Spring boot + Maven 項(xiàng)目為例,使用碼云作為代碼托管倉(cāng)庫,在 CentOS 7 上搭建 Jenkins 持續(xù)集成環(huán)境。
1. 準(zhǔn)備工作
1.1 安裝 Java 環(huán)境
Jenkins 是基于 Java 開發(fā)的持續(xù)集成工具,需要在 Java 環(huán)境下運(yùn)行。用下面命令查看系統(tǒng)是否已安裝 Java:yum list installed | grep jdk
如果沒有,使用 yum search 命令查找 openjdk 版本,選擇合適的 jdk 進(jìn)行安裝:yum search openjdk
yum -y install java-1.8.0-openjdk-devel
驗(yàn)證 Java 是否安裝成功:java -version
1.2 安裝 Maven
依次運(yùn)行以下兩條命令:wget http://repos.fedorapeople.org... -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
驗(yàn)證 Maven 是否安裝成功:mvn -v
1.3 安裝 Git
直接通過 yum 安裝,安裝完成后查看版本驗(yàn)證是否安裝成功:yum -y install git
git --version
2. 安裝和配置 Jenkins:
2.1 安裝 Jenkins
依次運(yùn)行以下三條命令:sudo wget https://pkg.jenkins.io/redhat... -O /etc/yum.repos.d/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat...
yum -y install jenkins
如果之前從 Jenkins 導(dǎo)入過 key,那么 rpm --import 將失敗,因?yàn)橐呀?jīng)有一個(gè) key 了。忽略它,繼續(xù)執(zhí)行 install 即可。
2.2 啟動(dòng) Jenkins
啟動(dòng) Jenkins,并且設(shè)置開機(jī)自啟動(dòng):systemctl start jenkins.service
chkconfig jenkins on
Jenkins 默認(rèn)使用8080端口,訪問以下鏈接即可看到 Jenkins 的 Web 界面:http://<服務(wù)器地址>:8080
如果無法訪問,檢查一下防護(hù)墻,是否有開放端口,或使用命令 netstat -ntulp 查看端口是否被占用。
2.3 進(jìn)入 Jenkins
首次進(jìn)入 Jenkins 需要輸入管理員密碼,使用以下命令查看初始密碼:cat /var/lib/jenkins/secrets/initialAdminPassword
選擇默認(rèn)的install suggested plugins安裝插件,等待安裝完成后依照步驟創(chuàng)建用戶,創(chuàng)建完成后即可登入。
2.4 配置 Jenkins
進(jìn)入Manage Jenkins->Global Tool Configuration,依次配置 JDK、Git 和 Maven 路徑。
2.4.1 查看 JDK 路徑
使用 yum 安裝的軟件不會(huì)幫我們配置環(huán)境變量,直接使用命令echo $JAVA_HOME 是看不到路徑的。
先用以下命令查看路徑:which java
看到的結(jié)果是 /usr/bin/java ,但實(shí)際上這只是個(gè)軟連接,并不是 JDK 真正的所在目錄。
繼續(xù)使用以下命令查看:ls -l /usr/bin/java
看到 /usr/bin/java 指向了 /etc/alternatives/java,很遺憾,還不是我們要找的真正路徑。
繼續(xù)追蹤:ls -l /etc/alternatives/java
結(jié)果指向了/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java,不同版本的 JDK 目錄名可能有些不同,這就是 JDK 真正所在的地方。
同理可獲得 Maven 的所在路徑。
2.4.2 安裝和配置插件
進(jìn)入Manage Jenkins->Manage Plugins,搜索并安裝Publish Over SSH和Maven Integration兩個(gè)插件,Git Plugins插件已經(jīng)默認(rèn)安裝上了,我們無需再安裝。
配置 SSH 免密碼登錄
在配置插件之前,我們先在 Jenkins 服務(wù)器上生成密鑰對(duì)。運(yùn)行以下命令切換到 jenkins 用戶:sudo su jenkins
如果無法切換,則打開 /etc/passwd 文件,找到 jenkins 那一行,將 /bin/fasle 改成 /bin/bash。
切換成功后,命令提示符的用戶名可能是 bash-4.2$,想要正常顯示用戶名的話,先切換回 root 用戶,執(zhí)行以下操作:
編輯文件 vi ~/.bash_profile
加入語句 export PS1='[u@h W]$'
立即生效 source ~/.bash_profile
再切換到 jenkins 用戶,就顯示正常了。接下來運(yùn)行以下命令生成密鑰對(duì):ssh-keygen -t rsa
一路按回車完成,會(huì)在 /var/lib/jenkins/.ssh/ 目錄下生成 id_rsa 和 id_rsa.pub兩個(gè)文件。
將 id_rsa.pub 文件里的內(nèi)容追加到應(yīng)用服務(wù)器上的 /root/.ssh/authorized_keys 文件末尾,每行一個(gè) key,注意是應(yīng)用服務(wù)器。重啟應(yīng)用服務(wù)器上的 ssh 服務(wù):systemctl restart sshd.service
現(xiàn)在 Jenkins 可以免密碼登錄應(yīng)用服務(wù)器了,以 jenkins 用戶身份運(yùn)行命令來測(cè)試一下:ssh root@<應(yīng)用服務(wù)器地址>
首次連接會(huì)有確認(rèn)提示,輸入 yes 即可。這步很重要,如果第一次沒有手動(dòng)連接確認(rèn),Jenkins 會(huì)連不上。
配置 Public over SSH 插件
進(jìn)入Manage Jenkins->Configure System,填寫Publish over SSH設(shè)置。
Path to key:填寫剛剛生成的 id_rsa 密鑰文件的路徑。
Name:服務(wù)名,隨意填寫。
HostName:應(yīng)用服務(wù)器的 IP 地址或域名。
Username:登錄應(yīng)用服務(wù)器的用戶身份。
Remote Directory:遠(yuǎn)程目錄, 應(yīng)用服務(wù)器上存放應(yīng)用的目錄,Jenkins 會(huì)把應(yīng)用拷貝至此目錄下。請(qǐng)確保此目錄存在。
save~
3. 部署 Maven 項(xiàng)目
點(diǎn)擊 New Item 新建任務(wù),隨意輸入任務(wù)名,選擇 Maven project, ok。
在General,勾選 Discard old builds,可以設(shè)置最多保留構(gòu)建文件多少天,和最多保留多少個(gè)構(gòu)建文件,不然每次構(gòu)建生成的文件都會(huì)保留,占用磁盤空間。
配置遠(yuǎn)程代碼倉(cāng)庫地址,Jenkins 會(huì)從該地址拉取代碼。注意此處如果提示無法讀取倉(cāng)庫,有可能是:
公鑰沒有添加到遠(yuǎn)程代碼服務(wù)器的 authorized_keys 文件里,上面配置 SSH 免登錄是 Jenkins 訪問應(yīng)用服務(wù)器的,Jenkins 訪問代碼服務(wù)器也同樣需要配置,除非應(yīng)用服務(wù)器和代碼服務(wù)器是同一臺(tái)機(jī)器。如果使用碼云或 GitHub 等代碼托管平臺(tái),會(huì)有相應(yīng)的 SSH key 設(shè)置頁。
公鑰已添加到相應(yīng)文件里,但沒有手動(dòng)連接第一次。解決方法很簡(jiǎn)單,以 jenkins 用戶身份手動(dòng) clone 一次倉(cāng)庫,確認(rèn) yes 即可。
勾選Add timestamps to the Console Output,在控制臺(tái)輸出構(gòu)建過程。
填寫 Maven 打包指令,-DMaven.test.skip=true 表示跳過測(cè)試。
勾選Run only if build succeeds,選擇Send files or execute commands over SSH。
接下來就是設(shè)置 build 完之后,把 jar 包從 Jenkins 服務(wù)器拷貝到應(yīng)用服務(wù)器上,并運(yùn)行。
Name:選擇之前創(chuàng)建的服務(wù)。
Source files:maven 打包后生成的 jar 包,即要拷貝到應(yīng)用服務(wù)器運(yùn)行的程序,可填多個(gè),英文逗號(hào)分隔。
Remove prefix:忽略前綴,我們只需要拷貝 target 下的 jar 包,不需要在應(yīng)用服務(wù)器上生成 target 目錄。
Remote directory:目標(biāo)文件夾,會(huì)繼承全局設(shè)置,例如此處會(huì)把 jar 包拷貝到 /usr/local/app/demo 目錄下。
Exec command:拷貝完成后,在應(yīng)用服務(wù)器上執(zhí)行的命令或腳本。
save->build now,構(gòu)建成功后,打開瀏覽器訪問你的站點(diǎn)吧~
4. 總結(jié)
其實(shí)整個(gè)流程不是很復(fù)雜,Jenkins 從遠(yuǎn)程代碼庫拉取代碼 -> 調(diào)用 maven 指令將項(xiàng)目打包 -> Jenkins 將打包好的文件拷貝到遠(yuǎn)程應(yīng)用服務(wù)器 -> 在遠(yuǎn)程應(yīng)用服務(wù)器上執(zhí)行 shell 指令,啟動(dòng)程序。其中 Jenkins 兩次遠(yuǎn)程操作都是通過 SSH 完成的。
通過 yum 安裝 Jenkins 和 Java 比較方便,但是在配置的時(shí)候相對(duì)麻煩,安裝路徑要自己找,配置 SSH 的時(shí)候也是要用 jenkins 用戶身份,而不是 root,如果采用解壓縮包的方式就比較自由一些。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,
- DELL R710服務(wù)器安裝配置centos服務(wù)器系統(tǒng)的方法
- 華為發(fā)布服務(wù)器處理器鯤鵬920:7nm工藝 號(hào)稱性能最高
- Windows Server 2019 服務(wù)器系統(tǒng)安裝圖文教程
- nginx服務(wù)器配置多個(gè)虛擬主機(jī)vhost的方法示例
- Nginx服務(wù)器中accept鎖的機(jī)制與實(shí)現(xiàn)詳解
- Linux系統(tǒng)服務(wù)器下Nginx支持ipv6配置的方法
- Linux服務(wù)器下 php7安裝redis的方法
- Vue.js請(qǐng)求JSON Server服務(wù)器數(shù)據(jù)的實(shí)現(xiàn)方法
- NVIDIA GPU服務(wù)器升級(jí):16塊450W Tesla V100
- 組裝一臺(tái)私人云存儲(chǔ)主機(jī)配置推薦 家庭NAS云存儲(chǔ)服務(wù)器
DELL R710服務(wù)器安裝配置centos服務(wù)器系統(tǒng)的方法
寫這篇文章的時(shí)候剛剛給一臺(tái)DELL R710安裝完系統(tǒng)。第一次給服務(wù)器安裝系統(tǒng)。文章不會(huì)詳細(xì)描述安裝過程,網(wǎng)上有很多。只會(huì)描述我所遇到的問題?! ∑鋵?shí)服務(wù)器無外乎大了...
華為發(fā)布服務(wù)器處理器鯤鵬920:7nm工藝 號(hào)稱性能最高
1月7日,華為在深圳推出ARM-based處理器-鯤鵬920(Kunpeng 920),以及基于鯤鵬920的TaiShan服務(wù)器、華為云服務(wù)。華為稱鯤鵬920為目前業(yè)界最高性能處理器。...
Windows Server 2019 服務(wù)器系統(tǒng)安裝圖文教程
Windows Server 2019是由微軟(Microsoft)官方推出的最新版服務(wù)器版操作系統(tǒng),該系統(tǒng)基于Win Server 2016開發(fā)而來,后者是微軟迄今為止普及速度最快的服務(wù)器系統(tǒng)。WinServer...
nginx服務(wù)器配置多個(gè)虛擬主機(jī)vhost的方法示例
文章主要介紹了nginx配置多個(gè)虛擬主機(jī)vhost的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧在nginx下配置虛擬主機(jī)vhost非常方便。主要...
Nginx服務(wù)器中accept鎖的機(jī)制與實(shí)現(xiàn)詳解
文章主要給大家介紹了關(guān)于Nginx中accept鎖的機(jī)制與實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,...
Linux系統(tǒng)服務(wù)器下Nginx支持ipv6配置的方法
文章主要介紹了Linux系統(tǒng)下Nginx支持ipv6的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧一、查看現(xiàn)有nginx是否支持ipv6需要執(zhí)行以下命令,...
Linux服務(wù)器下 php7安裝redis的方法
文章主要介紹了Linux下 php7安裝redis的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下安裝redis服務(wù)1 下載redis cd /usr/local/ 進(jìn)入安裝目錄 wget http://dow...
Vue.js請(qǐng)求JSON Server服務(wù)器數(shù)據(jù)的實(shí)現(xiàn)方法
文章主要介紹了Vue.js請(qǐng)求JSON Server服務(wù)器數(shù)據(jù)的實(shí)現(xiàn)方法,需要的朋友可以參考下。由于這里是在之前《vue.js中的vue-resource示例詳解》的基礎(chǔ)上進(jìn)行稍加修改完成的,因而其...
NVIDIA GPU服務(wù)器升級(jí):16塊450W Tesla V100
NVIDIA今天發(fā)布了升級(jí)版的GPU計(jì)算服務(wù)器“DGX-2H”,和上代DGX-2一樣配備多達(dá)16顆Tesla V100 GPU,但熱設(shè)計(jì)功耗從350W開放到450W,性能更上一層樓。Tesla V100是迄今為...
組裝一臺(tái)私人云存儲(chǔ)主機(jī)配置推薦 家庭NAS云存儲(chǔ)服務(wù)器搭建
如今互聯(lián)網(wǎng)上的網(wǎng)盤不斷關(guān)停,越來越覺得網(wǎng)盤不靠譜,有些重要資料放到網(wǎng)盤中,可能面臨著網(wǎng)盤關(guān)停的風(fēng)險(xiǎn),加之網(wǎng)盤用的是別人公司的服務(wù)器,說刪除你的重要文件就刪除,基本沒得商量,不...