Dela via


Felsöka BMM-problem med hjälp av az networkcloud baremetalmachine run-read-command

Det kan finnas situationer där en användare behöver undersöka och lösa problem med en lokal dator utan operativsystem (BMM). Operatorn az networkcloud baremetalmachine run-read-command Nexus tillhandahåller så att användare kan köra en kurerad lista med skrivskyddade kommandon för att hämta information från en BMM.

Kommandot skapar en utdatafil som innehåller resultatet av körningen av körningsläsningskommandot. Som standard skickas data till Klusterhanterarens lagringskonto. Det finns också en förhandsgranskningsmetod där användarna kan konfigurera klusterresursen med ett lagringskonto och en identitet som har åtkomst till lagringskontot för att ta emot utdata.

Förutsättningar

  1. Installera den senaste versionen av lämpliga CLI-tillägg
  2. Se till att BMM-målet måste ha sin poweredState uppsättning till On och ha sin readyStateTrue
  3. Hämta namnet på den hanterade resursgruppen (cluster_MRG) som du skapade för Cluster resursen

Kontrollera åtkomsten till Klusterhanterarens lagringskonto

Kommentar

Utdatametoden för Cluster Manager-lagringskontot kommer att bli inaktuell i framtiden när klusterinmatningen till betrodda tjänster har slutförts och det användarhanterade lagringsalternativet stöds fullt ut.

Om du använder Cluster Manager-lagringsmetoden kontrollerar du att du har åtkomst till Klusterhanterarens lagringskonto:

  1. Från Azure Portal går du till Klusterhanterarens lagringskonto.
  2. I information om lagringskontot väljer du Lagringswebbläsare på navigeringsmenyn till vänster.
  3. I information om Storage-webbläsaren väljer du blobcontainrar.
  4. Om du får ett 403 This request is not authorized to perform this operation. tag åtkomst till lagringskontot måste lagringskontots brandväggsinställningar uppdateras för att inkludera den offentliga IP-adressen.
  5. Begär åtkomst genom att skapa ett supportärende via portalen på Cluster Manager-resursen. Ange den offentliga IP-adress som kräver åtkomst.

FÖRHANDSVERSION: Skicka kommandoutdata till ett användarangivet lagringskonto

Viktigt!

Observera att den här metoden för att ange ett användarkonto för kommandoutdata finns i förhandsversionen. Den här metoden bör endast användas med användarkonton som inte har brandvägg aktiverat. Om din miljö kräver att brandväggen för lagringskontot är aktiverad använder du den befintliga cluster manager-utdatametoden.

Skapa och konfigurera lagringsresurser

  1. Skapa ett lagringskonto eller identifiera ett befintligt lagringskonto som du vill använda. Se Skapa ett Azure Storage-konto.
  2. Skapa en bloblagringscontainer i lagringskontot. Se Skapa en container.
  3. Tilldela rollen "Storage Blob Data Contributor" till användare och hanterade identiteter som behöver åtkomst till run-data-extract-utdata.
    1. Se Tilldela en Azure-roll för åtkomst till blobbdata. Rollen måste också tilldelas till antingen en användartilldelad hanterad identitet eller klustrets egen systemtilldelade hanterade identitet.
    2. Mer information om hanterade identiteter finns i Hanterade identiteter för Azure-resurser.
    3. Om du använder klustrets systemtilldelade identitet måste den systemtilldelade identiteten läggas till i klustret innan den kan beviljas åtkomst.
    4. När du tilldelar en roll till klustrets systemtilldelade identitet kontrollerar du att du väljer resursen med typen "Kluster (Operator Nexus)."

Konfigurera klustret att använda en användartilldelad hanterad identitet för lagringsåtkomst

Använd det här kommandot för att skapa ett kluster med ett användarhanterat lagringskonto och användartilldelad identitet. Observera att det här exemplet är ett förkortat kommando som bara markerar fälten som är relevanta för att lägga till användarhanterad lagring. Det är inte det fullständiga kommandot för att skapa kluster.

az networkcloud cluster create --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  ...
  --mi-user-assigned "<user-assigned-identity-resource-id>" \
  --command-output-settings identity-type="UserAssignedIdentity" \
  identity-resource-id="<user-assigned-identity-resource-id>" \
  container-url="<container-url>" \
  ...
  --subscription "<subscription>"

Använd det här kommandot för att konfigurera ett befintligt kluster för ett användarangivet lagringskonto och användartilldelad identitet. Uppdateringskommandot kan också användas för att ändra lagringskontots plats och identitet om det behövs.

az networkcloud cluster update --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  --mi-user-assigned "<user-assigned-identity-resource-id>" \
  --command-output-settings identity-type="UserAssignedIdentity" \
  identity-resource-id="<user-assigned-identity-resource-id>" \
  container-url="<container-url>" \
  --subscription "<subscription>"

Konfigurera klustret att använda en systemtilldelad hanterad identitet för lagringsåtkomst

Använd det här kommandot för att skapa ett kluster med ett användarhanterat lagringskonto och en systemtilldelad identitet. Observera att det här exemplet är ett förkortat kommando som bara markerar fälten som är relevanta för att lägga till användarhanterad lagring. Det är inte det fullständiga kommandot för att skapa kluster.

az networkcloud cluster create --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  ...
  --mi-system-assigned true \
  --command-output-settings identity-type="SystemAssignedIdentity" \
  container-url="<container-url>" \
  ...
  --subscription "<subscription>"

Använd det här kommandot för att konfigurera ett befintligt kluster för ett lagringskonto som tillhandahålls av användaren och för att använda en egen systemtilldelad identitet. Uppdateringskommandot kan också användas för att ändra lagringskontots plats.

az networkcloud cluster update --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  --mi-system-assigned true \
  --command-output-settings identity-type="SystemAssignedIdentity" \
  container-url="<container-url>" \
  --subscription "<subscription>"

Om du vill ändra klustret från en användartilldelad identitet till en systemtilldelad identitet måste CommandOutputSettings först rensas med kommandot i nästa avsnitt och sedan ställas in med det här kommandot.

Rensa klustrets CommandOutputSettings

CommandOutputSettings kan rensas och dirigera run-data-extract-utdata tillbaka till klusterhanterarens lagring. Det rekommenderas dock inte eftersom det är mindre säkert och alternativet tas bort i en framtida version.

CommandOutputSettings måste dock rensas om du byter från en användartilldelad identitet till en systemtilldelad identitet.

Använd det här kommandot för att rensa CommandOutputSettings:

az rest --method patch \
  --url  "https://management.azure.com/subscriptions/<subscription>/resourceGroups/<cluster-resource-group>/providers/Microsoft.NetworkCloud/clusters/<cluster-name>?api-version=2024-08-01-preview" \
  --body '{"properties": {"commandOutputSettings":null}}'

Visa huvud-ID:t för den hanterade identiteten

Du hittar identitetsresurs-ID:t genom att välja "JSON-vy" på identitetsresursen. ID:t finns överst i panelen som visas. Container-URL:en finns på fliken Inställningar –> egenskaper för containerresursen.

CLI kan också användas för att visa identiteten och de associerade huvudnamns-ID:t i klustret.

Exempel:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

Exempel på systemtilldelad identitet:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

Exempel på användartilldelad identitet:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
                "principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
            }
        }
    },

Köra ett körningsläsningskommando

Med körningsläsningskommandot kan du köra ett kommando på BMM som inte ändrar något. Vissa kommandon har mer än ett ord eller behöver ett argument för att fungera. Dessa kommandon görs så här för att skilja dem från dem som kan ändra saker. Run-read-command kan till exempel använda kubectl get men inte kubectl apply. När du använder dessa kommandon måste du placera alla ord i fältet "kommando". Till exempel är {"command":"kubectl get","arguments":["nodes"]} rätt, {"command":"kubectl","arguments":["get","nodes"]} är fel.

Observera också att vissa kommandon börjar med nc-toolbox nc-toolbox-runread och måste anges som visas. nc-toolbox-runread är en särskild containeravbildning som innehåller fler verktyg som inte är installerade på bare metal-värden, till exempel ipmitool och racadm.

Vissa av run-read-kommandona kräver att specifika argument anges för att framtvinga skrivskyddade funktioner i kommandona. Ett exempel på körningsläsningskommandon som kräver specifika argument är det tillåtna Mellanox-kommandot mstconfig, som kräver query att argumentet anges för att framtvinga skrivskyddad användning.

Varning

Microsoft tillhandahåller eller stöder inga operatörs-Nexus API-anrop som förväntar sig att användarnamn och/eller lösenord i klartext ska anges. Observera att alla värden som skickas loggas och anses vara exponerade hemligheter, som ska roteras och återkallas. Den Microsoft-dokumenterade metoden för säker användning av hemligheter är att lagra dem i ett Azure Key Vault, om du har specifika frågor eller problem skickar du en begäran via Azure-portalen.

I den här listan visas de kommandon som du kan använda. Kommandon i *italics* kan inte ha arguments, resten kan.

  • arp
  • brctl show
  • dmidecode
  • fdisk -l
  • host
  • hostname
  • ifconfig -a
  • ifconfig -s
  • ip address show
  • ip link show
  • ip maddress show
  • ip route show
  • journalctl
  • kubectl api-resources
  • kubectl api-versions
  • kubectl describe
  • kubectl get
  • kubectl logs
  • mount
  • ping
  • ss
  • tcpdump
  • traceroute
  • uname
  • ulimit -a
  • uptime
  • nc-toolbox nc-toolbox-runread ipmitool channel authcap
  • nc-toolbox nc-toolbox-runread ipmitool channel info
  • nc-toolbox nc-toolbox-runread ipmitool chassis status
  • nc-toolbox nc-toolbox-runread ipmitool chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool chassis restart cause
  • nc-toolbox nc-toolbox-runread ipmitool chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool dcmi power get_limit
  • nc-toolbox nc-toolbox-runread ipmitool dcmi sensors
  • nc-toolbox nc-toolbox-runread ipmitool dcmi asset_tag
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_mc_id_string
  • nc-toolbox nc-toolbox-runread ipmitool dcmi thermalpolicy get
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_temp_reading
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_conf_param
  • nc-toolbox nc-toolbox-runread ipmitool delloem lcd info
  • nc-toolbox nc-toolbox-runread ipmitool delloem lcd status
  • nc-toolbox nc-toolbox-runread ipmitool delloem mac list
  • nc-toolbox nc-toolbox-runread ipmitool delloem mac get
  • nc-toolbox nc-toolbox-runread ipmitool delloem lan get
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor powerconsumption
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor powerconsumptionhistory
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor getpowerbudget
  • nc-toolbox nc-toolbox-runread ipmitool delloem vflash info card
  • nc-toolbox nc-toolbox-runread ipmitool echo
  • nc-toolbox nc-toolbox-runread ipmitool ekanalyzer print
  • nc-toolbox nc-toolbox-runread ipmitool ekanalyzer summary
  • nc-toolbox nc-toolbox-runread ipmitool fru print
  • nc-toolbox nc-toolbox-runread ipmitool fwum info
  • nc-toolbox nc-toolbox-runread ipmitool fwum status
  • nc-toolbox nc-toolbox-runread ipmitool fwum tracelog
  • nc-toolbox nc-toolbox-runread ipmitool gendev list
  • nc-toolbox nc-toolbox-runread ipmitool hpm rollbackstatus
  • nc-toolbox nc-toolbox-runread ipmitool hpm selftestresult
  • nc-toolbox nc-toolbox-runread ipmitool ime help
  • nc-toolbox nc-toolbox-runread ipmitool ime info
  • nc-toolbox nc-toolbox-runread ipmitool isol info
  • nc-toolbox nc-toolbox-runread ipmitool lan print
  • nc-toolbox nc-toolbox-runread ipmitool lan alert print
  • nc-toolbox nc-toolbox-runread ipmitool lan stats get
  • nc-toolbox nc-toolbox-runread ipmitool mc bootparam get
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis policy list
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis status
  • nc-toolbox nc-toolbox-runread ipmitool mc getenables
  • nc-toolbox nc-toolbox-runread ipmitool mc getsysinfo
  • nc-toolbox nc-toolbox-runread ipmitool mc guid
  • nc-toolbox nc-toolbox-runread ipmitool mc info
  • nc-toolbox nc-toolbox-runread ipmitool mc restart cause
  • nc-toolbox nc-toolbox-runread ipmitool mc watchdog get
  • nc-toolbox nc-toolbox-runread ipmitool bmc bootparam get
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis policy list
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis status
  • nc-toolbox nc-toolbox-runread ipmitool bmc getenables
  • nc-toolbox nc-toolbox-runread ipmitool bmc getsysinfo
  • nc-toolbox nc-toolbox-runread ipmitool bmc guid
  • nc-toolbox nc-toolbox-runread ipmitool bmc info
  • nc-toolbox nc-toolbox-runread ipmitool bmc restart cause
  • nc-toolbox nc-toolbox-runread ipmitool bmc watchdog get
  • nc-toolbox nc-toolbox-runread ipmitool nm alert get
  • nc-toolbox nc-toolbox-runread ipmitool nm capability
  • nc-toolbox nc-toolbox-runread ipmitool nm discover
  • nc-toolbox nc-toolbox-runread ipmitool nm policy get policy_id
  • nc-toolbox nc-toolbox-runread ipmitool nm policy limiting
  • nc-toolbox nc-toolbox-runread ipmitool nm statistics
  • nc-toolbox nc-toolbox-runread ipmitool nm suspend get
  • nc-toolbox nc-toolbox-runread ipmitool nm threshold get
  • nc-toolbox nc-toolbox-runread ipmitool pef
  • nc-toolbox nc-toolbox-runread ipmitool picmg addrinfo
  • nc-toolbox nc-toolbox-runread ipmitool picmg policy get
  • nc-toolbox nc-toolbox-runread ipmitool power status
  • nc-toolbox nc-toolbox-runread ipmitool sdr elist
  • nc-toolbox nc-toolbox-runread ipmitool sdr get
  • nc-toolbox nc-toolbox-runread ipmitool sdr info
  • nc-toolbox nc-toolbox-runread ipmitool sdr list
  • nc-toolbox nc-toolbox-runread ipmitool sdr type
  • nc-toolbox nc-toolbox-runread ipmitool sel elist
  • nc-toolbox nc-toolbox-runread ipmitool sel get
  • nc-toolbox nc-toolbox-runread ipmitool sel info
  • nc-toolbox nc-toolbox-runread ipmitool sel list
  • nc-toolbox nc-toolbox-runread ipmitool sel time get
  • nc-toolbox nc-toolbox-runread ipmitool sensor get
  • nc-toolbox nc-toolbox-runread ipmitool sensor list
  • nc-toolbox nc-toolbox-runread ipmitool session info
  • nc-toolbox nc-toolbox-runread ipmitool sol info
  • nc-toolbox nc-toolbox-runread ipmitool sol payload status
  • nc-toolbox nc-toolbox-runread ipmitool user list
  • nc-toolbox nc-toolbox-runread ipmitool user summary
  • nc-toolbox nc-toolbox-runread racadm arp
  • nc-toolbox nc-toolbox-runread racadm coredump
  • nc-toolbox nc-toolbox-runread racadm diagnostics
  • nc-toolbox nc-toolbox-runread racadm eventfilters get
  • nc-toolbox nc-toolbox-runread racadm fcstatistics
  • nc-toolbox nc-toolbox-runread racadm get
  • nc-toolbox nc-toolbox-runread racadm getconfig
  • nc-toolbox nc-toolbox-runread racadm gethostnetworkinterfaces
  • nc-toolbox nc-toolbox-runread racadm getled
  • nc-toolbox nc-toolbox-runread racadm getniccfg
  • nc-toolbox nc-toolbox-runread racadm getraclog
  • nc-toolbox nc-toolbox-runread racadm getractime
  • nc-toolbox nc-toolbox-runread racadm getsel
  • nc-toolbox nc-toolbox-runread racadm getsensorinfo
  • nc-toolbox nc-toolbox-runread racadm getssninfo
  • nc-toolbox nc-toolbox-runread racadm getsvctag
  • nc-toolbox nc-toolbox-runread racadm getsysinfo
  • nc-toolbox nc-toolbox-runread racadm gettracelog
  • nc-toolbox nc-toolbox-runread racadm getversion
  • nc-toolbox nc-toolbox-runread racadm hwinventory
  • nc-toolbox nc-toolbox-runread racadm ifconfig
  • nc-toolbox nc-toolbox-runread racadm inlettemphistory get
  • nc-toolbox nc-toolbox-runread racadm jobqueue view
  • nc-toolbox nc-toolbox-runread racadm lclog view
  • nc-toolbox nc-toolbox-runread racadm lclog viewconfigresult
  • nc-toolbox nc-toolbox-runread racadm license view
  • nc-toolbox nc-toolbox-runread racadm netstat
  • nc-toolbox nc-toolbox-runread racadm nicstatistics
  • nc-toolbox nc-toolbox-runread racadm ping
  • nc-toolbox nc-toolbox-runread racadm ping6
  • nc-toolbox nc-toolbox-runread racadm racdump
  • nc-toolbox nc-toolbox-runread racadm sslcertview
  • nc-toolbox nc-toolbox-runread racadm swinventory
  • nc-toolbox nc-toolbox-runread racadm systemconfig getbackupscheduler
  • nc-toolbox nc-toolbox-runread racadm systemperfstatistics (PeakReset-argumentet tillåts INTE)
  • nc-toolbox nc-toolbox-runread racadm techsupreport getupdatetime
  • nc-toolbox nc-toolbox-runread racadm traceroute
  • nc-toolbox nc-toolbox-runread racadm traceroute6
  • nc-toolbox nc-toolbox-runread racadm usercertview
  • nc-toolbox nc-toolbox-runread racadm vflashsd status
  • nc-toolbox nc-toolbox-runread racadm vflashpartition list
  • nc-toolbox nc-toolbox-runread racadm vflashpartition status -a
  • nc-toolbox nc-toolbox-runread mstregdump
  • nc-toolbox nc-toolbox-runread mstconfig (kräver query arg)
  • nc-toolbox nc-toolbox-runread mstflint (kräver query arg)
  • nc-toolbox nc-toolbox-runread mstlink (kräver query arg)
  • nc-toolbox nc-toolbox-runread mstfwmanager (kräver query arg)
  • nc-toolbox nc-toolbox-runread mlx_temp

Kommandosyntaxen är:

az networkcloud baremetalmachine run-read-command --name "<machine-name>"
    --limit-time-seconds "<timeout>" \
    --commands '[{"command":"<command1>"},{"command":"<command2>","arguments":["<arg1>","<arg2>"]}]' \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

Flera kommandon kan anges i json-format till --commands alternativet.

För ett kommando med flera argument anger du som en lista till arguments parameter. Mer information om hur du skapar strukturen finns i --commands Azure CLI Shorthand.

Dessa kommandon kan vara tidskrävande så rekommendationen är att ange --limit-time-seconds till minst 600 sekunder (10 minuter). Det kan ta längre tid än 10 minuter att köra flera kommandon.

Det här kommandot körs synkront. Om du vill hoppa över att vänta på att kommandot ska slutföras anger du alternativen --no-wait --debug . Mer information finns i spåra asynkrona åtgärder.

När ett valfritt argument --output-directory anges laddas utdataresultatet ned och extraheras till den lokala katalogen.

Varning

--output-directory Om du använder argumentet skrivs alla filer i den lokala katalogen över som har samma namn som de nya filer som skapas.

Det här exemplet kör "kubectl get pods"

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl get',arguments:[pods,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

Det här exemplet kör hostname kommandot och ett ping kommando

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
    --limit-time-seconds 60 \
    --commands '[{"command":"hostname"},{"command":"ping","arguments":["198.51.102.1","-c","3"]}]' \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

Det här exemplet kör racadm getsysinfo -c kommandot

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
    --limit-time-seconds 60 \
    --commands '[{"command":"nc-toolbox nc-toolbox-runread racadm getsysinfo","arguments":["-c"]}]' \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

Så här visar du utdata för en az networkcloud baremetalmachine run-read-command i Klusterhanterarens lagringskonto

Den här guiden vägleder dig genom att komma åt utdatafilen som skapas i Klusterhanterarens lagringskonto när en az networkcloud baremetalmachine run-read-command körs på en server. Namnet på filen identifieras i az rest statusutdata.

  1. Öppna klusterhanterarens hanterade resursgrupp för klustret där servern finns och välj sedan lagringskontot.

  2. I information om lagringskontot väljer du Lagringswebbläsare på navigeringsmenyn till vänster.

  3. I information om Storage-webbläsaren väljer du blobcontainrar.

  4. Välj blobcontainern baremetal-run-command-output.

  5. Lagringskontot kan vara låst på grund 403 This request is not authorized to perform this operation. av nätverks- eller brandväggsbegränsningar. Se klusterhanterarens lagring eller de kundhanterade lagringsavsnitten för procedurer för att verifiera åtkomsten.

  6. Välj utdatafilen från körningsläsningskommandot. Filnamnet kan identifieras från az rest --method get kommandot . Dessutom justeras tidsstämpeln Senast ändrad med när kommandot kördes.

  7. Du kan hantera och ladda ned utdatafilen från popup-fönstret Översikt .

FÖRHANDSVERSION: Kontrollera kommandostatusen och visa utdata i ett angivet lagringskonto

Exempelutdata visas. Det skriver ut de översta 4 000 tecknen i resultatet till skärmen för enkelhetens skull och ger en kortlivad länk till lagringsbloben som innehåller kommandokörningsresultatet. Du kan använda länken för att ladda ned den zippade utdatafilen (tar.gz).

  ====Action Command Output====
  + hostname
  rack1compute01
  + ping 198.51.102.1 -c 3
  PING 198.51.102.1 (198.51.102.1) 56(84) bytes of data.

  --- 198.51.102.1 ping statistics ---
  3 packets transmitted, 0 received, 100% packet loss, time 2049ms

  ================================
  Script execution result can be found in storage account:
  https://<storage_account_name>.blob.core.windows.net/bmm-run-command-output/a8e0a5fe-3279-46a8-b995-51f2f98a18dd-action-bmmrunreadcmd.tar.gz?se=2023-04-14T06%3A37%3A00Z&sig=XXX&sp=r&spr=https&sr=b&st=2023-04-14T02%3A37%3A00Z&sv=2019-12-12