Git+Jenkins+docker實現自動部署git拉取代碼部署web服務

Git+Jenkins+docker的持續集成環境構建

工作步驟思路(下圖所示)

1.server1搭建好git倉庫和用docker搭建好docker鏡像倉庫

2.server3用git命令去別的共用倉庫拉取tale的源碼,再上傳到git倉庫

3.server3製作好nginx配置好的docker鏡像(這裏我是用java命令去運行jar包的方式,所以不需要安裝tomcat去支持)

4.server2部署Jenkins,用插件從server1的git倉庫拉取tale的源碼文件,再通過ssh發送到server3

5.server2上的Jenkins使用插件等功能用一個腳本在server3上部署tale博客系統到docker容器裏然後運行容器

注意事項:

1.注意你自己的部署環境,jdk路徑什麼的,按照你的環境修改有的操作裏面的參數,

2.還有是就是Jenkins下載插件版本兼容的問題,我這裏Jenkins的版本是2.238,還有就是jdk跟maven之間的版本兼容問題,可以去網上搜一下它們兼容性

3.Jenkins下載插件的時候有沒有下載成功,這個需要注意一下

環境部署

192.168.11.25:gitlab服務器、docker搭建registry鏡像倉庫

需要安裝的軟件:git、docker

192.168.11.26:Jenkins服務器

需要安裝的軟件:git、jdk、maven、tomcat、jenkins.war

192.168.11.27:git客戶端、web服務器

需要安裝的軟件:git、jdk、docker

一、安裝部署GitLab服務器或者用git構建代碼倉庫服務器還有docker的鏡像倉庫(這裏建議服務器4G內存或者以上):192.168.11.25

注意:我這裏用的是下載git去部署本地代碼倉庫服務器

方法一:GitLab服務器

配置YUM倉庫

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

yum安裝gitlab-ce:yum -y install gitlab-ce

加載配置文件並啓動:gitlab-ctl reconfigure

啓動服務:gitlab-ctl start

啓動服務確定下面的狀態正確(如下圖所示)

其他的服務操作命令

啓動:gitlab-ctl start

關閉:gitlab-ctl stop

重啓:gitlab-ctl restart

重載配置:gitlab-ctl reconfigure

查看狀態:gitlab-ctl status

然後進入該ip地址進行訪問網頁

方法二:git構建本地倉庫

安裝git構建本地倉庫

yum -y install git

mkdir mygit.git

cd mygit.git

git --bare init

下載docker並運行registry鏡像搭建docker鏡像倉庫

yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce-18.09.6

systemctl start docker && systemctl enable docker

docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name rregistry registry

二、客戶端安裝git下載tale項目包,再上傳到gitlab服務器上:192.168.11.27

yum -y install git

生成私鑰傳給gitlab服務器

 ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa [email protected]

下載項目包上傳

mkdir git

cd git

git config --global user.name "admin"

git config --global user.email "[email protected]"

git clone https://github.com/otale/tale.git

git clone [email protected]:/root/mygit.git

用戶和密碼爲登錄時的用戶和密碼

#到克隆的空庫下
cd mygit/
#把下載的項目包裏面的文件拷貝進來
mv ../tale/* ./
#添加當前目錄全部文件提交上傳
git add .
git commit -m "add project tale"
git push origin master

三、安裝配置Jenkins服務器:192.168.11.26

1.安裝配置好jdk

tar zxf jdk-8u91-linux-x64.tar.gz

mv jdk1.8.0_91 /usr/local/jdk1.8

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

source /etc/profile

查看java版本查看是否安裝成功:java -version

2.安裝配置maven

tar zxf apache-maven-3.6.3-bin.tar.gz

mv apache-maven-3.6.3 /usr/local/maven3.6.3

vim /etc/profile

export MAVEN_HOME=/usr/local/maven3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

source /etc/profile

查看是否安裝成功:mvn -v

3.安裝配置好tomcat

tar zxf apache-tomcat-8.5.55.tar.gz

mv apache-tomcat-8.5.55 /usr/local/tomcat8

/usr/local/tomcat8/bin/startup.sh

訪問網頁8080端口查看是否安裝成功(如下圖)

4.部署Jenkins到tomcat

下載jenkins.war文件把它移動到安裝tomcat的webapps目錄下(我這裏的目錄路徑是/usr/local/tomcat8/webapps/)

mv jenkins.war /usr/local/tomcat8/webapps/

到安裝tomcat的webapps目錄下用工具安裝

cd /usr/local/tomcat8/webapps/

java -jar jenkins.war --httpPort=8080

然後訪問網頁8080端口的jenkins目錄(如下圖)

系統管理—》插件管理—》高級

配置站點源(如下圖)

http://updates.jenkins.io/update-center.json

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

這兩個網址都可以,點擊提交再立即獲取

然後點擊可選插件搜索插件進行下載安裝

系統管理—》插件管理—》可下載鏡像

需要下載的插件

Localization: Chinese (Simplified)

Maven Integration plugin

Publish Over SSH

Git client

Git Parameter

5.下載git工具(因爲需要去服務器下拉代碼)

yum -y install git

6.最好做下其他兩臺計算機的免密登錄(這裏在Jenkins網頁配置上也會做)

 ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa [email protected]

ssh-copy-id -i /root/.ssh/id_rsa [email protected]

四、部署web服務器(這裏用docker實現):192.168.11.27

1.下載安裝docker

yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce-18.09.6

systemctl start docker && systemctl enable docker

2.安裝jdk

tar zxf jdk-8u91-linux-x64.tar.gz

mv jdk1.8.0_91 /usr/local/jdk1.8

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

source /etc/profile

3.安裝unzip(因爲後面打包需要解壓tale.zip把裏面的.jar文件丟到工作目錄中)

yum -y install unzip

4.構建tale鏡像

mkdir docker_tale && cd docker_tale/

vim Dockerfile

FROM centos:7
RUN yum install epel-release -y
RUN yum install nginx supervisor -y && yum clean all
RUN sed -i '47a proxy_pass http://127.0.0.1:9000;' /etc/nginx/nginx.conf
COPY supervisord.conf /etc/supervisord.conf
ENV PATH /usr/local/jdk1.8/bin:$PATH
WORKDIR /tale
CMD ["/usr/bin/supervisord"]

vim supervisord.conf

[supervisord]
nodaemon=true
[program:tale]
command=/usr/local/jdk/bin/java -jar /tale/tale-latest.jar
autostart=true
autorestart=true
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true

docker build -t tale:base .

查看鏡像是否創建成功如下圖

docker tag tale:base 192.168.11.25:5000/tale:base

docker push 192.168.11.25:5000/tale:base

mkdir -p /data/tale

要創建一個/data目錄下面一個tale目錄,因爲後面配置Jenkins的時候會把項目傳到/data目錄下,然後把/data/tale這個目錄映射到docker容器裏面的工作目錄下

五、配置Jenkins:192.168.11.26網頁上配置

系統管理—》系統設置

注意:這裏最好把其他兩臺服務器的ssh都做

系統管理—》Global Tool Configuration

創建一個maven項目進行運行,自動部署到服務器上

這裏是寫的是git倉庫的地址,從哪裏去拖取源碼

這裏跟linux裏的crontab一樣,計劃週期讓Jenkins不斷去git倉庫看代碼是否更新

這裏記得添加clean package

這裏是用ssh寫一個腳本在別的服務器上運行

這裏可以寫腳本去啓動docker把本地的/data/tale目錄映射到docker容器裏的/tale目錄下,因爲上面寫Daockerfile的時候編輯的工作目錄就是docker裏的/tale目錄下,再把外面的jdk映射到docker容器中(腳本內容看下面)

docker rm -f tale-test
unzip /data/tale.zip -d /data/tale/
docker run -itd \
--name tale-test \
-p 80:80 \
-v /usr/local/jdk1.8:/usr/local/jdk \
-v /data/tale:/tale \
192.168.11.25:5000/tale:base

測試:訪問網頁查看是否自動部署完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章