开发者社区> wangyue> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。本文介绍在阿里云容器服务上快速搭建Concourse。
+关注继续查看

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

image

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

准备Docker集群

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

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

image

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

image

  • 接下来,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

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

image

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

    version: '2'
    services:
      concourse-db:
        image: postgres:9.5
        privileged: true
        environment:
          POSTGRES_DB: concourse
          POSTGRES_USER: concourse
          POSTGRES_PASSWORD: changeme
          PGDATA: /database
      concourse-web:
        image: concourse/concourse
        links: [concourse-db]
        command: web
        privileged: true
        depends_on: [concourse-db]
        ports: ["8080:8080"]
        volumes: ["/keys/web:/concourse-keys"]
        restart: unless-stopped # required so that it retries until conocurse-db comes up
        environment:
          CONCOURSE_BASIC_AUTH_USERNAME: concourse
          CONCOURSE_BASIC_AUTH_PASSWORD: changeme
          CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"
          CONCOURSE_POSTGRES_HOST: concourse-db
          CONCOURSE_POSTGRES_USER: concourse
          CONCOURSE_POSTGRES_PASSWORD: changeme
          CONCOURSE_POSTGRES_DATABASE: concourse
      concourse-worker:
        image: concourse/concourse
        privileged: true
        links: [concourse-web]
        depends_on: [concourse-web]
        command: worker
        volumes: ["/keys/worker:/concourse-keys"]
        environment:
          CONCOURSE_TSA_HOST: concourse-web
        dns: 8.8.8.8
  • 在创建应用之前需要填写模板参数, CONCOURSE_EXTERNAL_URL,值为 http://your-ecs-public-ip:8080,如下图所示:

image

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

image

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

第一个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-world
      plan:
      - task: say-hello
        config:
          platform: linux
          image_resource:
            type: docker-image
            source: {repository: ubuntu}
          run:
            path: echo
            args: ["Hello, world!"]
  • 注册任务

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

  • 启动任务

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

  • 成功执行的界面如下

image

最后

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

参考

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云容器服务 ACK 产品技术动态(202210)
容器服务 ACK 【新功能】Feature:ACK 支持倚天 ARM ECS 服务器 ACK 现已支持倚天 ARM 云服务器,支持节点池的全生命周期管理,包括节点添加、扩容、升级、删除。同时也支持了多架构镜像的管理,使用统一镜像部署在 ARM 和 X86 节点池中,简化 ACK 基础组件和用户应用在多架构集群中的管理。
0 0
阿里云容器服务产品与解决方案介绍|学习笔记
快速学习阿里云容器服务产品与解决方案介绍
0 0
《阿里云容器服务Knative 极致 Serverless 体验》电子版地址
阿里云容器服务Knative 极致 Serverless 体验(1)
0 0
阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽
本系列相关文章:阿里云容器服务GPU监控2.0基础篇1:基本功能使用阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误阿里云容器服务GPU监控2.0进阶篇1:剖析(Profiling)GPU使用情况必备知识阿里云容器服务GPU监控2.0进阶篇2:学会剖析(Profiling)GPU使用情况容器服务GPU监控2.0提供了监
0 0
《拥抱容器存储,使用阿里云容器服务 ACK +文件存储 NAS 构建现代化企业应用》电子版地址
拥抱容器存储,使用阿里云容器服务 ACK +文件存储 NAS 构建现代化企业应用
0 0
阿里云容器服务 ACK 产品技术动态(202209)
阿里云容器服务 ACK 产品技术动态(202209)
0 0
阿里云容器服务 ACK 产品技术动态(202209)
容器服务 ACK 【集群运维】 Feature:托管节点池新发布 托管节点池是 ACK 全新推出的自动化运维型节点池,可以自动完成部分节点运维操作,如 CVE 自动修复、部分故障修复等,从而降低您的节点运维负担。
0 0
Docker容器实战【四】阿里云容器服务
harbor虽好,但许多公司的生产环境仍然采用的是云服务,这节课我们就来学习本地Docker如何使用云服务,将本地镜像推送到云平台。
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于阿里云容器服务 实现Serverless服务
立即下载
蚂蚁金服Docker网络插件开发和实践
立即下载
《拥抱容器存储,使用阿里云容器服务 ACK +文件存储 NAS 构建现代化企业应用》
立即下载