在阿裏雲容器服務上,輕鬆搭建Concourse CI
Concourse CI是一款CI/CD工具,它的魅力在於極簡設計,被廣泛應用於Cloud Foundry各個模塊的CI/CD。阿裏雲也推出了CI工具CodePipeline,開箱即用,推薦試用。
Concourse CI官方提供了標準的Docker鏡像,在阿裏雲容器服務部署一套 Concourse CI應用是很輕鬆的一件事兒。
準備Docker集群
首先,在阿裏雲容器服務控製台創建一個集群。簡單起見,這裏節點數為1,網絡類型為經典網絡。
集群創建過程大約幾分鍾,成功後的狀態如下圖:
部署Concourse CI
-
在容器服務控製台創建應用, 填寫基本信息如下圖:
用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
,如下圖所示: -
創建之後會啟動3個服務,DB、Web和Worker,如下圖:
-
最後需要開啟8080端口的入網權限:
至此,Concourse CI部署完成,在瀏覽器輸入
https://your-ecs-public-ip:8080
即可訪問。用戶名密碼是concourse/changeme
第一個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
- 成功執行的界麵如下
最後
本文僅僅是安裝引導,歡迎探索Concourse CI更多特性。
參考
https://concourse.ci/docker-repository.html
https://concourse.ci/hello-world.html
最後更新:2017-08-25 01:02:21