閱讀203 返回首頁    go 阿裏雲 go 技術社區[雲棲]


在阿裏雲容器服務上,輕鬆搭建Concourse CI

Concourse CI是一款CI/CD工具,它的魅力在於極簡設計,被廣泛應用於Cloud Foundry各個模塊的CI/CD。阿裏雲也推出了CI工具CodePipeline,開箱即用,推薦試用。

image

Concourse CI官方提供了標準的Docker鏡像,在阿裏雲容器服務部署一套 Concourse CI應用是很輕鬆的一件事兒。

準備Docker集群

首先,在阿裏雲容器服務控製台創建一個集群。簡單起見,這裏節點數為1,網絡類型為經典網絡。

集群創建過程大約幾分鍾,成功後的狀態如下圖:

image

部署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,值為 https://your-ecs-public-ip:8080,如下圖所示:

    image

  • 創建之後會啟動3個服務,DB、Web和Worker,如下圖:

    image

  • 最後需要開啟8080端口的入網權限:

    image

  • 至此,Concourse CI部署完成,在瀏覽器輸入https://your-ecs-public-ip:8080即可訪問。用戶名密碼是concourse/changeme
    image

第一個CI任務(Hello world)

  • 安裝CLI客戶端,在上一步瀏覽器中下載對應您操作係統的CLI. 本例以ECS(ubuntu16.04),安裝之後可以查看一下版本
fly -v
3.4.0
  • 連接Target, 用戶名密碼是concourse/changeme
fly -t lite login -c https://your-ecs-public-ip:8080
logging in to team 'main'

username: concourse
password:

target 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!"]
  • 注冊任務
fly -t lite set-pipeline -p hello-world -c hello.yml
  • 啟動任務
fly -t lite unpause-pipeline -p hello-world
  • 成功執行的界麵如下

image

最後

本文僅僅是安裝引導,歡迎探索Concourse CI更多特性。

參考

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

最後更新:2017-08-25 01:02:21

  上一篇:go  【OSS 最佳實踐】JS SDK使用STS方式實現斷點續傳
  下一篇:go  區塊鏈未來會發展成什麼模樣?