zoukankan      html  css  js  c++  java
  • 来一篇最全的自动化运维部署文档

    本次搭建环境  svn + Jenkins + Docker + git + Rancher + Maven

    服务器配置,根据个人爱好分配服务器,只需要拓扑图中相邻的两个服务器保证通信即可,也可以放在一台服务器中

    上拓扑图

    跟着我的思路来一遍:

      1、开发写代码,上传到svn服务器上,相信这个很容易理解。

      2、使用Jenkins 拉取svn 代码,并结合maven插件转换成jar or war包,之后使用Jenkins 的shell做到把包做到Docker镜像中,然后自动上传到Docker仓库中。

      3、Docker 仓库就是一个存放镜像的地方,供Jenkins 上传 ,供Rancher 下载。

      4、Rancher 管理工具,是一个Docker 集群管理工具,他可以做到容器的创建,升级,回滚,发布,等等。

      备注:全自动化是只要开发提交代码,打包-->制作Docker镜像-->上传到仓库-->用Rancher 自动升级-->发布开发环境

    下面来写具体步骤:

      1、开发写代码,并如何上传svn服务器,我就略过了,相信不是各位Linux 运维工程师的事情,无需操心。

      2、使用Jenkins 拉取svn 代码,并结合maven插件转换成jar or war包,之后使用Jenkins 的shell做到把包做到Docker镜像中,然后自动上传到Docker仓库中。

        2.1、安装Jenkins+maven+Docker

            请参照我之前写的博客:http://www.cnblogs.com/RedHat-Linux/p/6929441.html

        2.2、创建一个项目

            在浏览器输入http://ip:port进入Jenkins首页,左上角有一个新建图标,点击新建

            如图:从左往右查看,Jenkins 只需要配置源码管理,书写shell即可,其他皆属于高级管理,自行研究。

       

       3、Docker 仓库就是一个存放镜像的地方,供Jenkins 上传 ,供Rancher 下载。

        3.1、安装Docker https+密码认证 私有仓库 

            第一步,安装Docker ,上面有讲过

            第二步、搭建所需工具,材料:

                     证书domain.crt

                          Domain.key获取路径购买https 证书网站

                   安装Docker 的操作系统(Centos 7 or RedHat 7)

                     私有仓库镜像registry:2.4.1

                          获取途径  docker pull registry:2.4.1

           第三步、详细搭建步骤      

              创建文件夹

                          mkdir /certs(放置证书)

                          mkdir /registry (放置仓库里面的镜像位置data)

                          mkdir /auth (放置密码)

                 每个Docker守护进程添加信任证书

                mkdir -p /etc/docker/certs.d/FQDN:5000

              将domain.crt文件复制到 /etc/docker/certs.d/FQDN:5000/ca.crt

              启动Docker 仓库容器

                  docker run -d -p 5000:5000 --restart=always --name registry

                  -v /registry:/var/lib/registry

                  -v /auth:/auth

                  -e "REGISTRY_AUTH=htpasswd"

                  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"

                  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd

                  -v /certs:/certs

                  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt

                  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key

                  registry:2.4.1

              为仓库设置密码

                  docker run --rm --entrypoint htpasswd registry:2.4.1 -Bbn 用户名 密码> /auth/htpasswd

           附加参考:     

             Docker 仓库常用命令

               登录

                      docker login FQDN:5000

               上传镜像

                    docker tag 镜像名 FQDN:5000/镜像名

                    docker push FQDN:5000/镜像名

                    下载镜像

                     docker pull FQDN:5000/镜像名= 

             Docker 镜像制作(Dockerfile)

                     在一个没有文件的文件夹内创建一个新文件命名规则Dockerfile(固定不可变)

                     例子:(制作JAVA镜像)

                            mkdir /JAVA

                            cd /JAVA

                  touch Dockerfile

                     把所需文件拷贝至此目录(本次我只使用JDK包)

                       cp /usr/local/src/JAVA.tar.gz /JAVA

                       vim Dockerfile

                               

                  保存退出            

                  使用docker build -t 镜像名 /JAVA

                Dockerfile 常用参数

                       FROM           他的妈妈是谁(基础镜像)

                       MAINTAINER  告诉被人,你创造了他(维护者信息)

                       RUN              你想让他干啥(把命令前面加上RUN)

                       ADD             相当于cp命令(COPY文件,会自动解压)

                       WORKDIR             相当于cd命令(当前工作目录)

                       VOLUME       给我一个放行李的地方(目录挂载)

                       EXPOSE         我要打开的门是啥(端口)

                       RUN              奔跑吧,兄弟!(进程要一直运行下去) 

      4、Rancher 管理工具,是一个Docker 集群管理工具,他可以做到容器的创建,升级,回滚,发布,等等。

        4.1、搭建Rancher

           sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable

        4.2、管理Rancher 管理地址:http://IP:8080

          添加管理主机

          

     

    都是字面意思,自己理解,添加服务

    里面参数自行百度,因为都是字面意思,超简单,所以我不在这里描述了。

    好文要顶 关注我 收藏该文
    0
    0
     

    « 上一篇:实现ssh 免密钥认证

    http://www.cnblogs.com/RedHat-Linux/p/7149853.html

  • 相关阅读:
    MySQL基础之 逻辑运算符
    MySQL基础之 如何删除主键
    MySQL基础之 AUTO_INCREMENT
    MySQL基础之 支持的数据类型
    TiDB数据库集群安装以及注意事项
    PgSQL基础之 pgsql与mysql的简单区别
    PgSQL基础之 安装postgresql数据系统
    SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-003-示例项目用到的类及配置文件
    SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-002-Controller的requestMapping、model
    SPRING IN ACTION 第4版笔记-第五章Building Spring web applications-001-SpringMVC介绍
  • 原文地址:https://www.cnblogs.com/seasonzone/p/7795582.html
Copyright © 2011-2022 走看看