PowerFlex: Run Script on Host (aka OS Patching) Functie uitgelegd
Summary: De functie wordt gebruikt om door de gebruiker geleverde scripts uit te voeren op servers waarop MDM- of SDS-onderdelen worden gehost. De functie kan worden gebruikt voor elk doel buiten het PowerFlex-systeem, zoals het uitvoeren van een reeks Linux-shellopdrachten, het patchen van een besturingssysteem en meer. ...
Instructions
UI - Pre-PFMP (PowerFlex 4.x)
Vereisten
Verplicht - het hoofdscript bevindt zich in /opt/emc/scaleio/lia/bin/ Directory met uitvoeringsmachtigingen.
- Scriptnaam moet patch_script zijn
Optioneel: het validatiescript bevindt zich in /opt/emc/scaleio/lia/bin/ Directory met uitvoeringsmachtigingen.
- Scriptnaam moet verification_script zijn
> De functie wordt alleen ondersteund op Linux (RHEL en SLES).
> De functie controleert of de afsluitcode 0 (nul) is aan het einde van de uitvoering.
> Afsluitcodes en scriptuitvoering zijn te vinden in de LIA-logboeken.
> Het is de verantwoordelijkheid van de klant om de patch_script en verification_script te testen voordat het proces wordt uitgevoerd met Gateway.
> Feature location: Onderhoud → systeemlogboeken en analyse → voer scripts uit op hosts.
Stappen en stromen
Script uitvoeren op:
1. Volledig systeem - alle PowerFlex-knooppunten
Standaard wordt het script uitgevoerd op het beschermingsdomein (PD) van de eerste host, en vervolgens naar de tweede host verplaatst, enzovoort.
Tegelijkertijd op verschillende beschermingsdomeinen uitgeschakeld - het selectievakje is standaard uitgeschakeld.
Parallel op verschillende beschermingsdomeinen ingeschakeld: als u deze optie selecteert, wordt de patch_script parallel uitgevoerd op alle PD's.
PD's die geen MDM's hebben, zijn de eerste en clusterknooppunten zijn de laatste.
2. Beschermingsdomein: een specifieke PD
PD's die geen MDM's hebben, zijn de eerste en de MDM-clusterknooppunten zijn de laatste.
3. Fault Set - een specifieke FS.
FS'en die geen MDM's hebben, zijn de eerste en MDM-clusterknooppunten zijn de laatste.
4. SDS - één SDS-knooppunt
Actieve configuratie:
1. Stop het proces bij een scriptfout.
1.1 Proces stoppen bij scriptfout ingeschakeld - het selectievakje is standaard aangevinkt.
De hele uitvoering zal mislukken en stoppen zodra de patch_script (en verification_script indien geselecteerd) afsluiten met een andere code dan 0 (nul).
1.2 Proces stoppen bij scriptfout uitgeschakeld.
Als de patch_script mislukt, mislukt de uitvoering van dat knooppunt en gaat het systeem naar het volgende knooppunt en voert het patch_script uit op dat knooppunt.
2. Time-out van script - Hoe lang moet ik wachten tot de patch_script is voltooid?
Het uitvoeren van het script heeft een configureerbare time-out, die door de gebruiker wordt gekozen.
Standaard ingesteld op 15 minuten → vanwege een bug, is de time-out hard gecodeerd naar 15 minuten, in versies ouder dan PowerFlex 3.6.
De hele uitvoering mislukt en stopt zodra er een time-out is opgetreden tijdens het uitvoeren van het script.
3. Verificatiescript - Wilt u de verification_script uitvoeren nadat de patch_script is uitgevoerd?
3.1 Uitvoeren - patch_script wordt uitgevoerd en als het eenmaal is gedaan, wordt de verification_script uitgevoerd, afhankelijk van of de patch_script post-actie was om opnieuw op te starten of niet (sectie #4).
3.2 Niet uitvoeren - patch_script wordt uitgevoerd en als het eenmaal is gedaan, stopt de hele run en eindigt deze net zo succesvol.
4. Actie achteraf script: wilt u het knooppunt opnieuw opstarten nadat de patch_script is uitgevoerd?
4.1 Opnieuw opstarten - nadat patch_script is uitgevoerd en is afgesloten met code 0 (nul), zal het knooppunt opnieuw opstarten en stoppen of doorgaan, afhankelijk van of de verification_script is gekozen om uit te voeren of niet (sectie #3).
Als Gateway zich op een knooppunt bevindt dat opnieuw moet worden opgestart, wordt deze niet opnieuw opgestart, slaagt de bewerking en wordt een pop-up weergegeven die ons eraan herinnert om handmatig opnieuw op te starten.
4.2 Niet opnieuw opstarten - nadat patch_script is uitgevoerd en is afgesloten met code 0 (Nul), zal het knooppunt niet opnieuw opstarten en stoppen of doorgaan, afhankelijk van of de verification_script is gekozen om uit te voeren of niet (sectie #3).
Run script on hosts:
Druk op "Run Script on Hosts" -->Valideer het starten van de fase .
Deze fase stuurt een aanvraag naar elk van de LIA van het knooppunt om het bestaan van de patch_script en verification_script (indien geselecteerd) bestanden te verifiëren onder /opt/emc/scaleio/lia/bin/.
De codelogica selecteert een willekeurige lijst met knooppunten om op uit te voeren (volgens de genoemde voorwaarden).
Start uitvoeringsfase:
Druk op de knop "Start uitvoeringsfase".
1. De gateway voert de volgende verificaties uit:
een. Controleer of er geen defecte capaciteit is.
b. Controleer de geldige reservecapaciteit.
c. Controleer de geldige clusterstatus.
d. Controleer of er geen andere SDS in de onderhoudsmodus staat.
2. Zet de SDS in de onderhoudsmodus.
3. Voer de patch_script uit: als het bestand goed is uitgevoerd, wordt het verwijderd en wordt er een back-up van gemaakt in dezelfde map.
Met de naam backup_patch_script
4. Host opnieuw opstarten (indien geselecteerd)
5. Run verification_script (if selected): als het bestand is uitgevoerd, wordt het verwijderd en wordt er een back-up van gemaakt in dezelfde map met de naam backup_verification_script.
6. Haal de SDS uit de onderhoudsmodus.
7. Bewerking is voltooid.
RESTAPI - Post-PFMP (PowerFlex 4.x)
- Voer een patchscript uit op alle of enkele systeemknooppunten, met een optionele herstart en een optioneel verificatiescript. De operatie heeft een zekere mate van parallellisme.
- De scriptbestanden moeten worden opgeslagen in de map van het knooppunt: /opt/emc/scaleio/lia/bin Als alternatief kunnen ze door de GW worden geüpload naar het knooppunt. De scripts kunnen worden overgenomen uit een lokale GW-map of worden gedownload van HTTP/HTTPS-share.
- Er kan een lijst met SdsId's en/of mdmIds worden opgegeven om expliciet de knooppunten te kiezen waarop moet worden uitgevoerd.
- De bestandsnamen zijn hard gecodeerd en kunnen niet worden gewijzigd: patch_script en verification_script
REST-opdracht
- /im/types/Configuration/actions/liaRunOsPatching
Vereiste parameters
- Een van de volgende parameters is verplicht: pdIds/fsIds/sdsIds/mdmIds / executeOnAllSdss / executeOnAllMdms
pdIds- uitvoeren op alle knooppunten die deel uitmaken van de volgende beschermingsdomeinen (PD-id's), in decimale indelingfsIds- uitvoeren op alle knooppunten die deel uitmaken van de volgende foutsets (FS-id's), in decimale indelingsdsIds- uitvoeren op alle SDS-exemplaren vermeld bij Ids, in decimaal formaatmdmIds- uitvoeren op alle MDM's vermeld door Ids, in decimale indelingexecuteOnAllSdss- uitvoeren op alle SDS-exemplaren (waar/niet waar)executeOnAllMdms- uitvoeren op alle MDM's (waar/niet waar)
Optionele parameters
isRebootRequired- Moet elk knooppunt opnieuw opstarten na het uitvoeren van het patchscript (waarden: waar/onwaar)isVerificationScriptRequired- Moet het verificatiescript op elk knooppunt worden uitgevoerd (waarden: waar/onwaar)isRunningInParallelOnPds- moet de bewerking parallel worden uitgevoerd op knooppunten die tot verschillende PD's behoren (waarden: waar/onwaar)isStopProcessingOnScriptFailure- moet de hele operatie stoppen in geval van een scriptfout (waarden: waar/onwaar)TimeoutMs- Time-out voor het uitvoeren van het patchscript in millisecondenisUploadFileNeeded- Moet GW scripts uploaden naar de knooppunten (waarden: waar/onwaar)
De volgende velden zijn van belang wanneer isUploadFileNeeded is 'waar':
patchScriptFilePath- ofwel de naam van de lokale map of een http/https-URL van het patchscriptverificationScriptFilePath- ofwel de lokale mapnaam of een http/https-URL van het verificatiescriptmaintenanceModeType- Type onderhoudsmodus(waarden: IMM/PMM)verificationScriptTimeoutSec- Time-out van het verificatiescript in secondenrebootTimeoutSec- Time-out voor opnieuw opstarten van knooppunten in seconden
Merk op dat voordat u de opdracht liaRunOsPatching uitvoert, u zich eerst moet aanmelden en de systeemconfiguratie moet ophalen, zie het onderstaande voorbeeld.
Opdrachtvoorbeeld
*tokenvariabele bevat het Keycloak-token dat is geretourneerd vanuit /auth/login of vanuit /api/gatewayLogin.
**<ip-address> - IP-adres van een http-server met de scripts die moeten worden uitgevoerd
Haal de json van een systeemconfiguratie op, wat de payload van de patch-opdracht zal zijn (liaPassword en mdmPassword moeten handmatig worden vervangen van null naar een tekenreeks).
Plaats de uitvoer van deze opdracht (met vaste wachtwoorden) in het config.json bestand:
curl -s -X POST -k -H "Content-Type: application/json" -d '{ "mdmIps":["1.2.3.4","5.6,7,8"], "mdmUser":"<mdm_username>", "mdmPassword":"<mdm_password>", "securityConfiguration":{ "allowNonSecureCommunicationWithMdm":"true", "allowNonSecureCommunicationWithLia":"true", "disableNonMgmtComponentsAuth":"false" } }' -H "Authorization: Bearer ${token}" https://<m&o-ip-address>/im/types/Configuration/instances
Voer de patch-opdracht uit:
curl -v -k -X -i POST -H "Content-Type:application/json" -H "Authorization: Bearer ${token}"
"https:/<m&o-ip-address>/im/types/Configuration/actions/liaRunOsPatching?executeOnAllSdss=true &isRebootRequired=true&isVerificationScriptRequired=true&patchScriptFilePath=https://<ip-address>/patch_script&verificationScriptFilePath=https://<ip-address>/verification_script&maintenanceModeType=IMM&rebootTimeoutSec=30" -d @config.json
Additional Information
Logboeken
Gateway:
- /opt/emc/scaleio/gateway/logs/scaleio.log
- /opt/emc/scaleio/gateway/logs/scaleio-trace.log
LIA:
/opt/emc/scaleio/lia/logs/trc.x
Fooi- Speciale schakelaar om het script in het knooppunt te houden tijdens het oplossen van problemen of het testen:
- Bestand bewerken /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayInternal.properties
- Zoek het veld "ospatching.delete.scripts=false"
- Wijzigen in true voor probleemoplossing (standaard is false)