Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。阿里云也推出了CI工具CodePipeline,开箱即用,推荐试用。

Concourse CI官方提供了标准的Docker镜像,在阿里云容器服务部署一套 Concourse CI应用是很轻松的一件事儿。

准备Docker集群

  • 首先,在阿里云容器服务控制台创建一个集群。简单起见,这里节点数为1,网络类型为经典网络。

集群创建过程大约几分钟,成功后的状态如下图:

  • 然后需要开启8080端口的入网权限:

  • 接下来,SSH到节点上,创建容器目录,脚本如下:
  1. -p keys/web keys/worker
    ssh-keygen -t rsa -f ./keys/web/tsa_host_key -N ''
    ssh-keygen -t rsa -f ./keys/web/session_signing_key -N ''
    ssh-keygen -t rsa -f ./keys/worker/worker_key -N ''
  2. ./keys/worker/worker_key.pub ./keys/web/authorized_worker_keys
  3. ./keys/web/tsa_host_key.pub ./keys/worker

部署Concourse CI

  • 在容器服务控制台创建应用, 填写基本信息如下图:

  • 用compose模板来创建应用,模板如下:

    version: '2'
    services:concourse-db:image: postgres:9.5privileged: trueenvironment:POSTGRES_DB: concoursePOSTGRES_USER: concoursePOSTGRES_PASSWORD: changemePGDATA: /databaseconcourse-web:image: concourse/concourselinks: [concourse-db]command: webprivileged: truedepends_on: [concourse-db]ports: ["8080:8080"]volumes: ["/keys/web:/concourse-keys"]restart: unless-stopped # required so that it retries until conocurse-db comes upenvironment:CONCOURSE_BASIC_AUTH_USERNAME: concourseCONCOURSE_BASIC_AUTH_PASSWORD: changemeCONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"CONCOURSE_POSTGRES_HOST: concourse-dbCONCOURSE_POSTGRES_USER: concourseCONCOURSE_POSTGRES_PASSWORD: changemeCONCOURSE_POSTGRES_DATABASE: concourseconcourse-worker:image: concourse/concourseprivileged: truelinks: [concourse-web]depends_on: [concourse-web]command: workervolumes: ["/keys/worker:/concourse-keys"]environment:CONCOURSE_TSA_HOST: concourse-webdns: 8.8.8.8
  • 在创建应用之前需要填写模板参数, CONCOURSE_EXTERNAL_URL,值为 http://your-ecs-public-ip:8080,如下图所示:

  • 创建之后会启动3个服务,DB、Web和Worker,如下图:

  • 至此,Concourse CI部署完成,在浏览器输入http://your-ecs-public-ip:8080即可访问。用户名密码是concourse/changeme

第一个CI任务(Hello world)

  • 安装CLI客户端,在上一步浏览器中下载对应您操作系统的CLI. 本例以ECS(ubuntu16.04),安装之后可以查看一下版本

  1. -v
    3.4.0

  • 连接Target, 用户名密码是concourse/changeme

  1. -t lite login -c http://your-ecs-public-ip:8080
  2. in to team 'main'
    username: concourse
    password:
  3. saved

  • 一个简单的配置模板, 保存为hello.yml

    jobs:
    - name: hello-worldplan:- task: say-helloconfig:platform: linuximage_resource:type: docker-imagesource: {repository: ubuntu}run:path: echoargs: ["Hello, world!"]
  • 注册任务

  1. -t lite set-pipeline -p hello-world -c hello.yml

  • 启动任务

  1. -t lite unpause-pipeline -p hello-world

  • 成功执行的界面如下

最后

本文仅仅是安装引导,欢迎探索Concourse CI更多特性。

参考

https://concourse.ci/docker-repository.html
https://concourse.ci/hello-world.html

在阿里云容器服务上,轻松搭建Concourse CI相关推荐

  1. 在阿里云容器服务上基于Istio实现出口Egress流量管理

    概述 在前面的文章中,介绍了在阿里云容器服务上基于Istio如何实现东西向流量管理. 回顾下引用的示例: 该样例应用由四个单独的微服务构成,用来演示多种 Istio 特性.该应用模仿某银行金融产品的一 ...

  2. Knative 应用在阿里云容器服务上的最佳实践

    作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...

  3. 在阿里云容器服务上创建一个使用Redis的Python应用

    使用容器服务可以方便快速的创建应用,下面的例子展示如何在容器服务上创建一个使用Redis的Python应用,只需要简单的几步. 第一步:准备代码 由于只是一个例子,所以我不可能使用太复杂的应用代码. ...

  4. 阿里云容器服务新增支持Kubernetes编排系统,性能重大提升 1

    摘要: 作为容器编排系统的两大流派, Kubernetes和Swarm的重要性不言而喻.融合了两大高性能集成的阿里云容器服务,不仅可以降低50%的基础架构成本,提高交付速度将产品迭代加快13倍,还可以 ...

  5. Docker监控:基于阿里云容器服务构建自己的Docker监控框架

    微服务架构通过将一个复杂系统分解成一系列独立开发.部署和运维的服务,提升了整个系统的敏捷性,可以灵活的响应业务和规模的变化.而Docker技术则将服务的部署和环境完全解耦,利用Docker的可移植性和 ...

  6. 阿里云容器服务飞天敏捷版详解

    阿里云容器服务飞天敏捷版详解 libinjingshan 2017-04-24 23953浏览量 简介: 阿里云容器服务提供了公共云.专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS ...

  7. 新课上线 | 每次 5 分钟,轻松玩转阿里云容器服务!

    在云原生带来的云计算未来趋势下,容器已经成为用户使用云的新界面.据 Gartner 预测,到 2023 年,70% 的组织将在生产环境中运行三个或更多容器化应用程序.容器技术和服务为企业业务发展带来敏 ...

  8. OneAPM CI与阿里云容器服务集成

    应用监控是在生产环境使用Docker的重要条件.阿里云容器服务不但提供了核心的容器和宿主机监控能力,而且支持客户集成自己的监控解决方案,这样可以让容器服务平台融合到自己企业的IT管控之下.今天我们会以 ...

  9. 连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开

    连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开 https://www.toutiao.com/i6950935574450684423/?tt_from=weixin&am ...

最新文章

  1. Spark Streaming实践和优化
  2. 独家 | 规范性分析的实用介绍(附R语言案例研究演示代码)
  3. BUUCTF-WEB:[极客大挑战 2019]LoveSQL 1
  4. boost::detail::sp_typeinfo_相关的测试程序
  5. 查看是否安装android sdk
  6. 《程序员面试金典》合法括号判断
  7. 牛客网 在线编程 猫狗收容所
  8. Java 进程间文件锁FileLock详解
  9. golang 获取当天0点时间_golang使用webAssembly的方式
  10. 写给小白的自然语言处理入门简介
  11. MacOS12+SublimeText+Skim无法正常跳转Skim的问题与解决
  12. graphics2d 乱码 java_java Graphics2D绘制文字并居中并解决服务器乱码问题
  13. Windows按键翻译
  14. python如何处理文本文件_python如何选择合适的异常处理方式?
  15. xlsx文件打开乱码_Excel打开出现乱码的解法方法
  16. messagedigest 图片加密_MessageDigest来实现数据加密
  17. jetson nano笔记
  18. python英文版怎么改成中文版_Python中文(非英文字符)解决方法
  19. 1.性能测试项目实战
  20. IT男着装bug修复,下一个业界男神就是你!

热门文章

  1. return在python中啥意思_python中return到底什么意思?
  2. 基于matlab的汽车牌照识别程序详细教程
  3. 手撕系列:原生python实现汽车牌照识别
  4. 停车场系统连接服务器,智能停车场汽车牌照识别系统和道闸系统的安装
  5. st7735s SPI驱动显示图标
  6. 给小学生上计算机课,【学生简笔画】小学生上电脑课精选日记
  7. 图的逆拓扑排序(回路识别)
  8. css绘制自定义数据仪表盘
  9. Oracle优化培训笔记-第一节
  10. Windows系统上那些把i7变i3的“魔法师”,看看你中招没?