<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Loading

      基于Drone+Gogs流水線-全面認識輕量級云原生CI引擎Drone

      1. 介紹

      image.png
      Drone by Harness? 是一個基于Docker容器技術的可擴展的持續集成引擎,用于自動化測試、構建、發布。每個構建都在一個臨時的Docker容器中執行,使開發人員能夠完全控制其構建環境并保證隔離。開發者只需在項目中包含 .drone.yml文件,將代碼推送到 git 倉庫,Drone就能夠自動化的進行編譯、測試、發布。可以與Docker完美集成。

      https://docs.drone.io/image.png

      特點

      • Drone引入了Pipelnes的概念,管道可幫助我們自動化軟件交付過程中的步驟,例如啟動代碼構建,運行自動化測試以及部署到暫存或生產環境。
      • 通過將.drone.yml文件放在git信息庫的根目錄中來配置管道。 yaml語法旨在易于閱讀和表達,以便查看存儲庫的任何人都可以理解工作流程。
      • Drone通過多個step來完成一系列的指令。

      為什么選擇Drone?

      • 和 Jenkins 相比, Drone 就輕量的多了,從應用本身的安裝部署到流水線的構建都簡潔的多。由于是和源碼管理系統相集成,所以 Drone 天生就省去了各種賬戶權限的配置,直接與 gitlab 、 github 、 Bitbucket 這樣的源碼管理系統操作源代碼的權限一致

      • Drone 與流行的源代碼管理提供商無縫集成,支持github、gitlab、gogs、gitea、gitee、bitbucket server/cloud, 這是使用Drone的第一印象,可以實行快速打造GitOps場景

      • 流水線插件是執行預定義任務的 Docker 容器,通過將它們配置為Pipeline中的步驟。插件可用于部署代碼、發布工件、發送通知等。

      image.png
      image.png

      2. 部署Gogs-極易搭建的自助 Git 服務

      image.png

      安裝MySQL

      docker run --name gogs-mysql --restart=always -v /opt/mysql/mysqlVolume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7.19
      

      創建Gogs及drone數據庫

      #mysql -uroot -p123456 -h 127.0.0.1
      CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
      create database drone;
      
      # Pull image from Docker Hub.
      $ docker pull gogs/gogs
      
      # Create local directory for volume.
      $ mkdir -p /var/gogs
      

      運行Gogs

      docker run --name=gogs --restart=always --link gogs-mysql:db -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
      

      賬號:admin
      密碼:123456

      打開頁面繼續配置Gogs
      image.png

      image.png

      3. 部署Drone-Server

      docker run \
        --volume=/var/lib/drone:/data \
        --env=DRONE_AGENTS_ENABLED=true \
        --env=DRONE_GOGS_SERVER=http://192.168.31.112:10080 \
        --env=DRONE_RPC_SECRET=123456 \
        --env=DRONE_SERVER_HOST=192.168.31.112 \
        --env=DRONE_SERVER_PROTO=http \
        --env=DRONE_LOGS_TRACE=true \
        --publish=801:80 \
        --publish=4431:443 \
        --restart=always \
        --detach=true \
        --name=drone \
        drone/drone:2.0.2
      
      • DRONE_GOGS_SERVER:這里使用的是gogs作為git倉儲,當然drone也支持github,gitlab等一些主流的源碼管理平臺,不同的平臺需要設置不同的環境變量
      • DRONE_RPC_SECRET:與agent之間通信的密鑰,一定要配置
      • DRONE_SERVER_HOST:設置drone server使用的host名稱,可以是ip地址加端口號
      • DRONE_SERVER_PROTO:使用的協議http/https
      • DRONE_USER_CREATE:設置初始的管理員,這個是超級管理員
      • DRONE_LOGS_TRACE:啟動日志,默認是關閉的
      • DRONE_OPEN 開啟注冊,此配置允許任何人自注冊和登錄系統

      4. 激活倉庫配置Webhook

      • 1 登錄drone激活倉庫
      • 2 在倉庫創建.drone.yml文件
      • 3 檢查倉庫的webhooks配置是否正常

      image.png
      image.png

      激活之后,自動就會在gogs倉庫的Web設置中創建鉤子
      當不存在.drone.yml文件或者倉庫沒有在drone激活,測試返回的報文可能是dial tcp連接失敗。
      image.png

      5. 部署Drone-Runner

      Drone CI提供了多種runtime,可以利用docker方式運行,也可以通過傳統ssh方式運行,也可以采用k8s作為runtime;Drone CI實現了一個可拓展的runner架構,方便實現各種runner。Drone Runner是獨立的守護程序,用于輪詢服務器以執行掛起的Pipeline。有不同類型的Runner針對不同的用例和運行時環境進行了優化。成功安裝Drone Server后,必須安裝一個或多個運行器。

      使用ssh-runner

      用 SSH 協議在靜態遠程服務器上執行管道命令。管道命令直接在遠程服務器上執行,沒有隔離,使用默認 shell。出于安全原因,此運行器不適合不受信任的工作負荷。

      docker run -d \
        -e DRONE_RPC_PROTO=http \
        -e DRONE_RPC_HOST=192.168.31.112:801 \
        -e DRONE_RPC_SECRET=123456 \
        -p 4001:3000 \
        --restart always \
        --name runner-ssh \
        drone/drone-runner-ssh
      

      使用 docker runner

      針對可以在無狀態容器中運行測試和編譯代碼的項目進行了優化; 不太適合無法在容器內運行測試或編譯代碼的項目,包括面向 Docker 不支持的操作系統或體系結構(如 macOS)的項目。Docker 運行器也不太適合需要在管道執行之間在主機上存儲文件或文件夾的有狀態管道

      docker run -d \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -e DRONE_RPC_PROTO=http \
        -e DRONE_RPC_HOST=192.168.31.112:801 \
        -e DRONE_RPC_SECRET=123456 \
        -e DRONE_RUNNER_CAPACITY=10 \
        -e DRONE_RUNNER_NAME=${HOSTNAME} \
        -p 4002:3000 \
        --restart always \
        --name runner-docker \
        drone/drone-runner-docker:1
      
      • DRONE_RPC_HOST:上面啟動server時配置的host
      • DRONE_RPC_SECRET:跟server配置的要保持一致
      • DRONE_RUNNER_CAPACITY:可以同時執行的任務數
      • DRONE_RUNNER_NAME:一般設置為主機名

      image.png

      6. 配置.drone.yml運行Pipeline

      要使用 Drone 只需在項目根創建一個 .drone.yml 文件即可,這個是 Drone 構建腳本的配置文件,它隨項目一塊進行版本管理,開發者不需要額外再去維護一個配置腳本。其實現代 CI 程序都是這么做了, 包括 gitlab-ci, jenkinsfile, tekton等。
      image.png
      image.png

      源碼地址: https://gitee.com/devops-samples/drone-examples

      7 . Drone的場景使用

      1) 啟動新build

      支持選擇git 分支, 以及設置啟動參數, 這個功能在大部分構建平臺都有體現
      image.png

      2) 同步-SYNC

      點擊 SYNC 按鈕,就會和代碼倉庫進行同步,如果有倉庫刪除或者增加,就會同步進行更新
      image.png

      3) 定時觸發器-Cron jobs

      image.png
      幾乎所有的構建平臺都會提供類似的觸發器,比如 git web hook, 時間定時器等
      image.png

      4) 加密參數 - Secrets

      流水線執行過程中會涉及很多和服務交互,所以需要提供各種憑證,比如密碼,token 等,所以Secrets也是流水線中的一個重要元素。
      image.png
      image.png

      5) 版本部署/回滾 -Promote/Rollback

      僅僅完成制品的構建是遠遠不夠的,Drone也考慮到了部署和回滾的問題,所以提供了promote/rollbakc事件, 針對 某個成功版本進行部署或者回滾,和條件判斷when一起使用。
      image.png

      image.png

      6)步驟間順序依賴- 有向無環圖

      Drone 通過 **kind:pipeline **對步驟進行組織,支持并行流水線,同時通過 **depends_on **對流水線的先后順序進行限制, 如圖所示。
      image.png
      image.png

      7 )上下游流水線間調用

      image.png

      參考

      總結

      1. Drone與代碼管理平臺(e.g. gitlab, gogs)是強綁定關系,如果代碼管理平臺不能訪問,Drone就無法登錄,這個在Drone-Server的啟動命令就可以看出來。
      2. Drone 學習成本低,語法簡潔,如果你接觸過其他構建平臺,特別是云原生的,基于YAML進行編排的CI引擎,都是類似的。
      3. Drone是GitOps實踐額典型工具,通過和代碼倉庫進行深度融合,做到了隨時提交,隨時構建,很多能力都是通過容器插件實現,這也是有別于傳統構建系統的重要特點
      4. 從能力上,Drone本身就是輕量級的, 所以相對比較單一,可能無法滿足復雜的業務場景。目前Drone已經被收購,成為harness**平臺的重要一部分, **在該平臺上也可以看到Drone的身影。


      Harness CDaaS平臺為應用程序交付提供了一種更加無縫的方法,該方法可以自動檢測GitHub,Bamboo,Jenkins,Artifactory或Nexus存儲庫或任何Git存儲庫中的新版本。一旦DevOps團隊收到警報,他們可以使用圖形工具不僅使用YAML文件自動化構建管道的過程,還可以利用機器學習算法評估部署的質量,然后在必要時通過從工具訪問數據自動回滾例如AppDynamics,New Relic,Splunk,Elastic Search和Sumologic,并添加了Habib。

      image.png
      image.png

      image.png

      posted @ 2022-03-20 01:08  DevOps在路上  閱讀(2983)  評論(2)    收藏  舉報
      主站蜘蛛池模板: av新版天堂在线观看| 亚洲国产精品无码一区二区三区 | 中文字幕日韩国产精品| 国产成人一区二区三区免费| 97香蕉碰碰人妻国产欧美| 俄罗斯美女真人性做爰| 亚洲av日韩av永久无码电影| 中文字幕精品无码一区二区| 亚日韩精品一区二区三区| 欧美老少配性行为| 日韩少妇内射免费播放| 欧美伦费免费全部午夜最新| 天堂资源国产老熟女在线| 日本道不卡一二三区视频| 国精品无码一区二区三区在线| 麻豆国产97在线 | 欧美| 在线播放国产精品三级网| 日韩69永久免费视频| 免费看亚洲一区二区三区| 亚洲av在线观看| 成人午夜av在线播放| 久久精品国产一区二区蜜芽| 忘记穿内裤被同桌摸到高潮app| 衡阳县| 综合区一区二区三区狠狠| 少妇上班人妻精品偷人| 台州市| 亚洲成熟女人av在线观看| 久久久WWW成人免费精品| 亚洲第一精品一二三区| 精品亚洲欧美高清不卡高清| 国模精品视频一区二区三区| 巢湖市| 亚洲av综合色一区二区| 男女啪啪18禁无遮挡激烈| 兴山县| 一级国产在线观看高清| 欧美高清精品一区二区| 国产成人亚洲综合图区| 推特国产午夜福利在线观看| 无码人妻精品一区二区三区蜜桃 |