輕鬆一刻|Walrus CLI與CI/CD工具整合,輕鬆部署2048遊戲
Walrus 是一款開源的基於平臺工程理念、以應用為中心、以完整應用系統自動化編排交付為目標進行設計開發的雲原生應用平臺,簡化和自動化應用部署與釋出流程並與現有的 CI/CD 流水線無縫整合。今天我們來點有趣的,跟隨本教程,一起將 Walrus CLI 與 CI/CD 工具整合來部署2048遊戲 ?。
前提條件
在開始之前,請先完成以下準備工作:
-
建立一個 GitHub 倉庫,fork 我們的 demo 專案(
-
安裝 Walrus(
-
在 Walrus 中建立 demo 專案。
-
在 demo 專案中建立 K8s 聯結器。
-
建立一個環境,並新增上面建立的 K8s 聯結器。
準備就緒,現在開始吧~
生成 API 金鑰
為了讓 Walrus CLI 與 Walrus Server 之間能夠通訊,您需要建立一個 API 金鑰。操作步驟如下:
-
在使用者資訊 中選擇
API
金鑰 。 -
點選新增金鑰 ,為金鑰命名並設定過期時間。
-
配置金鑰後,複製生成的金鑰。此金鑰用來讓 CLI 連線到 Walrus Server。
將 Walrus CLI 與 GitHub Actions 整合
這裡我們將演示如何將 Walrus CLI 與 GitHub Actions 整合。按照以下步驟操作:
-
訪問 GitHub 倉庫,選擇
Settings
選項卡,然後導航到Security > Secrets and variables > Actions
。 -
在 Repository secrets 下新增以下變數,配置儲存 GitHub Actions 執行需要的敏感資訊:
CI_REGISTRY_USERNAME
、CI_REGISTRY_PASSWORD
、CD_WALRUS_SERVER
和CD_WALRUS_TOKEN
。對於CD_WALRUS_SERVER
,格式為。這些變數將於 GitHub Actions 與映象倉庫、Walrus CLI 之間進行安全通訊。
在 GitHub 倉庫中建立
ci.yaml
檔案(位於 `.github/workflows``` 目錄下)。此檔案將定義您的 CI/CD 工作流。
以下是用於部署2048遊戲的
ci.yaml
檔案示例,您可以根據特定的環境變數和要求進行復制和自定義。例如,將映象 Repo 修改為自己的映象倉庫 Repo:
name: CICDon: push: branches: [ "main" ] pull_request: branches: [ "main" ]env: CI_REGISTRY: '' # Use Docker Hub when empty CI_IMAGE_NAME: sealdemo/game2048 CD_WALRUS_PROJECT: demo CD_WALRUS_PROJECT_ENV: dev CD_WALRUS_SERVICE_NAME: game2048 jobs: delivery: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 8 uses: actions/setup-java@v3 with: java-version: '8' distribution: 'temurin' cache: maven - name: Build with Maven run: mvn -B clean package --file pom.xml - name: Docker Login uses: docker/login-action@v3.0.0 with: registry: ${{ env.CI_REGISTRY }} username: ${{ secrets.CI_REGISTRY_USERNAME }} password: ${{ secrets.CI_REGISTRY_PASSWORD }} - name: Build and push Docker image run: | docker build . --file Dockerfile --tag ${{ env.CI_IMAGE_NAME }}:${{ github.run_id }} docker push ${{ env.CI_IMAGE_NAME }}:${{ github.run_id }} - name: Download CLI run: | # Download walrus CLI curl -v -k -o walrus -LO "${{ secrets.CD_WALRUS_SERVER }}/cli?arch=amd64&os=linux" chmod +x ./walrus - name: Deploy run: | # Setup CLI config ./walrus config setup --insecure --server ${{ secrets.CD_WALRUS_SERVER }} --token ${{ secrets.CD_WALRUS_TOKEN }} --project ${{ env.CD_WALRUS_PROJECT }} --environment ${{ env.CD_WALRUS_PROJECT_ENV }} # Deploy app ./walrus service create --debug --name ${{ env.CD_WALRUS_SERVICE_NAME }} --template '{"name": "webservice", "version": "v0.0.2"}' --attributes '{"image": "${{ env.CI_IMAGE_NAME }}:${{ github.run_id }}", "ports": ["8080"]}'
現在,選擇
Actions
選項卡,嘗試觸發工作流執行並檢查結果。
如果在工作流程執行過程中遇到任何錯誤,請先檢查 GitHub Actions 的許可權和配置,確保一切都設定正確。
完成部署後,您可以在 Walrus 中檢視所部署的2048遊戲。可以使用此 URL(
:port/2048/)訪問2048遊戲。
到此,你已經成功部署2048遊戲啦,Enjoy your time~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026925/viewspace-2995833/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【輕鬆一刻】Java製作字元動畫Java字元動畫
- 輕鬆實現報表整合
- Java程式設計師輕鬆一刻之二Java程式設計師
- Docker叢集輕鬆部署ApacheStormDockerApacheORM
- 輕鬆一刻:程式設計師的工作狀態程式設計師
- Dockerfile+Jenkinsfile+GitLab輕鬆實現.NetCore程式的CI&CDDockerJenkinsGitlabNetCore
- 輕鬆部署 Laravel 應用 | 《開篇》Laravel
- 辦公室革命,教你輕鬆搞定輕鬆玩轉ExcelExcel
- 一鍵雲部署:ROS的Terraform託管服務助你輕鬆上線2048經典遊戲ROSORM遊戲
- 輕鬆部署 Laravel 應用 | 《13. 更新與回滾》Laravel
- CentOS7 輕鬆部署 Laravel 應用CentOSLaravel
- 輕鬆一刻:什麼是雞尾酒排序和地精排序?排序
- 簡單輕鬆部署你的專案 - Deployer
- 輕鬆Scrum之旅(下)Scrum
- 輕鬆Scrum之旅(上)Scrum
- Excel輕鬆入門Excel
- CI/CD 持續整合部署實踐
- 教你輕鬆整合華為Image Kit圖文排版功能
- Walrus 實用教程|Walrus + Gitlab,打通CI/CD 自動化交付!Gitlab
- 輕鬆部署 Laravel 應用 | 《15. 瞭解 Envoy》Laravel
- 輕鬆部署 Laravel 應用 | 《16. 初試 Envoy》Laravel
- 輕鬆部署 Laravel 應用 | 《01. 寶塔皮膚》Laravel
- Tomcat 伺服器輕鬆部署 SSL 證書Tomcat伺服器
- 如何透過 Rancher 輕鬆實現多雲部署
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 輕鬆理解 Spring AOPSpring
- 看動畫輕鬆理解「 堆 」動畫
- oracle 輕鬆小sql注入OracleSQL
- iOS之輕鬆上手blockiOSBloC
- 輕鬆使用Aspire rabbitmq frameworkMQFramework
- 如何輕鬆歸檔檔案?2種方法輕鬆建立歸檔檔案!
- 使用Spring整合Quartz輕鬆完成定時任務Springquartz
- AntSK 0.2.3 版本更新:輕鬆整合 AI 本地離線模型AI模型
- 輕鬆部署 Laravel 應用 | 《05. 手動部署 - 安裝 Nginx》LaravelNginx
- 『輕鬆部署 Laravel 應用』系列文章快捷連結Laravel
- 輕鬆部署 Laravel 應用 | 《02. 一鍵指令碼》Laravel指令碼
- 不輕鬆,伺服器部署nginx+uwsgi+djangorestfremework+react伺服器NginxDjangoRESTREMReact
- 使用Rainbond部署Logikm,輕鬆管理Kafka叢集AIKafka