要使用 Concourse 需要先建構環境,所幸 Concourse 團隊提供了不少方法讓我們可以簡單的安裝環境。
這個段落著重在 Docker 的安裝,其他僅會簡單說明
如果是開發測試用,可以使用 Vagrant 的 VM 來安裝。
vagrant init concourse/lite
vagrant up
Concourse 已經製作好 Vagrant 用的安裝檔,所以我們只需要用 Concourse 提供的樣板初始化後,就可以直接使用。
透過普通的二進位檔來安裝,需要有以下環境。
實際上除了 Linux 有版本需求外,其他作業系統都能直接運行。
在官網的 Downloads 頁面下載二進位檔放到 /usr/local/bin
即可。
別忘記把二進位檔重新命名為
concourse
並且chmod +x concourse
後再放到/usr/loca/bin
另外我們需要產生三組私鑰。
ssh-keygen -t rsa -f host_key -N ''
ssh-keygen -t rsa -f worker_key -N ''
ssh-keygen -t rsa -f session_signing_key -N ''
最後再用 cp worker_key.pub authorized_worker_keys
設定 Authorized Keys。
完成設定後,就可以用 concourse
指令來開啟 Web UI 和任務管理器。
concourse web \
--basic-auth-username 管理員帳號 \
--basic-auth-password 管理員密碼 \
--session-signing-key session_signing_key \
--tsa-host-key host_key \
--tsa-authorized-keys authorized_worker_keys \
--external-url http://網址
如果你的 PostgreSQL 並不是裝在本機的話,可以用 --postgres-data-source
來指定伺服器位置,用的是 JDBC 的格式,如 postgres://user:pass@10.0.32.0/concourse
這樣的形式。
最後,為了要可以執行我們的任務,需要啟動 Worker 來執行。
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 管理器位置 \
--tsa-public-key host_key.pub \
--tsa-worker-private-key worker_key
管理器位置如果在同一台電腦上,直接用 127.0.0.1
即可,但是如果是在其他主機,則指定對應的 IP 就可以了(並且要注意 Port 2222
是開啟的狀態,這樣 Concourse 才能透過自訂的 SSH 伺服器溝通)
下一篇會以 Docker 為主詳細討論用 Docker 建置環境的步驟。