concourse是cloud foundry原生的集成CI工具,輕量、可視。html
pipeline三大核心概念linux
resource 版本化資源的抽象位置,例如repository。是job的輸入輸出git
job 決定了pipeline的每一步行爲,資源怎樣被處理並顯示,構建於plangithub
task 是執行的基本單元,表現爲在一個全新容器中運行的腳本或函數。task可複用web
pipeline用yaml文件將job和resource集中配置到一塊,build構建在容器中運行sql
架構圖api
組件緩存
1,ATC,在8080端口運行concourse web UI,規劃pipeline運行的vms服務器
2,TSA,一個自定義的ssh服務器,偵聽於2222端口,爲ATC和外部worker vms間通訊提供ssh tunnel,並每隔30秒心跳檢查workers架構
3,beacon,發送garden和baggageclaim的地址給ATC,爲ATC和worker間通訊聯繫TSA開啓ssh tunnel
worker運行兩種服務:garden和baggageclaim
4,garden,一個容器runtime,偵聽於7777端口,提供http api給ATC管理容器
5,baggageclaim,偵聽於7788端口,提供http api給ATC管理disk或掛在到容器的卷資源,提供緩存
6,postgresql,存儲worker VMs用到的構建配置、日誌和資源版本等pipeline信息
7,fly,用於配置pipeline,和ATC互動的CLI
concourse服務有一個web節點、一個worker節點和一個postgresql節點組成。
下載最新的發佈版本
https://concourse-ci.org/download.html
安裝CLI
wget https://github.com/concourse/concourse/releases/download/v5.1.0/fly-5.1.0-linux-amd64.tgz
tar zxvf fly-5.1.0-linux-amd64.tgz
mv fly /usr/local/bin
fly -v
fly -t tutorial e -c inputs_required.yml -i some-important-input=../task-hello-world
經常使用命令:
新建pipeline
fly -t tutorial set-pipeline -p hello-world -c pipeline.yml
fly -t tutorial sp -c pipeline.yml -p hello-world
啓用pipeline
fly -t tutorial up -p hello-world
查看job輸出
fly -t tutorial watch -j hello-world/job-hello-world
查看builds
fly -t turorial builds
觸發job
fly -t tutorial trigger-job -j hello-world/job-hello-world
刪除pipeline
fly -t tutorial destroy-pipeline -p hello-world
更新pipeline配置文件
fly -t tutorial sp -p simple-app -c pipeline.yml
帶參數pipeline
fly -t tutorial sp -p parameters -c pipeline.yml -v cat-name=garfield -v dog-name=odie
pipeline讀取參數文件 -l
fly -t tutorial sp -p parameters -c pipeline.yml -l credentials.yml
pipeline相關詳解
https://concourse-ci.org/managing-pipelines.html