雖然 Concourse 提供了網頁介面,但是最多只能啟動工作或者檢視運作狀態。而實際上的管理、建立 Pipeline 等,都需要透過名為 fly
的指令工具。
安裝
Fly 的安裝並沒有特別的方法,只要將 Concourse Github 頁面上對應的二進位檔下載下來即可。
在 Mac 或者 Linux 上下載後需要對這個檔案增加執行的權限,可以透過 chmod +x fly_drawin_amd64
的方式來實行。
為了方便起見,可以把檔案放到 /usr/local/bin
之類的地方,並且重新命名成 fly
方便之後使用。
指令
因為 Fly 是操作所有 Concourse 功能的工具,所以也包含了非常多的指令。
- login: 登入 Concourse 伺服器
- targets: 列出目前的目標(設定的伺服器)
- sync: 更新本機目前的
fly
和伺服器同步
- set-team: 新增或修改團隊
- destroy-team: 刪除團隊
- execute: 執行一個本機指令(不用設定 Pipeline)
- pipelines: 列出目前的 Pipeline
- rename-pipeline: 重新命名 Pipeline
- pause-pipeline: 暫停 Pipeline 運作
- unpause-pipeline: 恢復 Pipeline 運作
- expose-pipeline: 讓 Pipeline 可以被公開檢視(無須登入)
- hide-pipeline: 隱藏 Pipeline 顯示
- get-pipeline: 取得 Pipeline 的設定
- set-pipeline: 設定 Pipeline 的設定
- destroy-pipeline: 刪除 Pipeline
- trigger-job: 觸發工作運行
- pause-job: 暫停某個工作運作
- unpause-job: 恢復某個工作運作
- check-resource: 檢查某個 Resource 的新版本
- pause-resource: 暫停 Resource 的自動檢查
- unpause-resource: 恢復 Resource 的自動檢查
- builds: 顯示建置紀錄
- abort-build: 停止某個工作的建置
- containers: 顯示運行中的容器
- intercept: 取的目前運行中或者最近的建置狀況
- watch: 檢視進行中的建置紀錄
- workers: 顯示可用的 Worker
- volumes: 顯示啟用中的容器
- checklist: 生成 Checkman 用的設定檔
礙於篇幅的關係,筆者只會介紹比較關鍵的幾個指令。其他的指令會依照後續文章的使用情況再額外做介紹。
Login
使用 Fly 指令必須先登入 Concourse 伺服器才行,所以我們首先要學會如何使用 login
指令。
fly --target example login --team-name my-team \
--concourse-url https://ci.example.com
基本使用其實很簡單,只要指定 target
跟 url
即可。
- --target, -t : Concourse 伺服器的名稱
- --team-name, -n : 團隊名稱(預設為 main)
- --concourse-url, -c :伺服器位址
- --ca-cert :憑證位置(伺服器使用未認證的 SSL 憑證時指定)
設定完畢後,會儲存在 ~/.flyrc
這個檔案中,也就是下次登入時只要使用 fly -t example login
就可以了。
要注意的是 Concourse 伺服器所發放的 Token 會在一天後過期,所以每天都需要重新登入。
Set Pipeline
僅次於登入的就是 set-pipeline
這個指令,大多數時候只要能使用 set-pipline
指令就能完成大部分的操作。
fly -t example set-pipeline --config pipeline.yml --pipeline my-pipeline
- --target, -t:伺服器的名稱,登入時設定
- --config, -c:Pipeline 的設定檔
- --pipeline, -p:Pipeline 的名稱
- --var:設定變數(像是 Private Key 之類的不應該被公開顯示)
- --load-vars-from:同上,只是改由設定檔讀取
每個指令都必須設定 target
參數,這是 Concourse 為了避免對錯誤的伺服器下指令的設計,雖然有點不方便但是也是為了避免人工失誤
Pause/Unpause Pipeline
一開始設定完畢 Pipeline 之後,是處於暫停的狀態,我們需要用 unpause-pipeline
來啟動這個 Pipeline。
fly -t example pause-pipeline --pipeline my-pipeline
fly -t example unpause-pipeline --pipeline my-pipeline
以上就是三個最常用的指令,大多數時候的操作都只會用到這些。
縮寫
雖然很難記憶,不過每次下指令都要打很長一串也是有點吃力的。
所以 Concourse 提供了縮寫的指令,方便大家操作。
不過筆者個人認為指令還是太多了,記不起來⋯⋯
- login => l
- targets => ts
- sync => s
- set-team => st
- destroy-team => dt
- execute => e
- pipelines => ps
- rename-pipeline => rp
- pause-pipeline => pp
- unpause-pipeline => up
- expose-pipeline => ep
- hide-pipeline => hp
- get-pipeline => gp
- set-pipeline => sp
- destroy-pipeline => dp
- trigger-job => tj
- pause-job => pj
- unpause-job => uj
- check-resource => cr
- pause-resource => pr
- unpause-resource => ur
- builds => bs
- abort-build => ab
- containers => cs
- intercept => i
- watch => w
- workers => ws
- volumes => vs
- checklist => cl
不過 Fly 指令的縮寫還算好記,大多是字母的開頭。碰到複數時後面補上 s 就可以了!
下一篇文章會討論設定團隊跟登入的方式設置。