服務(wù)器使用centos6.5
一胸墙、安裝jenkins
因?yàn)槲矣玫膚in7系統(tǒng),所以下載好后停士,在jenkins.war路徑下,打開(kāi)命令行完丽,使用下面的命令運(yùn)行jenkins向瓷。
java -jar jenkins.war
等jenkins完全運(yùn)行之后,打開(kāi)瀏覽器輸入localhost:8080就可以打開(kāi)下面的窗口舰涌。(有一個(gè)輸密碼的窗口猖任,不記得截圖了,可以在它的路徑下找到密碼瓷耙,然后安裝默認(rèn)的插件)
安裝完插件之后朱躺,就會(huì)讓你創(chuàng)建一個(gè)用戶刁赖,然后就能進(jìn)入工作臺(tái)了。
推薦兩個(gè)插件:Rebuilder和Safe Restart
二长搀、Linux服務(wù)器安裝Java環(huán)境
// 安裝
[root@promote ~] yum -y install java-1.8.0-openjdk-devel
// 驗(yàn)證
[root@promote ~] java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
三宇弛、Linux服務(wù)器安裝并配置git
1.下載git并生成證書(shū)
// 安裝git
[root@localhost ~] yum install git
// 查看git的版本
[root@localhost ~]# git version
git version 1.7.1
// 配置git的用戶名
[root@localhost ~]# git config --global user.name "CodeTiger"
// 配置git的郵箱
[root@localhost ~]# git config --global user.email "18252025311@163.com"
// 生成密鑰文件,一路回車(chē)源请,默認(rèn)生成在/root/.ssh文件夾下
[root@localhost ~]# ssh-keygen -t rsa -C "18252025311@163.com"
2.將git證書(shū)配置到github上枪芒,保證linux服務(wù)器與github聯(lián)通
登陸github,在settings里面
查看公鑰的內(nèi)容谁尸,然后復(fù)制進(jìn)github
[root@localhost .ssh] ls
id_rsa id_rsa.pub
[root@localhost .ssh] vi id_rsa.pub
保存即可舅踪。驗(yàn)證配置是否成功
[root@localhost .ssh] ssh git@github.com
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi stronglxp! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
[root@localhost .ssh]#
四、Linux服務(wù)器安裝Maven
進(jìn)入maven官網(wǎng)良蛮,找到下載
服務(wù)器上進(jìn)行安裝
// 安裝wget
[root@localhost ~] yum -y install wget
// 下載maven
[root@localhost ~] wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.zip
// 安裝unzip命令包抽碌,用于解壓maven
[root@localhost ~] yum install unzip
// 解壓maven
[root@localhost ~] unzip apache-maven-3.6.0-bin.zip
配置maven
// 配置環(huán)境變量,將下面兩行加入文件末尾
[root@localhost ~] vi /etc/profile
export MAVEN_HOME=/root/apache-maven-3.6.0
export PATH=${PATH}:${MAVEN_HOME}/bin
// 重新加載變量文件
[root@localhost ~] source /etc/profile
// 驗(yàn)證maven是否配置成功
[root@promote ~] mvn -version
五决瞳、Linux服務(wù)器配置tomcat
1.安裝tomcat
進(jìn)入官網(wǎng)货徙,復(fù)制下載鏈接
// 下載tomcat
[root@promote ~] wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.zip
// 解壓tomcat
[root@promote ~] unzip apache-tomcat-9.0.13.zip
2.配置tomcat
[root@promote ~] cd apache-tomcat-9.0.13
// 賦予tomcat下面所有文件夾可執(zhí)行權(quán)限
[root@promote apache-tomcat-9.0.13] chmod a+x -R *
// 修改tomcat的端口為8081
[root@promote apache-tomcat-9.0.13] vim conf/server.xml
// 啟動(dòng)tomcat
[root@promote apache-tomcat-9.0.13] bin/startup.sh
輸入ip+端口號(hào)驗(yàn)證tomcat是否啟動(dòng)成功。
六皮胡、Linux服務(wù)器安裝MySQL 5.7
// 檢查系統(tǒng)是否裝有mysql
yum list installed | grep mysql
// 刪除mysql及其依賴
yum -y remove mysql-libs.x86_64
// 給CentOS添加rpm源痴颊,并且選擇較新的源
wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum localinstall mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
// yum -y install yum-utils安裝yum-config-manage命令
yum-config-manager --disable mysql55-community
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql57-community-dmr
yum repolist enabled | grep mysql
// 安裝mysql,竟然有800多兆屡贺。蠢棱。
yum install mysql-community-server
// 啟動(dòng)mysql
service mysqld start
// 設(shè)置mysql開(kāi)機(jī)自啟動(dòng)
chkconfig mysqld on
// 查看初始密碼
vi /var/log/mysqld.log
// 登陸數(shù)據(jù)庫(kù)
mysql -u root -p
// 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';
// Mysql默認(rèn)不允許遠(yuǎn)程登錄,我們需要設(shè)置下烹笔,并且防火墻開(kāi)放3306端口
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxxxxx' WITH GRANT OPTION;
// 配置默認(rèn)編碼為utf8,添加character_set_server=utf8抛丽,init_connect='SET NAMES utf8'
vi /etc/my.cnf
// 重啟mysql
service mysqld restart
使用本地的navicat進(jìn)行測(cè)試能夠連接成功谤职。
七、將Linux注冊(cè)到Jenkins上
進(jìn)入jenkins管理界面亿鲜,在系統(tǒng)管理---->節(jié)點(diǎn)管理界面允蜈,新建節(jié)點(diǎn)
在節(jié)點(diǎn)列表可以看到已經(jīng)添加成功,點(diǎn)擊名稱蒿柳,測(cè)試是否能進(jìn)行連接饶套。
可以看到連接成功
接下來(lái)驗(yàn)證jenkins任務(wù)是否能遠(yuǎn)程運(yùn)行在Linux服務(wù)器上。
新建一個(gè)Jenkins任務(wù)
進(jìn)行任務(wù)構(gòu)建
進(jìn)入任務(wù)查看執(zhí)行結(jié)果垒探,可以看到命令執(zhí)行成功
以上妓蛮,說(shuō)明配置完全正確。
八圾叼、測(cè)試要部署的程序
這里使用github上面的一個(gè)Java小demo作為示例蛤克,部署到Linux服務(wù)器上捺癞。demo地址https://github.com/princeqjzh/order。
把demo下載到本地构挤,里面有sql文件和執(zhí)行部署應(yīng)用的shell腳本髓介。
經(jīng)測(cè)試,demo可以運(yùn)行筋现。(記得修改數(shù)據(jù)庫(kù)的配置)
接下來(lái)就是將修改后的代碼push到github上面唐础。因?yàn)槲以谙螺d的文件夾下面使用git一直push不成功,所以我使用git clone命令重新下了一個(gè)矾飞。
// 這里我使用ssh克隆一直報(bào)錯(cuò)一膨。就換成了https
$ git clone https://github.com/stronglxp/order.git
clone下來(lái)后,直接修改一下數(shù)據(jù)庫(kù)的配置凰慈,把sql文件導(dǎo)入Linux服務(wù)器上(可以使用navicat)汞幢,然后push到github上。(因?yàn)橹霸诒镜剡\(yùn)行過(guò)demo微谓,確認(rèn)沒(méi)有問(wèn)題)
在order文件夾下git bash here
// 查看修改了哪些文件
$ git status
// 將修改的文件加入更新隊(duì)列
$ git add .
// 進(jìn)行commit
$ git commit -m "update mysql configuration"
// 輸入github的用戶名和密碼進(jìn)行push
$ git push
九森篷、Jenkins自動(dòng)化部署任務(wù)開(kāi)發(fā)
自動(dòng)化部署的大致過(guò)程
在項(xiàng)目中,有一個(gè)deploy.sh豺型,這是自動(dòng)化部署的腳本
#!/usr/bin/env bash
#編譯+部署order站點(diǎn)
#需要配置如下參數(shù)
# 項(xiàng)目路徑, 在Execute Shell中配置項(xiàng)目路徑, pwd 就可以獲得該項(xiàng)目路徑
# export PROJ_PATH=這個(gè)jenkins任務(wù)在部署機(jī)器上的路徑
# 輸入你的環(huán)境上tomcat的全路徑
# export TOMCAT_APP_PATH=tomcat在部署機(jī)器上的路徑
### base 函數(shù)
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
}
cd $PROJ_PATH/order
mvn clean install
# 停tomcat
killTomcat
# 刪除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -f $TOMCAT_APP_PATH/webapps/order.war
# 復(fù)制新的工程
cp $PROJ_PATH/order/target/order.war $TOMCAT_APP_PATH/webapps/
cd $TOMCAT_APP_PATH/webapps/
mv order.war ROOT.war
# 啟動(dòng)Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
代碼的意思其實(shí)就是流程圖表達(dá)的意思仲智。
接下來(lái)就去jenkins控制臺(tái)構(gòu)建一個(gè)新任務(wù)
export PROJ_PATH=`pwd`,注意有兩個(gè)點(diǎn)姻氨。不是引號(hào)钓辆,是鍵盤(pán)上波浪線下面那個(gè)符號(hào)。
到此肴焊,任務(wù)創(chuàng)建完成前联,我們可以進(jìn)行構(gòu)建(第一次構(gòu)建很慢,因?yàn)橐耲ar包和初始化maven環(huán)境)
輸入Linux服務(wù)器的ip和端口號(hào)訪問(wèn)該項(xiàng)目娶眷,驗(yàn)證是否部署成功
可以看到似嗤,成功了!届宠!
只要改動(dòng)了代碼烁落,push到github上,只要點(diǎn)擊構(gòu)建任務(wù)豌注,就可以幫你自動(dòng)部署伤塌。也可以設(shè)置完全自動(dòng),只要更新了代碼轧铁,不需要點(diǎn)擊就能自動(dòng)部署每聪,這是以后討論的事情了。