I forrige artikkel, viste jeg deg hvordan du skal kjøre et skript for å sørge for at en server holder ønsket tilstand. I denne artikkelen vil jeg diskusjonen ved å vise deg hvordan det ser ut når du kjører skriptet på en server som ikke holder seg til nødvendig konfigurasjon for å fortsette. Derfra skal jeg vise deg noen måter å automatisere utførelsen av skriptet i neste artikkel. Senere vil jeg utforske noen andre ting som du kan gjøre med en ønsket tilstand Configuration script.
Som du kanskje husker, til vår opprinnelige manuset som vi har brukt er designet teste for tilstedeværelse av Hyper-V rolle på en Windows Server. Dessverre, jeg don ’ t virkelig har en måte å demonstrere hva som skjer hvis du kjører dette skriptet på en server som doesn ’ t har Hyper-V installert fordi jeg don ’ t har noe tilgjengelig maskinvare som isn ’ t allerede kjører Hyper-V . Så med det sagt, jeg har gjort noen endringer i manus. Du kan se disse endringene i figur A.
Figur A: Skriptet sjekker nå for tilstedeværelsen av Web Server funksjonen
Som du ser på figuren ovenfor, kan du se at jeg. Jeg bruker samme grunnleggende skript som før, men jeg har gjort to endringer. Den første endringen er nodenavnet. Jeg bruker en node kalt Web. Web var NetBIOS-navnet på en Windows Server 2012 R2 webserver som jeg brukte i en annen artikkel serie som jeg skrev for dette nettstedet. Den andre endringen som jeg gjorde var at jeg sjekker for å være sikker på at Web-Server rollen er installert på serveren i stedet for å se etter den Hyper-V-rollen. Tross alt, kan en webserver ’ t gjøre jobben sin hvis Web Server rollen isn ’. T til installert
Som tidligere henrettet jeg manuset ved å oppgi ./PoseyConfig.ps1 kommandoen. Dette fører til at MOF-filen som skal opprettes.
Så det første at jeg kommer til å gjøre er å se på tilstedeværelsen av Web Server rollen manuelt. Jeg kan gjøre dette uten et skript ved å skrive inn Get-WindowsFeature Web-Server kommandoen. Som du kan se i figur B, bekrefter Powershell at rollen er installert
Figur B:. Powershell bekrefter at Web Server rollen er installert
Selvfølgelig er dette reiser spørsmålet om hvorfor vi. engang trenger en ønsket tilstand Configuration script hvis vi kan bruke et enkelt Powershell-kommando for å teste for tilstedeværelse av en server rolle. Vel, det er to hovedgrunner.
Først kan en ønsket tilstand Configuration script gjøre mer enn bare å sjekke for å se om en rolle er installert. Jeg har nettopp vært å bruke en bestemt funksjon for demonstrasjonsformål, fordi det er lett å følge.
Den andre grunnen til at du trenger å bruke ønsket tilstand Configuration verktøyet er fordi verktøyet kan utføre utbedring. Jada, kan du skrive Powershell-kode for å teste for eksistensen av en server rolle og installere den rollen hvis det er nødvendig, men det ville være mye enklere å bare bruke ønsket tilstand Configuration verktøyet i stedet skrive all denne koden.
Så med det sagt, viser figur C hva som skjer når vi driver vår script med ordrik utgang. Som du kan se i figuren, operasjonen var vellykket. Som du kanskje husker fra forrige artikkel, kjører skriptet uten – Utførlig switch gir ingen synlig effekt
Figur C:.. Her er hva som skjer når vi kjører skriptet
Som du kan se i figuren ovenfor, har vår script hovedsak bekreftet tilstedeværelsen av Web Server rollen. Så hva skjer hvis vi fjerner den rollen fra serveren? La ’ s gå videre og prøve det! Som du kan se i figur D, jeg fjerner Web Server rollen fra serveren. I figur E, kan du se at jeg har brukt Powershell for å bekrefte rollen ’ s fravær
Figur D:.. The Web Server rolle blir fjernet fra serveren
Figur E: Powershell bekrefter at Web Server rollen ikke lenger er installert
Så nå at Web Server rollen ikke lenger er installert, la ’ s. gå videre og kjøre vår Ønsket State Configuration script. Når jeg kjører skriptet, skriptet oppdager umiddelbart fravær av Web Server rolle og begynner å installere det, som vist i Figur F.
Figur F:. Ønsket tilstand Configuration verktøyet begynner å installere Web Server rollen
Hvis jeg kjører Get-WindowsFeature Web-Server kommandoen en gang til, kan du se i figur G at rollen ’ s status er endret fra Tilgjengelig til Installert
Figur G:. The Web Server rolle ’ s statusen endres fra Tilgjengelig til Installert etter å ha kjørt ønsket tilstand Configuration script
En ting som jeg ønsker å raskt nevne før jeg går videre er at avhengig av hvilken type operasjon du utfører med ønsket. State Configuration script, kan det være nødvendig å starte serveren etter at operasjonen er fullført. For eksempel, fjerne Web Server rollen vanligvis krever en omstart.
Som du kan se, skriptet fungerte prikkfritt. Det automatisk installert den savnede serveren rolle. Det er bare én ting som du virkelig trenger å tenke på.
Vi har jobbet med en virkelig enkelt script. Det er nesten ingen fare for skriptet gjør noe uventet fordi manuset er så kort. Imidlertid kan virkelige verden ønsket tilstand skript være mye lenger. De kan vurdere dusinvis av konfigurasjonsmuligheter på tvers av flere servere. Så med det i tankene, hvordan kan du være sikker på at skriptet isn ’? T kommer til å gjøre noe sprøtt når du kjører den
Mitt råd er å teste manuset før utføre den. For å vise deg hva jeg mener, har jeg gått tilbake og fjernet Web Server rollen fra serveren vist i den forrige skjermen fange manuelt. Så med det sagt, la ’ s late som vi mistenker at en server lider av konfigurasjon drift og vi ønsker å bruke ønsket tilstand Configuration verktøyet til å kontrollere problemet og fikse det. La ’. Er også anta imidlertid at scriptet aldri har blitt testet, og at vi må sørge for at det fungerer før du kjører det
Det beste å gjøre er å teste manuset. Som dere husker, vi kjørte vår script ved å bruke Start-DscConfiguration kommandoen. I stedet kan vi bruke Test-DscConfiguration. Du don ’. T trenger å bruke noen parametere med denne kommandoen
Når du kjører denne kommandoen, vil Windows automatisk se på MOF-fil, selv om du ikke er ’ t faktisk fortelle det til å gjøre det. Den vil bruke MOF-filen for å avgjøre hvorvidt maskinen overholder ønsket tilstand. Hvis datamaskinen ikke holder seg til ønsket tilstand, vil statusen False bli returnert. Hvis datamaskinen ikke holder seg til ønsket tilstand, vil statusen være sant.
For å vise deg hva jeg mener, sjekk ut Figur H. Jeg fjernet Web Server rolle og kjørte TestDscConfiguration kommandoen. Statusen ble vist som False fordi den nødvendige rollen manglet. Derfra installerte jeg den nødvendige rollen (den delen isn ’ t vist på skjermen fange) og deretter kjørte Test-DscConfiguration kommandoen. Denne gangen fikk jeg en status av True fordi den nødvendige funksjonen ble installert
Figur H:.. Test-DscConfiguration forteller deg hvorvidt systemet overholder ønsket konfigurasjon
Dessverre, denne testen doesn ’. t gi deg en kornet rapport, men du kan kjøre testen mot servere som er i en kjent tilstand i et forsøk på å avgjøre hvorvidt skriptet fungerer riktig
Konklusjon
I denne artikkelen har jeg vist deg hvordan du kan teste for konfigurasjon drift og hvordan du bruker ønsket tilstand Configuration Tool til å utføre automatisk utbedring. I neste artikkel i denne serien, skal jeg vise deg noen alternativer for å gjøre skriptet kjøres automatisk.