目錄
1、配置git主機
2、配置jenkins主機
3、配置web主機
4、新建Maven項目
5、驗證 Jenkins 自動打包部署結(jié)果
Jenkins 的工作原理是先將源代碼從 SVN/Git 版本控制系統(tǒng)中拷貝一份到本地,然后根據(jù)設(shè)置的腳本調(diào)用Maven進行 build(構(gòu)建)。整個系統(tǒng)的關(guān)鍵就是 build 腳本,build 腳本告訴Jenkins 在一次集成中需要執(zhí)行的任務(wù)。
?
實驗環(huán)境
操作系統(tǒng) |
IP地址 |
主機名 |
角色 |
CentOS7.5 |
192.168.200.111 |
git |
git服務(wù)器 |
CentOS7.5 |
192.168.200.112 |
Jenkins?git客戶端 |
jenkins服務(wù)器 |
CentOS7.5 |
192.168.200.113 |
tomcat |
web服務(wù)器 |
所有主機關(guān)閉防火墻和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce?0
1、配置git主機
# rpm安裝安裝依賴關(guān)系:1和2都安
[root@gitclient ~]# yum -y install curl-devel expat-devel gettext-devel ?openssl-devel zlib-devel???? 【可能還會缺失部分依賴比如c++可以根據(jù)需要自行安裝】
?
# 編譯安裝—服務(wù)端和客戶端,訪問https://mirrors.edge.kernel.org/pub/software/scm/git/下載所需要的版本
先rz導(dǎo)入git2.22的包
[root@gitclient ~]# tar xf git-2.22.0.tar.gz -C /usr/src/
[root@gitclient ~]# cd /usr/src/git-2.22.0/
[root@git git-2.22.0]# make configure【這一步可能會有以下提示 yum -y install 安裝即可】
[root@git git-2.22.0]# yum -y install gcc-c++ 【安裝c++依賴】
[root@git git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install
[root@git git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin/
[root@git git-2.22.0]# git --version
?
#在git服務(wù)端配置用戶【第一臺】
[root@git ~]# useradd git
[root@git ~]# echo "123456" | passwd --stdin git
[root@git ~]# echo "123456" | passwd --stdin git
創(chuàng)建本地倉庫probe
[root@git ~]# su - git
上一次登錄:四 6月 20 09:46:10 CST 2019pts/0 上
[git@git ~]$ mkdir probe.git
[git@git ~]$ cd probe.git
[git@git probe.git]$ git --bare init
初始化空的 Git 版本庫于 /home/git/probe.git/
[git@git probe.git]$ exit
[root@git ~]# rz??#上傳psi-probe.tar.gz
?
[root@git ~]# tar xf psi-probe.tar.gz
[root@git ~]# git clone git@192.168.200.111:/home/git/probe.git
[root@git ~]# cp -rf psi-probe/* probe/
[root@git ~]# cd probe/
[root@git probe]# git add .
[root@git probe]# git config --global user.email "jialiang@163.com"
[root@git probe]# git config --global user.name "jialiang"
[root@git probe]# git commit -m "all probe"
[root@git probe]# git push origin master
2、配置jenkins主機
添加驗證憑據(jù) :憑證這里添不添加都可以,這個試驗不牽扯到憑證
?
?“添加憑據(jù)”。
?
?
?填寫以上數(shù)據(jù)后,點擊“確定”就可以查看到新增的遠程 web 主機賬號。
?
?
添加 Publish Over SSH 遠程主機
在 Jenkins 首頁中點擊“Manage Jenkins”->“Configure System”->“Publish over SSH”->“SSH Servers”->“增加”選項按鈕,添加 SSH 遠程主機。如圖 3.13 所示,輸入 Name、Hostname、Username 等必要信息后,點擊“高級”選項按鈕->勾選“Use Password authentication,or use a different key”選項->輸入“遠程主機登錄密碼”->“Test Configuration”測試遠程主機配置。測試遠程主機配置成功后點擊“保存”按鈕即可。
?
?
?
?
配置 Maven、JDK、Git 環(huán)境
在 Jenkins 首頁中點擊“Manage Jenkins”->“Global Tool Configuration”->“JDK” ->新增“JDK”,設(shè)置 JDK 別名為”JDK17”。去掉“Install automatically”選項,設(shè)置 “JAVA_HOME”為本案例中 JDK 實際安裝路徑。
/usr/local/java
?
?
?
?
?
在Jenkins安裝maven
?[root@jenkins ~]# tar xf apache-maven-3.5.0-bin.tar.gz
[root@jenkins ~]# mv apache-maven-3.5.0 /usr/local/maven-3.5.0
為maven更換阿里云鏡像站
[root@jenkins ~]# vim /usr/local/maven-3.5.0/conf/settings.xml
#刪除兩個<mirrors>中的所有東西,大概12行,把下面的阿里云鏡像站添加到兩個<mirrors>中
????<mirror>
????????<id>nexus-aliyun</id>
????????<mirrorOf>central</mirrorOf>
????????<name>Nexus aliyun</name>
????????<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
最后達到的效果?
?
?
在“Global Tool Configuration”配置界面中找到 Maven 配置選項,然后點擊“新增 Maven”并設(shè)置別名為“Maven3.5”。
?
Git 配置
[root@jenkins ~]# which git
/usr/bin/git
?
以上全局基本配置完畢后,點擊保存即可完成。
3、配置web主機
[root@tomcat ~]# tar xf apache-tomcat-8.5.40.tar.gz
[root@tomcat ~]# tar xf jdk-8u191-linux-x64.tar.gz
[root@tomcat ~]# mv jdk1.8.0_191/ /usr/local/java
[root@tomcat ~]# mv apache-tomcat-8.5.40 /usr/local/tomcat
[root@tomcat ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
?
[root@tomcat ~]# source /etc/profile
[root@tomcat ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
發(fā)布公鑰給jenkins主機
[root@tomcat ~]# ssh-keygen
[root@tomcat ~]# ssh-copy-id 192.168.200.112
?
【回到j(luò)enkins】
主機Jenkins默認(rèn)用jenkins用戶去連接git,所以用jenkins用戶生成密鑰對,并發(fā)送給git。
[root@jenkins ~]# id jenkins
uid=988(jenkins) gid=982(jenkins) 組=982(jenkins)
?
[root@jenkins ~]# su -s /bin/bash jenkins
bash-4.2$ ssh-keygen
bash-4.2$ ssh-copy-id git@192.168.200.111
bash-4.2$?ssh git@192.168.200.111????????????#登錄測試
bash-4.2$ exit
[root@jenkins ~]# ssh-keygen
[root@jenkins ~]# ssh-copy-id git@192.168.200.111
[root@jenkins ~]# ssh git@192.168.200.111?????????????#登錄測試
?
4、新建Maven項目
在以上配置完成后,回到 Jenkins 首頁,選擇“新建任務(wù)”,然后輸入一個任務(wù)名稱 “probe”,并選中“Maven project”點擊當(dāng)前頁面下方的“確定”按鈕。
?
?
在點擊“確定”按鈕后,選擇“源碼管理”選中“Git”,配置“RepositoriesURL”為
git@192.168.200.111:/home/git/probe.git
?
?
選擇“Build”
clean package -Dmaven.test.skip=true
?
選擇“構(gòu)建后操作“中的“send build artfacts over SSH” “Exec command”中執(zhí)行命令的含義是:在自動部署前先殺掉 Tomcat 進程,然后刪除 war 包,用 scp 遠程拷貝命令將 Jenkins 自動打包好的項目 war 包拷貝到當(dāng)前 Tomcat 應(yīng)用目錄。 然后重啟 Tomcat 。
?
scp 192.168.200.112:/root/.jenkins/workspace/probe/psi-probe-web/target/probe.war?/usr/local/tomcat/webapps/
/usr/local/tomcat/bin/startup.sh
?
以上全部配置完成后,點擊保存即可。然后點擊剛才創(chuàng)建的“probe”->“Build Now” 直至項目構(gòu)建完成。構(gòu)建過程可以在“控制臺輸出”中查看到。
?
?
?
5、驗證 Jenkins 自動打包部署結(jié)果
在web主機上查看 probe 目錄是否被拷貝到/usr/local/tomcat/webapps 目錄下
[root@tomcat ~]# ls /usr/local/tomcat/webapps/
[root@tomcat ~]# ls /usr/local/tomcat/webapps/probe -l
?從以上結(jié)果來看,Jenkins 已把打好的 probe war 包拷貝過來了。
從構(gòu)建后的執(zhí)行命令可以看出,Tomcat 已經(jīng)重新啟動,通過瀏覽器訪問測試 probe 監(jiān)控系統(tǒng)。http://192.168.200.113:8080/probe。
?
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
??<role rolename="manager-gui"/>
??<role rolename="admin-gui"/>
??<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
</tomcat-users> # 在此行前加入上面三行
?
[root@tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<!-- ?<Valve className="org.apache.catalina.valves.RemoteAddrValve"
?????????allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
注釋掉以上內(nèi)容
?
[root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
?
文章來源:http://www.zghlxwxcb.cn/news/detail-666116.html
?至此,Jenkins 自動打包部署完畢文章來源地址http://www.zghlxwxcb.cn/news/detail-666116.html
到了這里,關(guān)于基于Jenkins自動打包并部署Tomcat環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!