Drone概念與答疑


一、部署

1、Server

       Drone主服務,它是一個守護進程應用並且擁有Web管理界面。它通過Webhook對接Git Server。解析Git Repository根目錄下的.drone.yml文件,並以輪詢的形態查找需要執行的Pipelines,路由並管理Runners。

2、Runner

       Drone Pipeline處理執行器,可以部署一份或多份。Drone擁有多種類型的Runner(docker、k8s、exe、ssh等等),可選適合的方式安裝。

3、K8s Secrets Extensions

      這是一個可選組件,用來為drone runnner提供基於k8s secret的secret

4、Drone CLI

      drone的命令執行工具,它可以使用通過命令與drone進行交互,並提供用戶、secret、repository setting等多種功能。

二、應用

1、Pipeline

      Pipeline是Drone的核心模塊,它是用來定義自動化處理流程的工具。一般會在git repository根目錄,創建一個.drone.yam文件來定義配置pipeline。當git代碼提交到repository后webhook會通知drone server,然后將會觸發pipeline執行。

2、Secrets

       在配置pipeline過程中一些秘鑰、Token、密碼等機密信息並不適合直接用明文存放在.drone.yam文件中。Secrets模塊則提供多種形式的機密信息存儲與讀取。

3、Promotions

      當一些工作需要人為協助處理時,我們可以定義pipeline通過promote形式觸發,並通過drone build promote觸發執行並傳遞相應參數

4、Cron

      Crone用來定義基於時間調度執行Pipeline。注意它是根據UTC時間,而不是本地時間。

5、Signatures

      用來對文件進行簽名驗證,如果你的repository是公共的,為防止.drone.yml文件被改動,可以使用signature對文件進行驗證

三、擴展

1、Plugins

      plugin是在pipeline的step中用來執行預定任務的docker容器

2、Webhook

     Git Repository用來觸發drone的鈎子。Drone通過OAuth獲取github、gitlab等源代碼管理平台的操作權限,在drone的web管理頁面激活repo后將會自動把webhooks添加到repo的repository配置中。當git repository產生push、push request、tag等操作時webhook將被觸發,並通知drone執行pipeline。

3、Extensions

      通過extensions我們可以自定義並覆蓋drone一些默認行為,或增強一些功能。

四、答疑

1、yml文件是否必須存放在git repository根目錄

是的,必須在根目錄

2、yml文件名是否必須是.drone.yml

默認是文件名是.drone.yml,也可以能過drone web管理界面修改yml的文件名

3、git提交代碼如何讓drone跳過本次提交,不執行pipeline

提交代碼時通過備注增加[CI SKIP]跳過

如: git commit –m “first commit [CI SKIP]”

4、使用volumes掛host path時報Linter: untrusted repositories cannot mount host volumes錯誤

需要給repository開通mount權限。打開drone web –> repository –> Settings –> Project settings 勾選Trusted

5、drone web界面repository設置項Project settings中沒有Trusted

Drone Server啟動時要指定DRONE_USER_CREATE參數,用來設置管理員帳號,只有用管理員帳號打開drone web界面才可以看到和設置Trusted

6、server、runner、secret各個組件中配置中的環境變量secret值如何使用,又從何而來

secret可以通過“openssl rand -hex 16”生成

它們是配對使用的,例如runner需要訪問server,那么先使用openssl生成一個secret設置給server(DRONE_RPC_SECRET),然后再給runner設置server的請求地址(DRONE_RPC_HOST)及secret(DRONE_RPC_SECRET)

7、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM