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