国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

解放雙手 | Jenkins + gitlab + maven 自動(dòng)打包部署項(xiàng)目

JouyPub / 2334人閱讀

摘要:什么是可以簡單地理解為可以代替你實(shí)現(xiàn)自動(dòng)從拉取代碼,打包,部署到遠(yuǎn)程服務(wù)器的工具。隨后登錄后發(fā)現(xiàn)頁面空白,沒找到具體原因,重啟下容器后再登錄就好了。主要是配置訪問服務(wù)器拉取代碼,還有配置遠(yuǎn)程服務(wù)器地址,目的是為了打包后上傳文件到遠(yuǎn)程服務(wù)器。

前言

記錄 Jenkins + gitlab + maven 自動(dòng)打包部署后端項(xiàng)目詳細(xì)過程!

需求背景

不會偷懶的程序員不是好碼農(nóng),傳統(tǒng)的項(xiàng)目部署,有時(shí)候采用本地手動(dòng)打包,再通過ssh傳到服務(wù)器部署運(yùn)行,這種方式對于單應(yīng)用部署還算可以,不會耗費(fèi)太大時(shí)間,但假如分布式項(xiàng)目,拆分為多個(gè)微服務(wù)部署,那么每個(gè)服務(wù)都打包部署一遍,發(fā)布上線可能會耗時(shí)非常久,Jenkins + gitlab + maven 可以實(shí)現(xiàn)自動(dòng)打包,部署到遠(yuǎn)程服務(wù)器~

什么是gitlab

程序員肯定都懂的,跟gayhub一樣的東西,可以在內(nèi)網(wǎng)自己搭建一套來管理項(xiàng)目代碼。

什么是Jenkins

可以簡單地理解為可以代替你實(shí)現(xiàn)自動(dòng)從gitlab拉取代碼,打包,部署到遠(yuǎn)程服務(wù)器的工具。

環(huán)境準(zhǔn)備

Centos7 64位,內(nèi)核版本不低于 3.10

安裝 docker ,具體參考 這是一次 docker 入門實(shí)踐

使用docker安裝gitlab

gitlab的安裝這里不做過多記錄,可以參考以下內(nèi)容:

https://www.cnblogs.com/zuxin...

https://hub.docker.com/r/begi...

使用docker安裝Jenkins
docker run --name jenkins --privileged=true -d -v /home/docker/data/jenkins_home:/var/jenkins_home -p 8090:8080 -p 50000:50000 jenkins/jenkins:lts

參數(shù)解析:

--name jenkins:指定 Jenkins 容器名稱

--privileged=true:防止docker容器沒有權(quán)限

-d:容器在后臺啟動(dòng)

-v /home/docker/data/jenkins_home:/var/jenkins_home:將容器的/var/jenkins_home 映射到本機(jī)的/home/docker/data/jenkins_home目錄,為了便于管理Jenkins容器的數(shù)據(jù),需要注意的是,掛載出來的目錄允許我們往容器里面添加文件或者目錄,也就是在/home/docker/data/jenkins_home:/var/jenkins_home中添加的文件或者目錄都會被映射到容器目錄/var/jenkins_home,那么我們最終在Jenkins中配置軟件環(huán)境時(shí)應(yīng)當(dāng)使用容器目錄路徑,因?yàn)?b>Jenkins實(shí)際上是在容器中跑的,比如JDK家目錄,你放在/home/docker/data/jenkins_home/jdk_home,那么最終配置應(yīng)當(dāng)寫成/var/jenkins_home/jdk_home

-p 8090:8080 -p 50000:50000:將容器的8080端口映射到本機(jī)的8090端口,5000端口映射為5000端口

jenkins/jenkins:lts:指定鏡像名稱跟 tag

可能會踩的坑:

chmod 777 /home/docker/data/jenkins_home
chown -R 1000  /home/docker/data/jenkins_home

至此,Jenkins已經(jīng)部署好了,然而....折騰才剛剛開始...

Jenkins基礎(chǔ)配置

訪問http://192.168.2.219:8090打開Jenkins首頁如下圖:

按照界面提示,為了管理員安全地設(shè)置Jenkins,已將密碼寫入日志文件:/var/jenkins_home/secrets/initialAdminPassword,提示寫的是Jenkins容器中的文件,映射到本機(jī)文件則是/home/docker/data/jenkins_home/secrets/initialAdminPassword,復(fù)制文件中的文本,輸入,點(diǎn)擊繼續(xù)...滴滴滴~掉坑里了。

如果不出意外的話,這里有個(gè),上一步之后會一直卡在如下圖所示的加載界面:

這是怎么肥事? 原來Jenkins在啟動(dòng)的時(shí)候,請求Google,檢查當(dāng)前機(jī)器是否可以聯(lián)網(wǎng),在請求/home/docker/data/jenkins_home/updates/default.json 中存在如下數(shù)據(jù):

而由于天朝的網(wǎng)絡(luò)原因,請求Google失敗,則一直卡住,解決辦法是修改為www.baidu.com即可解決。

選擇下載推薦的插件,還是自選插件,這里我選擇下載推薦的插件,然后進(jìn)入下載loading

創(chuàng)建管理員賬號

配置Jenkins 資源 url,使用默認(rèn)即可

至此,Jenkins 基礎(chǔ)配置完成,開始使用。隨后登錄Jenkins后發(fā)現(xiàn)頁面空白,沒找到具體原因,重啟下Jenkins 容器后再登錄就好了。

Jenkins插件安裝

Jenkins插件安裝的步驟為:系統(tǒng)管理-->插件管理.. 相信聰明的你一定知道怎么安裝了。我們需要安裝的插件如下:

Maven項(xiàng)目插件:Maven Integration plugin,這個(gè)插件可以讓我們創(chuàng)建一個(gè)maven構(gòu)建任務(wù)

ssh傳輸工具插件:Publish Over SSH 項(xiàng)目打包完成后,使用這個(gè)插件,通過ssh的方式傳輸?shù)竭h(yuǎn)程服務(wù)器

Gitlab插件:允許Jenkins訪問gitlab服務(wù)器,拉取代碼

全局工具配置

系統(tǒng)管理-->全局工具配置,安裝一些打包必須的配置環(huán)境,如 jdkmavengitmaven

安裝git客戶端:

下載

#下載 git
yum update
yum install git

# 配置用于拉取gitlab代碼的用戶名和郵箱
git config --global user.name "yourname"
git config --global user.email "youremail"

配置公鑰

生成ssh秘鑰, 首先查看是否已經(jīng)有ssh秘鑰:

cd ~/.ssh`

如果沒有則提示沒有此文件夾, 此時(shí)手動(dòng)生成秘鑰:

ssh-keygen -t rsa -C “youremail”

連續(xù)按三次回車,生成id_rsaid_rsa.pub文件夾,查看公鑰文件內(nèi)容:cat id_rsa.pub,復(fù)制公鑰到gitlab配置ssh key.

測試

ssh -T git@192.168.2.219

如下結(jié)果表示配置成功:

The authenticity of host "192.168.2.210 (192.168.2.210)" can"t be established.
RSA key fingerprint is SHA256:7oKBkxcwp5naXUzohvjPwEJsow6Y/pF1fSpWFZPVscA.
RSA key fingerprint is MD5:9c:a1:39:7c:2c:6c:d0:a2:4b:e8:8d:3a:73:6e:c9:c1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added "192.168.2.210" (RSA) to the list of known hosts.
Welcome to GitLab, jenkins_easywits!

最終配置如下圖:

安裝 jdk:

如圖:

安裝maven:

如圖:

添加憑據(jù)

憑據(jù)是為了訪問Gitlab拉取代碼使用的,分別創(chuàng)建三個(gè)憑據(jù):賬號密碼類型,api token訪問類型,git私鑰訪問類型,總體配置如下圖:

解析:

賬號密碼類型憑據(jù),只需要上gitlab創(chuàng)建一個(gè)賬戶,同時(shí)這個(gè)賬戶擁有訪問項(xiàng)目倉庫的權(quán)限即可。

api token類型則是使用上述步驟創(chuàng)建的賬戶登錄GitLab,去生成一個(gè)訪問令牌,如下圖:

git私鑰訪問類型,拷貝git客戶端私鑰配置即可,如下圖:

全局系統(tǒng)配置

系統(tǒng)管理-->系統(tǒng)配置。。主要是配置訪問GitLab服務(wù)器拉取代碼,還有配置`ssh`遠(yuǎn)程服務(wù)器地址,目的是為了打包后上傳文件到遠(yuǎn)程服務(wù)器。

GitLab配置如下圖,使用git api token依據(jù)訪問:

ssh遠(yuǎn)程服務(wù)器配置如下圖,主要配置遠(yuǎn)程主機(jī)名,主機(jī)ip,用戶名/密碼,還有遠(yuǎn)程根目錄從/開始:

至此,所有配置完成,可以創(chuàng)建構(gòu)建任務(wù)了。

實(shí)戰(zhàn)場景,自動(dòng)部署web項(xiàng)目

創(chuàng)建一個(gè) maven 構(gòu)建任務(wù)

項(xiàng)目信息描述,指定遠(yuǎn)程連接gitlab

配置構(gòu)建的緩存數(shù)量

拉取遠(yuǎn)程代碼配置

構(gòu)建觸發(fā)器配置

打包配置

打包后操作,配置ssh傳輸?shù)竭h(yuǎn)程服務(wù)器,執(zhí)行遠(yuǎn)程shell腳本

最后保存,點(diǎn)擊構(gòu)建按鈕,即可自動(dòng)打包,并且部署到遠(yuǎn)程tomcat服務(wù)器。遠(yuǎn)程shell腳本如下:

#!/bin/bash
# 配置java環(huán)境變量
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_161 # jdk 根目錄
export JRE_HOME=/usr/java/jdk/jdk1.8.0_161/jre # jre 目錄
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

# 配置tomcat環(huán)境變量
export CATALINA_BASE=/home/wwwroot/easywits-operation/tomcat-easywits-operation
export CATALINA_HOME=/home/wwwroot/easywits-operation/tomcat-easywits-operation
export TOMCAT_HOME=/home/wwwroot/easywits-operation/tomcat-easywits-operation

echo "stopping tomcat_easywits_operation......"
#關(guān)閉tomcat
port=xxxx
#根據(jù)端口號查詢對應(yīng)的pid
pid=$(netstat -nlp | grep :$port | awk "{print $7}" | awk -F"/" "{ print $1 }");
#殺掉對應(yīng)的進(jìn)程,如果pid不存在,則不執(zhí)行
if [  -n  "$pid"  ];  then
    kill  -9  $pid;
fi
#刪除tomcat舊war包
rm -rf /home/wwwroot/easywits-operation/tomcat-easywits-operation/webapps/easywits
rm -rf /home/wwwroot/easywits-operation/tomcat-easywits-operation/webapps/easywits.war
#復(fù)制war包到tomcat/webapps目錄,并重命名
cp /home/wwwroot/easywits-operation/deploy_history/easywits.war /home/wwwroot/easywits-operation/tomcat-easywits-operation/webapps/easywits.war
# 文件名 + 當(dāng)前日期時(shí)間錯(cuò),備份發(fā)布文件包
#DEPLOY_DATE=`date +%Y%m%d%H%M%S`
#DEPLOY_FILE_NAME=easywits-op-server_$DEPLOY_DATE.war
#mv /home/wwwroot/easywits-operation/deploy_history/easywits.war /home/wwwroot/easywits-operation/deploy_history/$DEPLOY_FILE_NAME
rm -rf /home/wwwroot/easywits-operation/deploy_history/*
echo "restarting tomcat_easywits_operation......"
sleep 5
/home/wwwroot/easywits-operation/tomcat-easywits-operation/bin/startup.sh

整個(gè)shell腳本很常規(guī),就是將文件復(fù)制到tomcatwebapp目錄下,并重啟。

部署結(jié)果,看看日志信息如下,表示成功:

提交代碼,自動(dòng)打包部署

當(dāng)gitlab代碼倉庫發(fā)生事件:提交代碼等操作時(shí),觸發(fā)打包部署動(dòng)作

Jenkins配置

GitLab代碼倉庫配置

這樣,當(dāng)推送代碼到指定代碼倉庫時(shí)候就會觸發(fā)自動(dòng)打包部署啦!

總結(jié)

Jenkins 自動(dòng)打包部署操作,理論上跟本地打包部署是一個(gè)道理,該安裝的環(huán)境一個(gè)不能少,只不過可以自動(dòng)化罷了

Jenkins可以做的事情還有很多,配置太多啦,一篇文章也只能做個(gè)引導(dǎo)作用,更多配置還是需要多看

最后

記錄一個(gè)自動(dòng)部署的操作,后續(xù)會不定期更新原創(chuàng)文章,歡迎關(guān)注公眾號 「張少林同學(xué)」!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73044.html

相關(guān)文章

  • React Native項(xiàng)目自動(dòng)打包發(fā)布

    摘要:所以在此給大家分享一下不使用構(gòu)建工具實(shí)現(xiàn)項(xiàng)目自動(dòng)化打包發(fā)布的思路。對于一個(gè)前端項(xiàng)目來說,自動(dòng)化的構(gòu)建是很有必要的,同時(shí)我們也可以通過實(shí)現(xiàn)更多的功能比如代碼檢測,單元測試等等。另外這種思路同樣適用于其他項(xiàng)目等前端項(xiàng)目,等移動(dòng)端項(xiàng)目。 今天這篇文章的目的是在rn項(xiàng)目的構(gòu)建,并不會涉及到rn框架或者使用的講解,說起構(gòu)建,特別是前端構(gòu)建大家應(yīng)該很快會想到webpack、Grunt、 Gulp等...

    desdik 評論0 收藏0
  • 使用jenkins+svn自動(dòng)部署java/vue項(xiàng)目

    摘要:之前發(fā)布代碼需要每次本地打包發(fā)到服務(wù)器重啟等一系列操作,服務(wù)器多了會很繁瑣,使用可以自動(dòng)部署和統(tǒng)一管理,解放人力,擠出很多喝茶時(shí)間。首頁點(diǎn)擊制定項(xiàng)目下三角,點(diǎn)擊立即構(gòu)建即可。 之前發(fā)布代碼需要每次本地打包-->發(fā)到服務(wù)器-->重啟tomcat等一系列操作,服務(wù)器多了會很繁瑣,使用jenkins可以自動(dòng)部署和統(tǒng)一管理,解放人力,擠出很多喝茶時(shí)間。1、下載jenkins.war官網(wǎng)地址 h...

    frontoldman 評論0 收藏0
  • Jenkins實(shí)現(xiàn)前端項(xiàng)目自動(dòng)化集成打包部署

    摘要:原博客地址實(shí)現(xiàn)前端項(xiàng)目自動(dòng)化集成打包部署掘金地址前言以前寫前端項(xiàng)目打包部署,都是手動(dòng)運(yùn)行命令,打包完,然后壓縮,再上傳到服務(wù)器解壓。驗(yàn)證提交代碼,成功自動(dòng)打包部署提交代碼,觀察界面,出現(xiàn)構(gòu)建任務(wù),構(gòu)建完成之后收到郵件通知。 原博客地址:https://yezihaohao.github.io/2017/09/09/Jenkins實(shí)現(xiàn)前端項(xiàng)目自動(dòng)化集成打包部署/掘金地址:https://...

    Guakin_Huang 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<