Updated labo-1.txt

kenvb authored
revision c2e94f58ef1587d85f6828e11578aa543d67172e
beginner-labos/labo-1
# Labo 1: een lokale configuratie
In dit labo gaan we een hele simpele configuratie uitvoeren op een lokale machine. We transformeren onze server in een web-server en zorgen ervoor dat hij in deze desired state blijft.

## Benodigdheden

- 1 x Windows 2012R2 met WMF 5.0 geïnstalleerd.

## Doe
Voer onderstaande powershell code uit in de ISE

```
Configuration Webserver # Lijkt op een functie
{
node "localhost" #Naam pc
{
WindowsFeature "Web-server" #Duidelijke omschrijving
{
name = "web-server" # Naam vd service
Ensure = "Present" # Moet aanwezig zijn
}
}
}
Webserver -outputpath c:\webserver # bewaren mof file
```
De configuratie wordt bewaard in het “mof” format op de locatie van het “outputpath”. Dit is nog steeds een leesbaar formaat voor de admin. Open het mof-bestand om de inhoud te bekijken, er staat heel wat interessante informatie in.
![labo1-moflocatie.png](images/labo1-moflocatie.png)
Voer onderstaande code uit om het configureren te starten.
```
Start-DscConfiguration C:\webserver
```
Voer het cmdlet `Get-Job` uit om op te volgen wanneer de configuratie “completed” is.
Na een eventuele refresh van de Server Manager zou IIS erbij moeten staan.
![labo1-servermanager.png](images/labo1-servermanager.png)
Verwijder vervolgens manueel IIS en reboot. IIS is niet meer aanwezig.
Hoe komt dit? Is het niet de bedoeling dat DSC dit niet toelaat? Dat moeten we uitzoeken. Voer onderstaand commando uit zodat we kunnen we zien of DSC het probleem wel opgemerkt heeft.
```
Test-DscConfiguration –Detailed
```
Ons probleem zit bij de Local Configuration Manager, instellingen op te vragen met:
```
Get-DscLocalConfigurationManager
```
Meer uitleg: https://msdn.microsoft.com/en-us/powershell/dsc/metaconfig

Dus: Naast het schrijven van een configuratie voor de machine, moeten we ook een configuratie schrijven voor de Configuration Manager van de configuratie. Dit kan met de volgende code:
```
[DSCLocalConfigurationManager()]
configuration Localhostconfig # zelf te kiezen naam
{
Node localhost
{
Settings
{
RebootNodeIfNeeded = $true
ConfigurationMode = 'ApplyAndAutoCorrect'
}
}
}

Localhostconfig
```
Let op: “-outputpath” werkt - op dit moment - niet, de config wordt weggeschreven in de huidige _working directory_. Verander je _working directory_ indien nodig.
![labo1-intellisense.png](images/labo1-intellisense.png)
De intellisense van de ISE werkt met het schrijven van DSC-configs niet altijd even goed, maar met CTRL+SPACE, kan je wel een aanvulling forceren
![labo1-metamof.png](images/labo1-metamof.png)
De meta-mof wordt geplaatst in zijn eigen subdir.
Volgend powershell cmdlet configureert de _Local Configuration Manager_:
```
Set-DscLocalConfigurationManager -Path C:\webserver\Localhostconfig
```
Met `Get-DscLocalConfigurationManager` kunnen we zien of de aanpassing gebeurd is

Zo goed als meteen zal IIS terug geïnstalleerd worden (refresh Server Manager indien nodig of reboot). Doe hierna nogmaals een manuele role removal van de web-server en reboot en controleer of IIS automatisch terugkomt.