目录

1.准备项

2.装服务器环境

2.1.Docker环境安装:

2.1.TeamCity-Server环境安装

2.2.TeamCity-Agent环境安装

2.3.Rancher环境安装

2.4.docker register环境配置

3.DevOps实践

3.1使用TeamCity制作镜像并注册到Docker register中

3.2使用Rancher管理主机,镜像,容器


1.准备项

1.1.服务器一台,1H4G(更小内存应该也可以,自行测试),系统:Ubuntu 16.04 64位

1.2.数据库一个,MYSQL,MSSQL都可以(还有其他的,自行配置),教程是MSSQL

1.3.其他软件,Xshell (用于远程Linux服务器),WinSCP(用于管理Linux服务器上的文件)

2.装服务器环境

2.1.Docker环境安装:

因为墙的原因,这里需要使用国内镜像加速服务,这里使用阿里云的镜像加速服务,阿里云的镜像加速服务,登陆阿里云后,选择[容器镜像服务]->[镜像加速器]

2.1.1首先,安装Docker 

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

装完后输入:

docker version

查询docker是否装成功。

然后配置加速源,这里可以使用阿里云提供的命令,也可以用WinSCP找到/etc/docker目录建立daemon.json

{"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}

xxxxxxx改为阿里云提供给你的地址

如果是使用命令添加,请依此输入以下命令

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
EOF

然后重启docker服务

systemctl daemon-reload
systemctl restart docker

Docker环境搭建完毕

2.1.TeamCity-Server环境安装

拉取官方镜像(有点大,建议使用云服务器测试,入站带宽大,下载速度块)

docker pull jetbrains/teamcity-server

出现

Status: Downloaded newer image for jetbrains/teamcity-server:latest

则拉取成功,接下来启动teamcity-server

docker run -d -it --name teamcity-ecms -v /data/tc/datadir:/data/teamcity_server/datadir -p 8111:8111 jetbrains/teamcity-server//然后
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a0a5b60a4b1 jetbrains/teamcity-server "/run-services.sh" 6 seconds ago Up 5 seconds 0.0.0.0:8111->8111/tcp teamcity-ecms

出现上述结果就成功了。接下来打开防火墙8111端口(外网的话),访问: <your id>:8111

出现上述图片则搭建成功!

点击[Proceed]按钮进入下一步,选择你准备的数据库类型,这里选MSSQL,需要下载JDBC drivers,点击[Downloading JDBC drivers]的按钮就行了,自动下载

按上面的图片填写,点击[Proceed],稍等3-10分钟,如果出现报错,请检查你的参数是否填写正确!

弄完之后会出现一个协议,拉到最下面,勾选Accept license agreement,点击[Continue>]按钮

然后出现创建账号的页面,自行创建一个管理员账号,登陆~

到这里为止,如果没出现问题,那么teamcity-server的环境就搭建完毕了。

2.2.TeamCity-Agent环境安装

有个teamcity-server,还需要agent来做Build,push的工作(类似于编译平台)

第一步拉取Agent的镜像

docker pull jetbrains/teamcity-agent

第二步启动容器

docker run -d -it -e SERVER_URL="192.168.0.19:8111" -v /etc/docker:/data/teamcity_agent/conf  -v /var/run/docker.sock:/var/run/docker.sock -v /opt/buildagent/work:/opt/buildagent/work -v /opt/buildagent/temp:/opt/buildagent/temp -v /opt/buildagent/tools:/opt/buildagent/tools -v /opt/buildagent/plugins:/opt/buildagent/plugins -v /opt/buildagent/system:/opt/buildagent/system jetbrains/teamcity-agent

[192.168.0.19:8111]这里最好填内网地址(安装速度快,省流量),如果没有局域网,就要填外网地址,请大家注意!

并且这个启动方式会和Agent的共享主机的Docker配置和缓存,如果有疑问可以使用另外一个命令,https://hub.docker.com/r/jetbrains/teamcity-agent/,自行翻阅

执行后,可使用docker logs -f <CONTAINER-ID>查看启动日志,CONTAINER-ID使用docker ps查看

然后进入Server的WEBUI页面,选择Agents->Unauthorized

审核它!然后他就会出现在Connected里!

到这里为准,TeamCity的所有环境就搭好了!!!!!

2.3.Rancher环境安装

拉取镜像并部署容器

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

过3-5分钟后,防火墙打开8080端口,访问<your id>:8080

出现上述页面,成功,rancher环境安装完毕!!!

2.4.docker register环境配置

修改之前的daemon.json

{"registry-mirrors": ["https://xfgphhex.mirror.aliyuncs.com"],"insecure-registries":["192.168.0.19:5000"]
}

保存。192.168.0.19可以配置成外网(已测试,木有问题),记得打开5000端口!

重启docker

systemctl restart docker

注意,重启docker会把teamcity和rancher的容器关掉,记得重启一下3个容器(ID通过docker ps -a命令查询)

docker start <Container ID>

启动register

docker run -d -p 5000:5000 --name registry registry:2

环境到这一步就搭建完毕了~!接下来就是DevOps实现

3.DevOps实践

3.1使用TeamCity制作镜像并注册到Docker register中

打开TeamCity,点击左上角[projects],点击[create project]

进入后,选择[Manually]

填一个名字保存。

进入下面这个页面,点击[+Create build configuration]

填一个名字保存。

进入下面这个页面,填写源代码的url,这里使用朋友的一个脚手架项目做演示,你们也可以先用这个做实验,gitee地址:https://gitee.com/kitteam/ecms

保存。返回下图的页面,点击Build Steps ,点击[+Add build step]按钮

第一步,使用dockerfile制作镜像,参数如下,dockerfile在图上的地址,自行在gitee查看,可以使用后面的选择选出来也行。路径一定要填'/'要不然copy代码会失败

第二步,将打包好的镜像register到agent的服务器上

继续[+Add build step],这次命令选other,具体参数如下图

第三部,把register里的镜像推送上去

继续[+Add build step],这次命令选push,具体参数如下图

OK,到这一步teamcity的配置就完成了!

接下来run一次把~~~~~

【192.168.1.43的问题是因为内网IP换了~~~,所以跟着换了,大家不用在意这点细节】

点击后,可以去[Projects]里看日志,稍等片刻把~(第一次build有点慢(5分钟左右),后续build因为docker缓存的原因会快很多(1分钟))

出现下图,则teamcity的任务就全部完成了!!

3.2使用Rancher管理主机,镜像,容器

3.2.1 添加主机

顶部:基础架构-主机,点击添加主机

点击保存

填写IP,复制下面的命令到服务器执行

然后稍等片刻,安装成功后,前往主机页面查看

3.2.2 添加应用

点击左上角,选择环境

点击【添加应用】

随便填一下保存!

跳转后,点击右上角【添加服务】

填写参数如下图

点击创建

然后稍等片刻,打开主机

启动完成,这个时候打开<your ip>:8081访问网站

到这里,这个文章就结束了,成功~

希望文章对有兴趣搭建CI/CD DevOps环境的公司和个人有所帮助,蟹蟹!

原文地址: https://www.cnblogs.com/duwamish/p/10971480.html

TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)相关推荐

  1. TeamCity+Rancher+Docker实现.Net Core项目DevOps

    1.准备项 1.1.服务器一台,1H4G(更小内存应该也可以,自行测试),系统:Ubuntu 16.04 64位 1.2.数据库一个,MYSQL,MSSQL都可以(还有其他的,自行配置),教程是MSS ...

  2. 使用docker生成dotnet core项目镜像

    docker生成dotnet core镜像 使用docker生成dotnet core项目镜像.需要编写Dockerfile文件.编写方法有两种,如下: 使用docker生成dotnet core项目 ...

  3. Linux上用Docker部署Net Core项目

    前提:本地配置好Docker环境 1.构建Net Core镜像 docker pull microsoft/dotnet 2.新建一个DockerFile文件并填充内容 #基于 `microsoft/ ...

  4. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  5. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  6. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 打算用三个篇幅来记录完整的全过程 觉得有帮助的朋友~可以左上 ...

  7. kubernetes+Azure DevOps实现.Net Core项目的自动化部署均衡负载

    1. 前言 前前后后学习kubernetes也有一个来月了,关于kubernetes的博客也写了有十多篇.但是技术如果无法落地到实际的应用场景终归是纸上谈兵,所以就有了这一出:通过结合kubernet ...

  8. 从零实操基于WSL2 Docker部署Asp.Net Core项目

    前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...

  9. 如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理...

    这篇文章介绍一下,如何使用VS2017给asp.net core添加容器支持,并发布镜像到私有docker hub,然后用chart管理容器镜像的操作流程. 话不多说,just do it. 新建项目 ...

最新文章

  1. Road-SLAM:基于道路标线车道级精度SLAM
  2. eva每一集片尾曲是谁唱的_【跪求】EVA 18集片尾曲的歌手名,考验大家的听力~...
  3. 模拟 Codeforces Round #249 (Div. 2) C. Cardiogram
  4. 将JSON数据转换成JAVA的实体类
  5. exp oracle 表空间,oracle之EXP导出表空间错误解决
  6. 网络编程——第一篇 基础之进程线程
  7. mysql存储word文档_使用MySQL存储和检索word文档
  8. 漫画:什么是二叉堆?(修正版)
  9. 马化腾出售腾讯股份,四天套现近20亿港元;朋友圈发红包测试视频红包玩法...
  10. Jmeter使用笔记之断言
  11. android return 如何跳出两个循环_关于不得不学的Android知识之消息机制
  12. matlab 排列组合
  13. 人生---新---起点……
  14. Ubuntu IP系统配置文件使用命令设置地址
  15. Kali字典正确使用姿势
  16. oppo手机禁止自动打开应用商店
  17. 八种常见视频格式转换详解
  18. Java面试必问的HashMap,基础mysql笔试题及答案
  19. 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
  20. 罗杨美慧 20190919-6 四则运算试题生成,结对

热门文章

  1. dos命令窗口光标闪烁_史上最全的Vim命令(二)
  2. echarts 没有icon导致工具栏无法显示_Icon失误导致OMG输掉比赛,曾经的单杀王也拉垮?天秀操作难再现...
  3. MySQL回放_mysql回顾
  4. 草莓甜品海报设计,甜出画面,受得住诱惑么?
  5. 渐变色彩艺术海报背景素材|感官刺激、个性突出
  6. 并行、并发和代码性能优化
  7. What’s New in Virtio 1.1
  8. RabbitMQ架构
  9. likely() 和 unlikely()内建宏定义函数
  10. python爬虫基本原理_Python爬虫【一】爬虫的基本原理