[原]Linux環(huán)境-Jenkins實(shí)戰(zhàn)-分布式構(gòu)建-自動(dòng)化持續(xù)集成-自動(dòng)化部署-gitlab-svn-shell啟動(dòng)tomcat

廢話不多說,開始實(shí)施... 一些基本知識(shí)需要自己實(shí)踐完,進(jìn)行自我補(bǔ)充和提高。在下一節(jié)會(huì)介紹原理。

文中所涉及到的linux命令,請按步驟執(zhí)行!創(chuàng)建的文件夾,權(quán)限設(shè)置為最大(可讀寫);

sudo chmod 777 folder-name;

一.Jenkins安裝

1.安裝環(huán)境 jdk+maven+git+tomcat

在這里我要提醒一下,這些安裝環(huán)境是基于依賴于git管理的項(xiàng)目部署必備的(SVN管理也可以),適用于本人所處開發(fā)環(huán)境及大多數(shù)開發(fā)環(huán)境。

1.jdk安裝 v1.8

jdk版本1.7或者1.8都可以,linux 上jdk安裝步驟:

1.新建文件夾

sudo su;//提升root權(quán)限

mkdir /usr/lib/jvm;

2.下載?jdk-8u101-linux-x64.tar.gz 官網(wǎng)中下載,然后上傳到linux服務(wù)器。上傳命令:sudo rz -y;

上傳完成后,解壓縮文件:

sudo tar -zxvf?jdk-8u101-linux-x64.tar.gz ? ?-C ? /usr/lib/jvm;

3.設(shè)置環(huán)境變量

sudo ?vi ?/etc/profile;

打開文件后,在文件的末尾加上以下這些:

#java environment

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

4.設(shè)置系統(tǒng)默認(rèn)的jdk

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_101/bin/java 300;

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_101/bin/javac 300;

5.檢查是否安裝成功:

java ?-version;

2.安裝maven

1.下載 maven包上傳到服務(wù)器:

2.創(chuàng)建文件夾:

sudo mkdir /usr/lib/maven;

3.解壓文件:

sudo tar -zxvf maven-3.9.tar.gz -C /usr/lib/maven;

4.設(shè)置環(huán)境變量:

/etc/profile 為系統(tǒng)變量;~/.bashrc 為用戶變量

sudo vi /etc/profile;

在末尾加入:

#maven environment

export ? ?MAVEN_HOME=/usr/lib/maven/apache-maven-3.9

export ? ?PATH=$MAVEN_HOME/bin:$PATH

5.使文件生效:

sudo source /etc/profile

6.查看是否安裝成功

mvn -v

3.安裝git

1.下載git

可以直接下載git包解壓安裝,具體詳細(xì)git各種環(huán)境操作可以點(diǎn)擊:https://git-scm.com/downloads

這種安裝方式可以參考:http://jingyan.baidu.com/article/e9fb46e16698687521f766ec.html

在centOS5中的yum源中沒有g(shù)it.就需要用之前的方式,在centOS6以上中的yum源有g(shù)it:

sudo yum update;

sudo yum -y install git;

2.查看是否成功

git --version;

3.設(shè)置git

git config --global user.name "your login name";

git config --global user.email "your email@163.com";

設(shè)置完,可以通過 cat ~/.gitconfig ? 查看;

4.設(shè)置ssh-key;

以公鑰認(rèn)證方式訪問SSH協(xié)議的Git服務(wù)器時(shí)無需輸入口令,而且更安全。(訪問HTTP協(xié)議的Git服務(wù)器時(shí),比如提交修改,每次都需要輸入口令)

注意:一定是在root權(quán)限下進(jìn)行得到的ssh公鑰:

sudo su;

ssh-keygen -t rsa -C "your email@163.com";

直接默認(rèn),按回車就可以了;系統(tǒng)會(huì)提示ssh-key的保存位置(一般是~/.ssh目錄)和指定口令。

cd ~/.ssh

ll

cat id_rsa.pub

復(fù)制里面的內(nèi)容;

5.登錄gitlab;

點(diǎn)擊 設(shè)置 選擇ssh key;

將公鑰復(fù)制到sshkey中;

6.測試是否成功:

在服務(wù)器上:

ssh -Tgit@github.com

4.安裝tomcat

1.將tomcat包上傳服務(wù)器,解壓。

這里需要注意的是:

第一,如果我們是利用tomcat啟動(dòng)Jenkins,我們需要將 web項(xiàng)目與Jenkins服務(wù) 的tomcat分開進(jìn)行部署。這是因?yàn)?當(dāng)我們再重新啟動(dòng)部署web項(xiàng)目時(shí),不影響Jenkins的服務(wù)。

注意 修改各個(gè)tomcat中的端口號(hào),避免沖突;

第二,如果我們使用 java -jar ?jenkins.war;則可以不分開部署Jenkins;

5.安裝Jenkins

1.我們下載 Jenkins.war包(版本:2.7.3),上傳到服務(wù)器。

2.將 Jenkins.war 移動(dòng)到Jenkins 所使用的 tomcat中的webapps的目錄下。

sudo mv jenkins.war ?/apache-jenkins-tomcat/apache-tomcat7/webapps

3.啟動(dòng) tomcat:

sudo sh startup.sh

4.訪問:

在瀏覽器中 訪問 : 服務(wù)器ip:port/jenkins

例如:192.168.1.1:8080/jenkins

5.進(jìn)入之后,會(huì)提示你輸入 訪問Jenkins的初始化密碼,并且告訴你了 密碼存放位置,如果沒有找到,就在以下命令中進(jìn)行查找:

訪問開始:如圖

此密碼 在tomcat啟動(dòng)日志里存在,或者 到 sudo cat /root/.jenkins/secrets/initialAdminPassword中 查看。

6.進(jìn)行代理服務(wù)器設(shè)置,因?yàn)樾枰B接外網(wǎng) 進(jìn)行接下來的插件下載與安裝。

輸入遠(yuǎn)程代理服務(wù)器ip 及 端口號(hào)即可,不用密碼;

7.點(diǎn)擊下一步,會(huì)出現(xiàn)兩個(gè)選擇,一個(gè)就是 進(jìn)行推薦的插件下載,一個(gè)就是自主選擇插件下載安裝。此時(shí)選擇第一個(gè)推薦的插件下載安裝。

8.等待插件安裝完成后,下一步就會(huì) 進(jìn)行 用戶登錄的設(shè)置,注冊 用戶名 及密碼。

9.然后下一步,就完成了。進(jìn)入到Jenkins頁面中。

二、Jenkins系統(tǒng)管理

1.接下來,我們需要進(jìn)行給Jenkins系統(tǒng)設(shè)置相關(guān)的參數(shù)及構(gòu)建項(xiàng)目時(shí)所需要的配置。我會(huì) 附上 圖,然后解釋 具體某個(gè)選項(xiàng)什么意思;

1.首先,我們要進(jìn)行插件管理,安裝好我們所需要的插件。

所需要的插件列表:

除了,初始化配置時(shí)候,推薦安裝的插件外,還需要 進(jìn)入到

系統(tǒng)管理-->管理插件-->可選插件 ?:查找 ?1.gitlab相關(guān)插件并安裝; 2.maven相關(guān)插件并安裝; 3.Deploy to container Plugin(此插件 用于 構(gòu)建后部署到 ?tomcat時(shí)候 使用);

4.publish-over-ssh (此插件用于 構(gòu)建部署成功后,在相應(yīng)的服務(wù)器上 進(jìn)行 shell腳本 自動(dòng)化啟動(dòng))。

注意 點(diǎn)擊 直接安裝 publish-over-ssh插件,可能會(huì)失敗,報(bào)錯(cuò)信息:

這是 因?yàn)?訪問限制,因此改為手動(dòng)安裝即可:

解決辦法:

點(diǎn)擊 插件超鏈接 進(jìn)入到 下載界面,

下載 hpi 文件到本地,然后?在系統(tǒng)管理--管理插件--高級--瀏覽-上傳插件即可,如圖:

然后它自動(dòng)上傳并安裝。

完成后,重啟jenkins。

2.系統(tǒng)管理-->系統(tǒng)設(shè)置:

1.下圖中主目錄 是 默認(rèn)的,也可以進(jìn)行配置更改,我不介紹了。

2.

全局屬性中的參數(shù)是解決 構(gòu)建中 出現(xiàn) 的 ‘ssl認(rèn)證失敗’ bug。

Exception Log:

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:

SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while?accessing https://github.com/...

解決方法---參數(shù):GIT_SSL_NO_VERIFY ? = true

3.

gitlab api token的密碼所在位置

4.

5.如果有多個(gè)機(jī)器,可以選擇增加,配置多個(gè)機(jī)器。方法 一樣。

3.全局配置:

系統(tǒng)管理-->Global Tool Configuration :

4.安全配置:

系統(tǒng)管理-->Configure Global Security . 默認(rèn)配置就行。

5.用戶配置:

可進(jìn)行對 用戶 的 增刪改。

6.節(jié)點(diǎn)配置:用于分布式多平臺(tái)測試、構(gòu)建項(xiàng)目。

系統(tǒng)管理-->管理節(jié)點(diǎn):

1.

2.

3.

點(diǎn)擊 launch 按鈕,此時(shí) 服務(wù)器 會(huì)下載 一個(gè) slave.jar 文件,到 遠(yuǎn)程工作目錄。該文件 是用來 master-slave ?之間 進(jìn)行通信的。

在研究配置的過程中,處理時(shí)間最長的問題,就是gitlab配置問題。

在構(gòu)建項(xiàng)目的時(shí)候,總是提示以下異常:

出現(xiàn)異常的原因就是 用戶認(rèn)證證書權(quán)限不正確,所以我們要設(shè)置最高權(quán)限的Jenkins認(rèn)證證書。這樣才能保證不出錯(cuò)誤。

以上就是一個(gè)自己總結(jié)出來的配置說明。

2.以上全部配置完成以后,我們開始構(gòu)建一個(gè)項(xiàng)目。

1.設(shè)置一個(gè)project_name;

2.選擇構(gòu)建 maven 項(xiàng)目;

3.點(diǎn)擊ok,進(jìn)行構(gòu)建項(xiàng)目配置:

以下是構(gòu)建過程中的各個(gè)選項(xiàng)說明:

1.除特別說明標(biāo)記的,畫圓圈的為重點(diǎn)配置介紹,其余可不配置或者默認(rèn)即可。

2.

3.構(gòu)建觸發(fā)器:

4.我們在構(gòu)建之前需要執(zhí)行shell腳本,將原來web項(xiàng)目的war和文件夾刪除。

以下為shell腳本內(nèi)容以及如何使用:

5.構(gòu)建后:因?yàn)槲覀冃枰裧it下來的war包部署到各個(gè)不同服務(wù)器的tomcat中,所有我們用到這個(gè)插件 Deploy ....

我們需要在各個(gè)服務(wù)器中 進(jìn)行tomcat的修改,修改內(nèi)容為:

我們將 修改 tomcat底下的 用戶角色 配置,‘

sudo vi ?/tomcat/conf/tomcat-user.xml

修改為:

然后,重新啟動(dòng)tomcat;

以上配置完成后,我們需要輸入,tomcat 用戶名 密碼,及host

如圖:

4.構(gòu)建成功后:

Jenkins在構(gòu)建成功后,會(huì)把項(xiàng)目生成在Jenkins的workspace中,注意 生成位置是 系統(tǒng)配置中 的 主目錄路徑下,如圖:

是在這個(gè)路徑下。

我們知道了這個(gè)路徑,接下來會(huì)有用,和我們可以了解怎么改變此路徑。可以查閱相關(guān)資料。搜索 ?‘修改Jenkins 工作空間 路徑’。

到此為止,我們構(gòu)建完成,并且部署完成,以上這些步驟,可以完成這些操作:

1.當(dāng)構(gòu)建觸發(fā)器中設(shè)定的規(guī)則 被觸發(fā),我們將進(jìn)行構(gòu)建。

2.構(gòu)建開始時(shí),先將tomcat中的war文件及web項(xiàng)目文件夾刪除。

3.然后將 git clone 項(xiàng)目 到Jenkins的workspace中,把打好的war包 Deploying到 相應(yīng)的tomcat 服務(wù)器的webapps目錄下。

如果不需要 自動(dòng)化執(zhí)行 重啟tomcat命令的話,到此,我們就可以結(jié)束了,接下來我們就可以手動(dòng)重啟tomcat服務(wù)器。然后跳過第5步驟,看第6步驟。

如果你想實(shí)現(xiàn),部署完成后,需要自動(dòng)化執(zhí)行啟動(dòng),那么我們需要如下操作:看第5步驟:

5.點(diǎn)擊 增加構(gòu)建后的步驟按鈕,選擇 ?send build artifacts over ssh:

如下圖:我們進(jìn)行配置:

執(zhí)行shell腳本的內(nèi)容為:

javapid=`ps aux|grep java|grep -v grep|grep apache-datax-7.0.70|awk '{print $2}'`

echo $javapid

if [ ! -n "$javapid" ];then

echo "no java process "

sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh

echo "Tomcat start success"

else

echo "has a java process"

sudo kill -9 $javapid

sleep 5

sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh

echo "Tomcat restart success"

fi

執(zhí)行的思路就是:查看web項(xiàng)目的tomcat進(jìn)程是否存在,不存在,直接重啟。存在,kill掉,然后在重啟。

6.保存項(xiàng)目。

1.點(diǎn)擊立即構(gòu)建,查看日志,會(huì)進(jìn)行g(shù)it clone,然后下載pom文件中所需要的 jar包。

這時(shí)候 我們要注意 maven所需要的 setting.xml配置文件,要和你本地eclipse中使用 的setting文件一致,因?yàn)橐话愎径紩?huì)有 自己 maven倉庫。這樣才能依賴到各個(gè)jar包。

2.如果在構(gòu)建過程中,報(bào)了 執(zhí)行 shell腳本異常,錯(cuò)誤原因是:

那么,我們需要 修改 tomcat的 catalina.sh文件。

sudo vi /tomcat/bin/catalina.sh

將 JAVA_HOME=/jdk_path

加入到這個(gè)文件中,然后保存,重啟tomcat。

3.到此,我們就成功完成Jenkins全部部署了。

4.異常信息:

如果出現(xiàn)這個(gè)錯(cuò)誤,就是 tomcat-user.xml配置文件的角色問題,查看前面配置說明。

當(dāng)然還有許多Jenkins的功能沒有進(jìn)行說明,先不做一一介紹。如果有問題,可以直接留言。

這些是真實(shí)實(shí)踐出來的結(jié)果,希望大家支持,共同反饋,共同進(jìn)步。轉(zhuǎn)載請說明出處。

附加資料:

文件權(quán)限配置說明:

http://blog.chinaunix.net/uid-25052030-id-174343.html

linux添加用戶,修改用戶權(quán)限說明:

http://www.cnblogs.com/daizhuacai/archive/2013/01/17/2865132.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容