Mosquitto: 使用 CLI 自動化操作
透過 Stackhero CLI 程式化啟動 Mosquitto、取得其認證資訊並變更其設定
👋 歡迎來到 Stackhero 文件!
Stackhero 提供即用型 Mosquitto MQTT cloud 解決方案,帶來多項優勢,包括:
- 無限的消息交換和傳輸。
- 通過外部 API 進行 無限 的設備認證。
- 在主題、用戶和操作上提供 高級 ACLs。
- 使用 HTTPS 保護的 可自訂域名(例如,https://mqtt.your-company.com)。
- 只需點擊即可輕鬆 更新。
- 由 專用私有 VM 提供的最佳 性能 和強大 安全性。
節省時間 並 簡化您的生活:只需 5 分鐘 即可嘗試 Stackhero 的 Mosquitto MQTT cloud hosting 解決方案!
本指南將說明如何從命令列全程建立 Mosquitto 服務、讀取其認證資訊並更新其設定,完全不需在控制台點擊操作。這非常適合用於腳本、自動化流程(CI pipeline)及 AI agent。
我們將全程使用 Stackhero CLI。如果您尚未安裝,可以透過以下指令安裝:
curl -fsSL https://www.stackhero.io/install.sh | sh
1. 驗證身份
最簡單的開始方式是透過瀏覽器登入。當您執行登入指令時,CLI 會自動開啟網頁,讓您授權存取權限。您不需要在 CLI 輸入密碼或 2FA 驗證碼。
stackhero login
登入後,您的認證資訊會儲存在本地端,後續 CLI 指令會自動使用。
若是在完全自動化的環境(如腳本或 CI pipeline),建議使用非互動式的 access token。您可以在控制台(帳戶 > Access tokens)建立一組,然後將其匯出為環境變數。CLI 及所有腳本都會自動讀取這個變數。
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
2. 查找 Mosquitto 服務商店
接下來,您可以列出帳戶下可用的 Mosquitto 服務商店。CLI 可直接接受商店名稱(mosquitto),無需查找或複製任何 ID。
# 列出 Mosquitto 服務商店(如管理多個組織可加上 --organization)
stackhero services-store-list --name="mosquitto"
您可以在後續指令中直接使用商店名稱 mosquitto,或從清單中選擇特定的 svs-xxxxxx ID。
3. 選擇實例規格與區域
# 列出服務商店可用的實例規格(請使用 NAME 欄位作為 --instance)
stackhero instances-store-list --service-store=mosquitto
# 列出可用區域(如 "europe")
stackhero regions-list
4. 建立服務
以下是一個範例腳本,會建立一個 stack,將您的 Mosquitto 服務加入其中,等待服務啟動,取得其設定(包含自動產生的認證資訊),然後套用新的設定。
#!/bin/bash
set -e
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
serviceStore="mosquitto" # Mosquitto 服務商店名稱(見步驟 2)
instance="..." # 步驟 3 選擇的實例規格
region="europe" # 步驟 3 選擇的區域名稱
# 建立服務專用的 stack(預設使用您的主要組織;如需指定請加 --organization)
stackId=$(stackhero --format=script stack-create \
--name="My Mosquitto stack")
echo "Stack created: ${stackId}"
# 將 Mosquitto 加入 stack(名稱會自動解析)
serviceId=$(stackhero --format=script service-add \
--stack="My Mosquitto stack" \
--service-store="${serviceStore}" \
--instance="${instance}" \
--region="${region}")
echo "Service added: mosquitto"
# 等待服務完全啟動(可能需數分鐘)
stackhero service-wait-for --service="mosquitto"
# 取得服務設定,包含自動產生的認證資訊
stackhero service-configuration-get --service="mosquitto" --format=json
5. 取得認證資訊
service-configuration-get 指令會回傳服務的完整設定,包括自動產生的密碼與連線資訊。輸出為 JSON 格式,方便腳本與自動化流程使用。
stackhero service-configuration-get --service=svc-xxxxxx --format=json
6. 變更設定
您可以先檢視範例設定結構,然後套用自訂設定。當您更新設定時,服務可能會自動重啟以套用變更。
# 檢視服務的設定結構與範例
stackhero service-configuration-example --service=svc-xxxxxx
# 套用自訂設定(如有需要服務會自動重啟)
stackhero service-configuration-set \
--service=svc-xxxxxx \
--configuration='{ "...": "..." }'
# 等待新設定套用完成
stackhero service-wait-for --service=svc-xxxxxx
就是這樣,您已經完整體驗了:啟動服務、取得認證資訊、並重新設定,全程可用腳本自動化。若想深入了解,請參考完整 CLI 文件,其中也包含本指南介紹的非互動式 STACKHERO_TOKEN 驗證方式。