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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 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
    AI 代码解读
  • 在创建应用之前需要填写模板参数, 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!"]
    AI 代码解读
  • 注册任务

  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

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
70
分享
相关文章
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践

相关产品

  • 容器计算服务
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等