zoukankan      html  css  js  c++  java
  • 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构建集群式的项目测试环境

  • 相关阅读:
    使用QOAuth来进行新浪/腾讯微博验证(二)
    很不错的Utility库,C#4扩展 各种功能齐全,两行代码搞定图片转字符
    使用QOAuth来进行新浪/腾讯微博验证(一)
    可怜的小猪&香农熵
    消息队列MQ如何保证消息不丢失
    40 亿个 QQ 号码如何去重,bitmap去重
    参数的设置
    自动化测试的十个要点
    LR学习中的一个低级错误
    Windows下用CMake编译libuv
  • 原文地址:https://www.cnblogs.com/mushou/p/9713741.html
Copyright © 2011-2022 走看看