輕鬆一刻|Walrus CLI與CI/CD工具整合,輕鬆部署2048遊戲

Seal數澈發表於2023-11-17

Walrus 是一款開源的基於平臺工程理念、以應用為中心、以完整應用系統自動化編排交付為目標進行設計開發的雲原生應用平臺,簡化和自動化應用部署與釋出流程並與現有的 CI/CD 流水線無縫整合。今天我們來點有趣的,跟隨本教程,一起將 Walrus CLI 與 CI/CD 工具整合來部署2048遊戲 ?。
 

前提條件

在開始之前,請先完成以下準備工作:

  1. 建立一個 GitHub 倉庫,fork 我們的 demo 專案(

  2. 安裝 Walrus(

  3. 在 Walrus 中建立 demo 專案。

  4. 在 demo 專案中建立 K8s 聯結器。

  5. 建立一個環境,並新增上面建立的 K8s 聯結器。

 

 

準備就緒,現在開始吧~
 

生成 API 金鑰

為了讓 Walrus CLI 與 Walrus Server 之間能夠通訊,您需要建立一個 API 金鑰。操作步驟如下:

  1. 在使用者資訊 中選擇 API金鑰 。

  2. 點選新增金鑰 ,為金鑰命名並設定過期時間。

  3. 配置金鑰後,複製生成的金鑰。此金鑰用來讓 CLI 連線到 Walrus Server。
     

 

將 Walrus CLI 與 GitHub Actions 整合

這裡我們將演示如何將 Walrus CLI 與 GitHub Actions 整合。按照以下步驟操作:

  1. 訪問 GitHub 倉庫,選擇 Settings 選項卡,然後導航到 Security > Secrets and variables > Actions 。

  2. 在 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章