一、环境搭建

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构建集群式的项目测试环境

jenkins + ansible + docker 代码集成发布的更多相关文章

  1. 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)

    使用Jenkins与Docker持续集成与发布NetCore项目(教程一) 原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html 基本环境 该教程的 ...

  2. 【Linux】【Services】【SaaS】Docker+kubernetes(13. 部署Jenkins/Maven实现代码自动化发布)

    1. 简介 Jenkins: 官方网站:https://jenkins.io/ 下载地址:https://jenkins.io/download/ war包下载:http://mirrors.jenk ...

  3. Jenkins+SVN+tomcat持续集成发布

    有代码更新后重新打包到tomcat再发布,是不是很烦? 看了下面的东西你就不会烦了. SVN或者git等代码版本控制工具不说了,如果是本地开发,也可以安装一个svn server端 jenkins下载 ...

  4. Jenkins+.Net Core+Git集成发布 - SkyMallCore快速开发平台

    准备工作:安装 Jenkins+java 直接百度安装,在此忽略 dotnet sdk(iis部署已经安装) 一:windows 部署到IIS 首先搭建IIS,站点应用程序池选择 ‘无托管代码’ 安装 ...

  5. git+jenkins jar包代码的发布加新建项目

    1.本地仓库  java开发 把代码上传上来 ,问一下他要上传到的主机ip , 分支 2.本地 , 设置-->仓库 更新数据,让他同步到南阳gitlab, 若没有这个项目,需要创建相同名字的项目 ...

  6. asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

    运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...

  7. jenkins+maven+docker集成java发布(一)自动发布

    JAVA项目持续集成发布 标签(空格分隔): java jenkins 微服务中持续集成自动发布是很重要的一个环节,将不同的模块应用自动部署到一台或者N台服务器中如果采用人工部署的方式不太现实 git ...

  8. 使用Docker搭建Jenkins+Docker持续集成环境(自动化构建发布部署)

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

  9. jenkins+maven+docker集成java发布(二)#远程发布

    jenkins+maven+docker集成java发布(一)中写了在Jenkins服务器自动部署业务,那需要将java项目部署到其他服务器怎么操作 这里需要依赖插件Publish Over SSH ...

随机推荐

  1. where T : class泛型类型约束

    类型参数约束,.NET支持的类型参数约束有以下五种: where T : struct | T必须是一个结构类型where T : class T必须是一个类(class)类型where T : ne ...

  2. 《Java并发编程实战》文摘

    更新时间:2017-06-03 <Java并发编程实战>文摘,有兴趣的朋友可以买本纸质书仔细研究下. 一 线程安全性 1.1 什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何 ...

  3. FTP上传(批处理)

    将以下内容保存为名为ftp_upload.txt的文件: open 192.168.11.199testw\adadminboc.123binaryput e:\wt.zipbye 在命令提示符下运行 ...

  4. Qt Mysql驱动编译过程

    1.首先当然是要有VS2008+Qt4.7的开发环境. 2.安装MySQL,最好是4以后的版本,安装MySQL时要勾住“C Include Files 和 Lib Files”选项,这样才能装上MyS ...

  5. CSMA/CD 3

    一.二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据. 目的:重传时再次发生碰撞的 ...

  6. 深入浅出SharePoint——Caml快速开发

    适用于Visual Studio 2010的Caml智能感知工具 http://visualstudiogallery.msdn.microsoft.com/15055544-fda0-42db-a6 ...

  7. [NOIP 2011] 聪明的质检员

    聪明的质检员 描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是:1.给定m个区间[Li,Ri ...

  8. 四种Timer的区别和用法

    1.System.Threading.Timer 线程计时器 1.最底层.轻量级的计时器.基于线程池实现的,工作在辅助线程. 2.它并不是内在线程安全的,并且使用起来比其他计时器更麻烦.此计时器通常不 ...

  9. [T-ARA][괜찮아요][没关系]

    歌词来源: 没关系:http://music.163.com/#/song?id=22704448 没关系(Remix Ver.):http://music.163.com/#/song?id=258 ...

  10. 坑之OJ-玄学、不可抗力

    自家学校OJ网站上的题目,很玄学,不知道哪里出的问题. 这个OJ链接的题目没有问题的. https://www.luogu.org/problemnew/show/P1981 #include < ...