Rainbond PipeLine外掛部署與springboot應用部署實踐

2023-03-21 12:02:27

前言:上一篇介紹額rainbond單機部署+單個節點的k8s環境搭建,本篇介紹rainbond5.12新增的pipeline外掛的使用

1、Pipeline外掛的安裝

  • 安裝gitlab與gitlab-runner

    Pipeline 應用外掛依賴於 GitLab 和 GitLab Runner,需要先部署 GitLab 和 GitLab Runner;如果您已經部署了 GitLab 和 GitLab Runner,可以跳過此步驟。
    在團隊檢視下,點選團隊;新建-從應用市場安裝

    在開源應用商店,搜尋gitlab

    安裝完成後,進入gitlab管理員介面,找到註冊runner的token


    Gitlab-runner部署完成後,進入元件內 -> Web 終端,執行以下命令進行註冊

    修改URL,TOKEN,TAG中的內容為自己的 GitLab 地址和 Token以及 Runner Tag,Tag名稱隨便自定義一個

    參考命令如下:
      gitlab-runner register \
        --non-interactive \
        --executor "docker" \
        --docker-image alpine:latest \
        --url "http://80.gr51c6c9.jknqu4l0.e84e34.grapps.cn/" \
        --registration-token "jvgpm_zgZyr7swTKvPY7" \
        --description "docker-runner" \
        --tag-list "xujk-runner" \
        --run-untagged="true" \
        --locked="false" \
        --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
        --docker-volumes /root/.m2/ \
        --docker-privileged="true" \
        --access-level="not_protected" \
        --docker-pull-policy="if-not-present"
    
    命令執行成功後,可在gitlab管理介面檢視runner資訊

  • 安裝pipeline外掛

    從應用市場搜尋pipeline外掛,安裝

    安裝成功後,修改Pipeline-Backend元件內的環境變數

    • RAINBOND_URL: Rainbond 控制檯存取地址,例如:http://192.168.231.138:7070
    • RAINBOND_TOKEN: Rainbond 控制檯的 Token,可以在 右上角使用者 -> 個人中心 -> 存取令牌 中獲取。

    • BACKEND_URL: 修改為pipeline外掛中pipeline_backend的url地址:http://9090.grce8d7b.zf9ivk3r.e84e34.grapps.cn

    修改完成後,更新或重啟元件生效

    進入到 Pipeline 應用內 -> k8s 資源 -> 編輯 rainbond-pipeline,修改 pipeline 資源中的 access_urls 設定,修改為 Pipeline-UI 元件的對外存取地址

    修改完成後,就可以在每個團隊檢視中看到 流水線 按鈕選項了

2、java springboot專案部署實踐

  • 程式碼專案准備,參考專案:https://gitee.com/xujk-27400861/springboot-dubbo.git

  • 在gitlab中,新建匯入專案,從gitee碼雲倉庫中拷貝程式碼

  • 在rainbond介面,流水線管理介面中,新建流水線;因為應用服務依賴於流水線

  • 新建應用服務

  • 在程式碼管理面板中,點選構建,編譯釋出程式碼

  • 在gitlab管理介面中,可以看到流水線操作狀況

  • 在rainbond管理介面中,可以看到springboot1應用中,springboot服務執行更新的狀態

  • boot應用是通過映象來構建的,我們可以自定義api方式,設定rainbond自動構建

3、springbootapp1流水線相關步驟說明

  • 程式碼構建步驟:

  • 映象製作步驟:

    參考程式碼:
      cp ${package_path}/target/${jar_name}.jar app.jar
      docker login -u ${REPOSITORY_USERNAME} -p ${REPOSITORY_PASSWORD}
      docker build -t  ${ORG}/${modulename}:${DEVOPS_VERSION} .
      docker push ${ORG}/${modulename}:${DEVOPS_VERSION}
      export IMAGE=${ORG}/${modulename}:${DEVOPS_VERSION}
      curl -d '{"secret_key":"LnfODTFb"}' -H "Content-type:application/json" -X POST http://192.168.231.138:7070/console/custom/deploy/a577d26b5afc5c65125a5258b9cbcd50
    
    相關環境變數:

    package_path:provider
    REPOSITORY_USERNAME與REPOSITORY_PASSWORD對應hub.docker.com的使用者名稱和密碼,REPOSITORY_URL映象倉庫地址,我這裡置空,預設存取hub.docker
    DEVOPS_VERSION:1.0
    modulename:springbootapp
    ORG:xjk****0861
    jar_name:provider-0.0.1-SNAPSHOT,對應java打完包的包名稱

4、關於.netcore專案的構建

由於pipeline沒有.netcore的構建模板,暫時應該不支援;
我們可以通過其他的CI/CD工具,比如jenkins,azure devops,gitlab自帶的CI/CD工具等,構建好程式碼,打包映象,通過呼叫rainbond api的方式釋出應用;也可以通過構建-映象倉庫Webhook-的方式,通過映象更新,來觸發更新構建服務應用,具體可參考rainbond官網自動部署部分