jenkins + ansible + docker 代碼集成發布


一、環境搭建

1. 安裝Java

配java_home, /etc/profile

2.安裝Jenkins

下載war包,用 Java -jar  Jenkins.war或者  把war包放tomcat的webapps下

http://ip:8080或者 http://ip:8080/jenkins

3.安裝ansible

使用Python安裝

先安依賴yum -y install gcc gcc-c++ openssl-devel openssl

下載Python包

tar xf Python-3.5.2.tgz -C /usr/src/

cd /usr/src/Python-3.5.2/

./configure --prefix=/usr/local/python/

make && make install

ln -s /usr/local/python/bin/python3 /usr/bin/python3

/usr/local/python/bin/pip3 install ansible

ln -s /usr/local/python/bin/ansible /usr/local/bin/

4.設置主機無密登錄及hosts文件設置

mkdir -p /etc/ansible

vim /etc/ansible/hosts

cat /etc/ansible/hosts   #ansible主機管理配置文件

[nginx]         #被管理的主機組名稱,比如nginx

webA ansible_ssh_host=192.168.200.132 ansible_ssh_port=22 ansible_ssh_user=root #第一台主機

webB ansible_ssh_host=192.168.200.138 ansible_ssh_port=22 ansible_ssh_user=root  ansible_ssh_pass=666666    #第二台主機

如果我們已經設置了ssh免密鑰了。那么就不需要寫密碼了。例如:webA
我們要是沒有設置免密鑰,那么就需要安裝sshpass工具,並在/etc/ansible/hosts文件里寫上主機的連接密碼。例如webB

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum -y install sshpass

二、配置私有docker容器倉庫

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

vim /etc/docker/daemon.json,添加(在每一個客戶機上同樣要進行這一步驟)

{"insecure-registries":["192.168.1.30:5000"]},其中ip地址為設置為私有倉庫服務器的IP地址

#重啟服務

systemctl restart docker

三、配置Jenkins

1.安裝插件 ansible

2.創建項目

3.在構建中,添加ansible  command

因為是測試,而且代碼拉取打包涉及到開發使用ant打包工具,其中會使用build.xml文件,我不方便取得,所以我們采取了簡化方式,加入我們已經取得了war包,我們簡化拉取,打包為war包的步驟,為了構建docker鏡像,我們采用ansible 把需要打包到tomcat中的war包和要生成鏡像的dockerfile文件發給需要部署的服務器。

其中dockerfile 文件為docker.tomcat,

from tomcat:8
expose 8080
add ~/docker/SmartMarket115c1.war  /usr/local/tomcat/webapps/
cmd ['catalina.sh','run']

同時在jenkins 的系統管理  -   管理插件 -  更新 Publish over SSH

在上圖中配置好你要操作的遠程服務器

回到項目構建,在構建步驟添加

在Exec  command 中填寫你在遠程服務器需要執行的腳本內容,

docker build -t tomcat_test -f ~/docker/docker.tomcat

其中 tomcat_test  為要構建的鏡像名字,  docker.tomcat 為dockerfile 文件的路徑及名字

同時構建完成后我們在遠程服務器啟動容器,開放8080端口,

docker run -d -p 8080:8080 --name tomcat_test  tomcat_test

我們在瀏覽器就可以訪問 ip:8080/項目名,來訪問我們已經在遠程服務器上部署好的項目了。

以上 只是我的一些初步測試,后續我會結合k8s構建集群式的項目測試環境

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM