原文鏈接:https://docs.gitlab.com/ee/ci/runners/README.html
Configuring GitLab Runners
在 GitLab CI 中授帕,Runners 運行 .gitlab-ci.yml
文件中定義的代碼珊楼。它們是隔離(虛擬)機器舶掖,通過GitLab CI的協(xié)調(diào)器API獲取作業(yè)。
Runner 可以特定于某個項目入挣,也可以為 GitLab CI 中的任何項目提供服務(wù)。為所有項目提供服務(wù)的 Runner 稱為共享 Runner滋恬。
理想情況下恢氯,GitLab Runner 不應(yīng)與 GitLab 安裝在同一臺機器上勋拟。閱讀 requirements documentation
以獲取更多信息敢靡。
共享州丹、特定和分組 Runners
安裝 Runner 后墓毒,您可以將其注冊為共享或特定 Runner所计。如果您具有 GitLab 實例的管理員訪問權(quán)限主胧,則只能注冊共享 Runner焙格。
共享和特定 Runner 之間的主要區(qū)別是:
- Shared Runners 對于多個項目之間具有類似要求的作業(yè)非常有用眷唉。您可以擁有一個或多個可以處理多個項目的 Runners冬阳,而不是讓多個 Runner 為支持多個項目驳庭。這樣可以更輕松地維護和更新它們氯窍。Shared Runners 使用 公平使用隊列 方式來處理作業(yè)不皆。與使用 FIFO (先進先出)隊列的特定 Runner 相比,這可以防止項目創(chuàng)建數(shù)百個可能導(dǎo)致吃掉所有可用共享 Runners 資源的作業(yè)的情況(一個項目創(chuàng)建了數(shù)百個作業(yè),消耗了所有可用的 Runners)执泰。
- Specific Runners 對于具有特殊要求的作業(yè)或具有特定需求的項目非常有用计济。如果某個作業(yè)有特定的要求,您可以考慮設(shè)置特定 Runner排苍,而不必為所有 Runner 執(zhí)行此操作沦寂。例如,如果要部署某個項目淘衙,可以設(shè)置特定 Runner 以獲得正確的憑據(jù)传藏。在這種情況下,usage of tags 可能是有用的。特定 Runner 運行時使用 FIFO 隊列處理作業(yè)毯侦。
- Group Runners:當(dāng)您在一個分組下有多個項目并且希望所有項目都可以訪問同一組 Runners 時哭靖,Group Runners 非常有用。Group Runners 使用 FIFO 隊列處理作業(yè)侈离。
特定 Runner 僅針對指定的項目運行试幽。共享 Runner 可以為已在 Settings > CI/CD 啟用 “Allow shared Runners”選項的所有項目運行作業(yè)。
對 CI 活動有很高要求的項目也可以從使用特定 Runners 中受益霍狰。通過特定 Runner 抡草,您可以保證 Runner 不被另一個項目的作業(yè)所阻礙饰及。
您也可以設(shè)置一個特定 Runner 被多個項目使用蔗坯。與共享 Runner 的區(qū)別在于您必須在每個項目下明確啟用該特定 Runner谣辞,以便該特定 Runner 能夠運行其作業(yè)澎现。
特定 Runner 不會自動與分叉項目共享悴侵。fork 會復(fù)制克隆存儲庫的 CI 設(shè)置(作業(yè)褐鸥,允許共享等)程拭。
注冊共享 Runner
如果您是 GitLab 實例的管理員淤堵,則只能注冊共享 Runner嘀掸。
- 在
admin/runners
頁面上獲取 shared-Runner 的 token 值涯竟。
默認(rèn)情況下赴魁,共享 Runner 從 GitLab 8.2 開始啟用卸奉,但可以在項目的 Settings ? CI/CD 頁面下,點擊 Disable shared Runners 按鈕以禁用共享 Runner颖御。以前版本的 GitLab 默認(rèn)共享Runner 是不可用的榄棵。
注冊特定 Runner
注冊特定 Runner 可以通過兩種方式完成:
- 使用項目注冊令牌創(chuàng)建 Runner。
- 將共享 Runner 轉(zhuǎn)換為特定 Runner(單向潘拱,僅限管理員使用)疹鳄。
使用項目注冊令牌注冊特定 Runner
要創(chuàng)建一個沒有 GitLab 實例管理員權(quán)限的特定 Runner,請訪問要在 GitLab 中使 Runner 工作的項目:
- 轉(zhuǎn)到 Settings > CI/CD 頁面下獲取令牌芦岂。
- 注冊 Runner
注冊分組 Runner
...
鎖定特定 Runner瘪弓,使其無法為其他項目啟用
...
將 Runner 分配給另一個項目
...
受保護的 Runner
...
手動清除 Runners 緩存
...
共享 Runner 如何選擇作業(yè)
...
有效地使用共享 Runners
...
Runner 中的攻擊向量
...
確定 Runner 的 IP 地址
了解 Runner 的 IP 地址可能很有用,這樣您就可以解決該 Runner 的問題禽最。GitLab 通過查看在輪詢作業(yè)時對 GitLab 發(fā)出的 HTTP 請求的來源來存儲和顯示 IP 地址腺怯。IP 地址可以始終保持最新,因此如果 Runner 的 IP 地址更改了川无,它將在 GitLab 中自動更新呛占。
共享 Runner 和特定 Runner 的 IP 地址可以在不同的地方找到。
共享 Runner
要查看共享 Runner 的 IP 地址舀透,您必須具有 GitLab 實例的管理員訪問權(quán)限栓票。要確定這點:
- 查看 Admin area ? Overview ? Runners。
- 在表中查找 Runner,您應(yīng)該可以看到 “IP Address”列走贪。
特定 Runner
您可以通過以下方式找到特定項目的 Runner 的 IP 地址:
- 查看項目的 Settings ? CI/CD 頁面佛猛。
- 找到 Runner 并單擊它的 ID,它將鏈接并導(dǎo)航到詳細(xì)信息頁面坠狡。
- 在詳細(xì)信息頁面上继找,您應(yīng)該看到“IP地址”行。