What is Concourse?
Concourse is a CI/CD tool that treats build pipelines and artifacts as first-class citizens.
It enables builds that run in containers, has a clean, usable UI and discourages snowflake build servers.
It aims to provide an expressive system with as few distinct moving parts as possible.
自動化常規代碼集成,測試和反饋(基本上是CI功能)
在多個平台和版本上自動化軟件兼容性測試
自動執行持續交付(CD)管道任務,例如合規性檢查,安全驗證和更改工單
自動升級雲平台軟件(如安全補丁,操作系統更新和新功能)以支持您的平台作為產品
安裝docker前置必要組件
sudo apt-get remove -y docker docker-engine docker.io containerd runc
更新系統
sudo apt-get updatesudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
新增docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
加入docker repository
sudo add-apt-repository -y "deb \ [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable"sudo apt-get update
安裝docker-ce
sudo apt-get install -y docker-ce sudo docker run hello-world
安裝docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version
執行consourse yaml檔
version: '3' services: concourse-db: image: postgres environment: - POSTGRES_DB=concourse - POSTGRES_PASSWORD=concourse_pass - POSTGRES_USER=concourse_user - PGDATA=/database concourse: image: concourse/concourse:6.0.0 command: quickstart privileged: true depends_on: [concourse-db] ports: ["8080:8080"] environment: - CONCOURSE_POSTGRES_HOST=concourse-db - CONCOURSE_POSTGRES_USER=concourse_user - CONCOURSE_POSTGRES_PASSWORD=concourse_pass - CONCOURSE_POSTGRES_DATABASE=concourse - CONCOURSE_EXTERNAL_URL= - CONCOURSE_ADD_LOCAL_USER=test:test - CONCOURSE_MAIN_TEAM_LOCAL_USER=test - CONCOURSE_WORKER_GARDEN_NETWORK
取得IP地址並將其分配給ipaddr變數,以下代碼可在Ubuntu 18.04上運行(也能在其他版本上運行)。 下一行URL後附加您的IP地址和預設port。
ipaddr=$(ip route get 1 | awk '{print $NF;exit}') sed "s|EXTERNAL_URL|EXTERNAL_URL=http://$ipaddr:8080|g" docker-compose.yml -i
啟動consourse
sudo docker-compose up -d sudo docker ps # Shows your running Docker containers cat docker-compose.yml |grep EXTERNAL_URL | sed -e 's/^[[:space:]]*- //'
啟動畫面
帳密在yaml檔上面設定的test/test
開始您的第一個任務
現在可以開始使用Concourse了,需要首先安裝fly,即Concourse CLI。 可以選擇相關的操作系統,直接從Concourse服務器的登錄頁面下載。
wget -O ~/fly "http://192.168.0.157:8080/api/v1/cli?arch=amd64&platform=linux" sudo mkdir -p /usr/local/bin sudo mv ~/fly /usr/local/bin sudo chmod 0755 /usr/local/bin/fly
您可以繼續登錄,這將在當前機器上創建目標設置。 指定給目標的標籤將是我們用來稱為此特定Concourse實例的標籤,在這種情況下,我已經使用了主要映射到我們的團隊。
fly --target main login --concourse-url http://192.168.162.132:8080 -u test -p test
出現升級提示訊息執行
fly -t cloud sync
因為 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 用的設定檔
參考網址
https://ithelp.ithome.com.tw/users/20065771/ironman/1020
https://blog.waterstrong.me/concourse-ci/