接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程!

实验环境需要准备docker /docker compose

建议大家使用国外的vps学习, 不需要考虑网络/gwf的问题/方便

(本demo搭建在linode上面, 注册可以免费使用2个月)https://www.linode.com/?r=548a820eda1d06ec584ea4b0c72ce02db6f5910c

先clone下代码

Git clone https://github.com/FollowmeTech/jenkins-cicd.git

相关的文件和解释如下:

架构图如下

我们需要依赖 docker register 和 portainer

为此,我们写了一个简单的

register-portainer-docker-compose.yaml文件, 方便快熟演示一件启动

(生产环境中请使用harbor替代docker-register)

docker-compose -f register-portainer-docker-compose.yaml -d 启动

成功启动之后, 我们需要设置portainer的用户名密码

需要登陆下http://ip:9000设置portainer的用户名密码(12345678)

到此, docker register 和portainer就以及搭建完成了!!!

接下来准备启动Jenkins docker镜像

我们需要先修改配置文件docker-compose.ci.env,把相关的信息注入到jenkins-ci中

编辑dev环境下的portainer, docker register相关信息

(Ps: 由于是演示demo, 所以,我们就只配置了dev的相关配置

在真实场景中, 配置好, beta /prod 就可以支持发布到beta和prod相关的环境了)

Docker-compose up -d 启动Jenkins

待Jenkins安装完成之后

登陆http://ip:8080设置Jenkins用户名密码

这个时候不要选择安装任何plugins

我们通过工具来导入plugins, tools文件下面有一个butler用来导入plugins

先设置tools下面的运行权限, 然后执行命令

等待导入完成相关的Jenkins需要使用的插件

Jenkins相关的配置就全部完成了之后

登陆到Jenkins.

---------配置git auth--------

(由于我这里用的是github上的一个demo,所以可以不用配置, 具体大家搜索下配置私有仓库的方式)

---------创建项目------------

选择[]this project is parameterized !

我们需要配合使用git-flow ,和之前配置的docker-compose-ci.env

发布系统可以简化为

”完成了一个功能, 发布到指定的环境”

那么这里就有2个变量

1. 完成的功能, 我们使用分支来解决, 某个分支来承载某个功能

2. 发布到指定的环境, 我们采用环境变量来解决

所以这里要使用两个Jenkins插件, 分别来解决上面的问题

编写execute-shell;

Execute-shell 分成四个部分

1. Build source code

a. 例如donet publish ,npm buid:env… 得到二进制包

2. Build docker image

a. 依赖CHANGELOG ,来生成docker image的版本号

docker build -t $local_docker_image_name .

3. Push docker image to register

a. docker tag $local_docker_image_name $full_docker_image_name

b. docker push $full_docker_image_name

4. Deploy docker by portainer-api

a. python /root/pubtool/main.py

--deploy_env=$env //把相关的部署环境传递进去

--docker_env="ASPNETCORE_ENVIRONMENT=Development" //docker env传递

--node=1 //要部署在portainer的那个节点上!

--container_name="$dockerImgName" //container_name

--docker_image="$local_docker_image_name" //要部署的dockerimage

--net="bridge" //网络模式

--port="6666:80" //网络映射

一切配置完成, 就可以进行build-deploy了

项目发布完成!!!

:

本环境demo:

为了方便大家快熟感受, 我搭建了一个play环境

大家可以向 https://github.com/FollowmeTech/jenkins-cicd-practise 提交代码

再登陆 https://ci.rileme.club ,选择相应的分支进行build发布 (play/123456)

项目发布完成, 快熟预览效果 http://demo.rileme.club

如有感兴趣的同志

也可以加入微信群进行讨论

Ps:招聘中

有兴趣的小伙伴read more(https://github.com/FollowmeTech/hire/blob/master/dotnet.md)

Devops step by step的更多相关文章

  1. Step by step Dynamics CRM 2011升级到Dynamics CRM 2013

    原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...

  2. Step by Step 创建一个新的Dynamics CRM Organization

    原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by st ...

  3. Step by step Install a Local Report Server and Remote Report Server Database

    原创地址:http://www.cnblogs.com/jfzhu/p/4012097.html 转载请注明出处 前面的文章<Step by step SQL Server 2012的安装 &g ...

  4. Step by step Dynamics CRM 2013安装

    原创地址:http://www.cnblogs.com/jfzhu/p/4008391.html 转载请注明出处   SQL Server可以与CRM装在同一台计算机上,也可安装在不同的计算机上.演示 ...

  5. Step by step 活动目录中添加一个子域

    原创地址:http://www.cnblogs.com/jfzhu/p/4006545.html 转载请注明出处 前面介绍过如何创建一个域,下面再介绍一下如何在该父域中添加一个子域. 活动目录中的森林 ...

  6. SQL Server 维护计划实现数据库备份(Step by Step)(转)

    SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server  ...

  7. 转:eclipse以及step into step over step return的区别

    首先来讲一下step into step over step return的区别: step into就是单步执行,遇到子函数就进入并且继续单步执行:(F5) step over是在单步执行时,在函数 ...

  8. [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package

    本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...

  9. EF框架step by step(7)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

随机推荐

  1. python 工具安装

    1. whl文件的安装:pip install 文件名.whl 2. 压缩包中有setup.py的安装:python setup.py install 3. 利用anaconda下载安装:conda ...

  2. springmvc配置详解 教程

    https://www.cnblogs.com/sunniest/p/4555801.html

  3. linux下如何配置yum源

    first:挂载本地镜像文件(挂载:意为将某个文件放置在系统的一个目录下) mkdir     /media/cdrom  #新建镜像文件挂载目录 cd         /usr/local/src  ...

  4. BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列

    BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的 ...

  5. BZOJ_3685_普通van Emde Boas树_权值线段树

    BZOJ_3685_普通van Emde Boas树_权值线段树 Description 设计数据结构支持: 1 x  若x不存在,插入x 2 x  若x存在,删除x 3    输出当前最小值,若不存 ...

  6. 基于 HTML5 的 WebGL 3D 版俄罗斯方块

    前言 摘要:2D 的俄罗斯方块已经被人玩烂了,突发奇想就做了个 3D 的游戏机,用来玩俄罗斯方块...实现的基本想法是先在 2D 上实现俄罗斯方块小游戏,然后使用 3D 建模功能创建一个 3D 街机模 ...

  7. 自己动手编译Android(LineageOS)源码

    准备 设备:红米3s 设备代号:land Android版本:7.1.1 源码提供:Lineage PC配置: 系统:Ubuntu16.04 x64 至少12G RAM 至少80GB 剩余硬盘空间 良 ...

  8. Java编程思想 - 并发

    前言 Q: 为什么学习并发? A: 到目前为止,你学到的都是有关顺序编程的知识,即程序中的所有事物在任意时刻都只能执行一个步骤. A: 编程问题中相当大的一部分都可以通过使用顺序编程来解决,然而,对于 ...

  9. ASP.NET Core 项目实战(持续更新~~~)

    一.前言 准备写这个系列文章的设想开始于今年9月,毫无意外,期间又又又又拖了很长时间,文章主要是为了记录自己学习使用 ASP.NET Core Web API 与 Vue 创建一个前后端分离的项目的整 ...

  10. SpringBoot之旅第四篇-web开发

    一.引言 有了自动配置,springboot使web开发变得简单,这个在springboot之旅中的第一篇中就有体现,实际的开发中当然不会这么简单,很多时候我们都需要自己去定制一些东西.web开发的东 ...