PowerFlex: Kjør skript på vert (aka OS Patching) Funksjon forklart
Summary: Funksjonen brukes til å kjøre skript fra brukeren på servere som er vert for MDM- eller SDS-komponenter. Funksjonen kan brukes til alle andre formål enn PowerFlex-systemet, for eksempel å kjøre et sett med Linux-skallkommandoer, oppdatere et operativsystem med mer. ...
Instructions
Brukergrensesnitt – pre-PFMP (PowerFlex 4.x)
Forhåndskrav
Obligatorisk - hovedskriptet ligger i /opt/emc/scaleio/lia/bin/ Katalog med utførelsestillatelser.
- Skriptnavn må være patch_script
Valgfritt – valideringsskriptet finnes i /opt/emc/scaleio/lia/bin/ Katalog med utførelsestillatelser.
- Skriptnavn må være verification_script
> Funksjonen støttes bare på Linux (RHEL og SLES).
> Funksjonen sjekker om avslutningskoden er 0 (null) på slutten av kjøringen.
> Du finner utgangskoder og skriptkjøring i LIA-loggene.
> Det er kundens ansvar å teste patch_script og verification_script før prosessen kjøres ved hjelp av gateway.
> Funksjonsplassering: Vedlikehold systemloggene og analysene → → kjøre skript på verter.
Trinn og flyter
Kjører skript på:
1. Hele systemet – alle PowerFlex-noder
Skriptet kjører som standard på beskyttelsesdomenet til den første verten (PD), flytter deretter til det andre og så videre.
Parallelt på forskjellige beskyttelsesdomener deaktivert - som standard er avkrysningsruten fjernet.
Parallelt på forskjellige beskyttelsesdomener som er aktivert – ved å velge dette alternativet kjører patch_script parallelt på alle PD-er.
PD-er som ikke har MDM-er, er først, og klyngenoder er sist.
2. Beskyttelsesdomene - en bestemt PD-PD-er
som ikke har MDM-er er først, og MDM-klyngenoder er sist.
3. Feilsett - en bestemt FS.
FS-er som ikke har MDM-er, er først, mens MDM-klyngenoder er de siste.
4. SDS - en enkelt SDS-node
Kjører konfigurasjon:
1. Stopp prosessen ved feil i skript.
1.1 Stopp prosessen ved skriptfeil aktivert – avmerkingsboksen er merket av som standard.
Hele kjøringen mislykkes og stoppes når patch_script (og verification_script hvis valgt) avsluttes med en annen kode enn 0 (null).
1.2 Stopp-prosessen ved skriptfeil deaktivert.
Hvis patch_script mislykkes, vil kjøringen av den noden mislykkes, og systemet vil flytte til neste node og kjøre patch_script på den noden.
2. Tidsavbrudd for skript – Hvor lang tid tar det å vente til patch_script er ferdig?
Kjøring av skriptet har et konfigurerbart tidsavbrudd som velges av brukeren.
Tidsavbruddet er som standard konfigurert til 15 minutter → på grunn av en feil, og er hardkodet til 15 minutter i versjoner som er eldre enn PowerFlex 3.6.
Hele kjøringen mislykkes og stopper når skriptkjøringen blir tidsavbrutt.
3. Bekreftelsesskript – Vil du kjøre verification_script etter at patch_script ble kjørt?
3.1 Kjør - patch_script vil kjøre, og når det er gjort, vil verification_script kjøre, avhengig av om patch_script etterhandling var å starte på nytt eller ikke (seksjon # 4).
3.2 Ikke kjør - patch_script vil kjøre, og når det er gjort, vil hele løpet stoppe og avsluttes som vellykket.
4. Post script-handling – Vil du starte noden på nytt etter at patch_script er kjørt?
4.1 Start på nytt – etter at patch_script er ferdig med å kjøre og avsluttet med kode 0 (null), vil noden starte på nytt og stoppe eller fortsette avhengig av om verification_script ble valgt til å kjøre eller ikke (seksjon #3).
Hvis Gateway er på en node som skal startes på nytt, vil den ikke starte på nytt, operasjonen lykkes, og en popup som minner oss om å starte den på nytt manuelt vil bli vist.
4.2 Ikke start på nytt - etter at patch_script ferdig med å kjøre og avsluttet med kode 0 (null), vil noden ikke starte på nytt, og stoppe eller fortsette avhengig av om verification_script ble valgt til å kjøre eller ikke (seksjon # 3).
Kjør skript på verter:
Trykk på "Run Script on Hosts" ->Valider fasen starter.
Denne fasen sender en forespørsel til hver av nodenes LIA om å bekrefte eksistensen av patch_script- og verification_script-filene (hvis valgt) under /opt/emc/scaleio/lia/bin/.
Kodelogikken velger en tilfeldig liste over noder som skal kjøres på (i henhold til de nevnte betingelsene).
Start utførelsesfasen:
Trykk på knappen "Start utførelsesfase".
1. Gateway utfører følgende verifikasjoner:
en. Kontroller at det ikke er noen kapasitetsfeil
b. Sjekk gyldig ledig kapasitet.
c. Kontroller gyldig klyngetilstand.
d. Kontroller at ingen andre SDS er i vedlikeholdsmodus.
2. Sett SDS i vedlikeholdsmodus.
3. Kjør patch_script - etter en vellykket kjøring slettes filen og en sikkerhetskopifil av den opprettes i samme katalog.
Med navnet backup_patch_script
4. Start verten på nytt (hvis valgt)
5. Kjør verification_script (hvis valgt) - etter en vellykket kjøring blir filen slettet og en sikkerhetskopifil av den opprettes i samme katalog med navnet backup_verification_script.
6. Gå ut av SDS fra vedlikeholdsmodus.
7. Operasjonen er fullført.
RESTAPI - etter PFMP (PowerFlex 4.x)
- Kjør et patchskript på alle eller noen av systemnodene, med valgfri omstart og valgfritt verifiseringsskript. Operasjonen har en viss grad av parallellitet.
- Skriptfilene skal lagres i nodens mappe: /opt/emc/scaleio/lia/bin Alternativt kan de lastes opp av GW til noden. Skriptene kan enten hentes fra en lokal GW-mappe eller lastes ned fra HTTP / HTTPS-deling.
- En liste over SdsIds og / eller mdmIds kan gis, for å eksplisitt velge nodene å kjøre på.
- Filnavnene er hardkodet og kan ikke endres: patch_script og verification_script
REST-kommando
- /im/types/Configuration/actions/liaRunOsPatching
Nødvendige parametere
- En av følgende parametere er obligatorisk: pdIds/fsIds/sdsIds/mdmIds / executeOnAllSdss / executeOnAllMdms
pdIds- kjøres på alle noder som er en del av følgende beskyttelsesdomener (PD-IDer), i desimalformatfsIds- kjøres på alle noder som er en del av følgende feilsett (FS ID-er), i desimalformatsdsIds- kjøres på alle SDS-er som er oppført av ID-er, i desimalformatmdmIds- kjøres på alle MDM-er oppført av ID-er, i desimalformatexecuteOnAllSdss- kjøre på alle SDS-er (sant/usant)executeOnAllMdms- kjøre på alle MDM-er (sant/usant)
Valgfrie parametere
isRebootRequired- bør hver node starte på nytt etter å ha kjørt patch script (verdier: true / false)isVerificationScriptRequired- Skal verifikasjonsskriptet kjøres på hver node (verdier: sant/usant)isRunningInParallelOnPds- skal operasjonen kjøre parallelt på noder som tilhører ulike PDer (verdier: sant/usant)isStopProcessingOnScriptFailure- bør hele operasjonen stoppe i tilfelle skriptfeil (verdier: sant / usant)TimeoutMs- Timeout for å kjøre patchskriptet i millisekunderisUploadFileNeeded- Skal GW laste opp skript til nodene (verdier: true / false)
Følgende felt er relevante når isUploadFileNeeded er 'sant':
patchScriptFilePath- enten navnet på den lokale mappen eller en http/https-URL til oppdateringsskriptetverificationScriptFilePath- enten navnet på den lokale mappen eller en http/https-URL til bekreftelsesskriptetmaintenanceModeType- Type vedlikeholdsmodus(verdier: IMM/PMM)verificationScriptTimeoutSec- Tidsavbrudd for bekreftelsesskript i sekunderrebootTimeoutSec- Node reboot timeout i sekunder
Merk at før du kjører kommandoen liaRunOsPatching, bør du først logge på og få systemkonfigurasjonen, se eksemplet nedenfor.
Eksempel på kommando
*token-variabelen inneholder nøkkelkappetokenet som ble returnert fra /auth/login eller fra /api/gatewayLogin.
**< ip-adresse> - IP-adressen til en http-server som inneholder skriptene som skal kjøres
Få json av en systemkonfigurasjon, som vil være nyttelasten til patch-kommandoen (må erstatte liaPassword og mdmPassword manuelt fra null til en streng).
Sett inn utdataene fra denne kommandoen (med faste passord) i config.json-filen:
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
Kjør oppdateringskommandoen:
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
Logger
Gateway:
- /opt/emc/scaleio/gateway/logs/scaleio.log
- /opt/emc/scaleio/gateway/logs/scaleio-trace.log
LIA:
/opt/emc/scaleio/lia/logs/trc.x
Tips- Spesiell bryter for å holde skriptet i noden ved feilsøking eller testing:
- Edit file /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayInternal.properties
- Finn feltet "ospatching.delete.scripts=false"
- Endre til sant for feilsøking (standard er usann)