Powershell DSC: configuration d’un Contrôleur de Domaine

 

Suite de notre série d’articles sur Powershell DSC, nous allons maintenant capitaliser sur l’infrastructure que nous avons mise en place (voir articles précédents) pour configurer un nouveau contrôleur de domaine Active Directory (DC).

Il nous faut récupérer le module xActiveDirectory.

Sur le serveur pull, nous allons dézipper le module et le placer dans C:\Program Files\WindowsPowerShell\Modules.

Nous allons également placer le zip ici: C:\Program Files\WindowsPowerShell\DscService\Modules.

Enfin nous allons régénérer les checksums des modules à distribuer aux nouvelles machines, et pour cela nous allons exécuter le code suivant:

Voici le résultat:

xADmodule

(le module xNetworking était déjà présent et est le résultat d’un des articles précédents)

Nous allons maintenant modifier notre script de génération et distribution de configurations en 4 parties:

Dans la fonction de configuration (ServerConfig), nous allons importer le module xActiveDirectory:

Ensuite dans la partie Node $AllNodes.NodeName, nous allons faire deux choses:

Ceci installe la feature AD-Domain-Services, c’est comme si on ajoutait le rôle avec Server Manager.

Nous allons utiliser la ressource xADDomainController qui permet de promouvoir un serveur en contrôleur de domaine. C’est comme si on faisait un DCPROMO dans les anciennes versions de Windows Server.

On peut voir dans la ressource les éléments suivants:

  • SafemodeAdministratorPassword, il s’agît du mot de passe utilisé lorsque on veut entrer dans le mode de restauration (safe mode) du contrôleur de domaine.
  • DomainAdministratorCredential, ce sont les credentials d’un compte admin du domaine.
  • DomainName, le nom du domaine. A remarquer j’ai basculé cette info dans le $ConfigData du script, on sépare le quoi, du .
  • DatabasePath, LogPath, SysvolPath, à customiser si besoin.
  • DependsOn, Nous voulons nous assurer que si le rôle AD DS est installé avant faire la promotion du DC.

Finalement, nous allons modifier notre $configData ainsi:

On voit que c’est ici qu’on renseigne le nom du domaine. Ainsi je peux planifier de modifier le script pour ajouter plusieurs domaines, si besoin.

 

Voici le script entier:

Voici l’exécution du script:

Et voici le résultat dans Server Manager, on voit que le DC est bien installé et promu.

xADDCpromoted

 

Par contre je remarque que DNS a été ajouté, je pense que c’est dû au fait que la partition DNS de mon domaine est intégrée dans l’Active Directory. Il faudra tester avec un domaine qui utilise un DNS externe.

Enfin voilà, les prochains DCs seront tous les mêmes, à la virgule près.

En IT c’est facile de créer mais c’est beaucoup plus difficile de détruire. Pour enlever le rôle AD on peut utiliser la cmdlet Uninstall-ADDSDomainController. Il y a toute la méta-data à nettoyer si on l’enlève de façon brutale. On doit en tout cas penser au cycle de vie complet d’un DC afin que le tout reste cohérent. Et on doit en tout cas répéter à nos collègues coté développement applicatif de ne jamais s’appuyer sur un DC donné par son nom (où pire son adresse IP). Ils doivent toujours utiliser le nom de domaine, ce sera pareil pour eux, le DC le plus proche répondra.

Et nous coté IT, on pourra faire et défaire selon besoin.