Imprimer

FIM Sync & FIM Service : sauvegarde et restauration (FIM : backup & restore)

Depuis un certain temps, Microsoft fournit des Cmdlets Powershell permettant d’exporter et d’importer la configuration des serveurs FIM. Ces commandes sont incluses dans le module FIMAutomation exploitable dans l'invite de commande PowerShell.

Prérequis

Depuis un certain temps, Microsoft fournit des Cmdlets Powershell permettant d’exporter et d’importer la configuration des serveurs FIM. Ces commandes sont incluses dans le module FIMAutomation exploitable dans l'invite de commande PowerShell.

Grace à ce module, vous pourrez ainsi très facilement sauvegarder et restaurer la configuration, migrer la configuration entre différents environnements (dev/homologation/production) ou différentes forêts, ou encore exporter et importer des ressources dans le portail FIM.

Pour réaliser ces actions, il est nécessaire d'utiliser le module FIMAutomation ainsi que script PowerShell fournit par Microsoft (téléchargeables ici). 

Pour plus de facilité, j'ai zippé l'ensemble de ces scripts (utilisé dans le tuto + script MS) que vous téléchargerez ici

Autorisez également l'exécution des scripts via cet commandeSet-ExecutionPolicy RemoteSigned

 

Veillez à valider toutes étape sur un environnement de dev au préalable. Afin de garantir une réussite optimale, il est nécessaire que les versions de FIM soient identiques entre le serveur source et le serveur cible.

 

 

Schéma de migration

Voici les différentes étapes à réaliser :

EtapesRemarques
1- Sauvegarde de l'environnement source et cibleFortement conseillée
2- Exportation du schéma FIM Service (serveur source & cible)Obligatoire
3- Exportation de la configuration du moteur de synchronisation de FIMObligatoire
4- Exportation des policy FIM Service (serveur source & cible)Obligatoire
5- Activer le mode maintenanceObligatoire
6- Importer le schéma FIM ServiceObligatoire
7- Importer la configuration du moteur de synchronisation de FIMObligatoire
8- Importer les policy FIM ServiceObligatoire
9- Désactiver le mode maintenanceObligatoire

Attention : la présence des DLLs customisées n'est pas pris en compte dans ce scénario.

 

 

 

Tuto step by step

Dans mon cas, je vais réaliser une migration entre deux forêts AD distinctes (build : 4.1.3419.0). Dans un premier temps, nous allons préparer les fichiers et dossiers nécessaires  à la migration. Vous pouvez donc dézipper les deux dossiers afin de la placer à la racine de votre disque C (sur le serveur FIM Service source et cible). Si le chemin est différent, pensez à répercuter la modification directement sur les scripts.

Dans le répertoire _MigrationFim, nous retrouvons les scripts PowerShell suivants :

Scripts .ps1Description
commitChanges_policyApplique le fichier généré par SyncPolicy
commitChanges_schemaApplique le fichier généré par SyncSchema
ExportPolicyExporte la configuration des ressources FIM  depuis FIM Service (appel au Web Service FIM)
ExportSchemaExporte le schéma utilisé dans FIM Service (appel au Web Service FIM)
ResumeUndoneImports_policyApplique les erreurs générées à la suite de l'exécution du script : commitChanges_policy
ResumeUndoneImports_schemaApplique les erreurs générées à la suite de l'exécution du script : commitChanges_schema
SyncPolicyCompare les attributs de ressources FIM et retourne une liste des changements à effectuer
SyncSchemaCompare le schéma FIM et retourne une liste des changements à effectuer

Vérifiez et identifier le chemin cible ou sera créé le fichier.

Exécuter le script sur le serveur FIM Service source.

Exécuter le script sur le serveur FIM Service cible.

Vérifiez que le fichier suivant est bien généré.

Serveur FIM Service sourceServeur FIM Service cible

Il faut réaliser la même action avec le script ExportPolicy sur le serveur source et sur le serveur cible

Serveur FIM Service sourceServeur FIM Service cible

 Exécuter le script.

Il faut ensuite exporter la configuration du serveur qui fait office de serveur de synchronisation.

Activez le mode maintenance votre portail FIM Service. Pour cela il faut :

Copiez ensuite les deux fichiers sources sur le serveur cible.

L'idée ici est de comparer les deux fichiers relatifs au schéma du serveur source/cible afin de générer un nouveau fichier qui comportera la liste des changements à effectuer.

Un fois les chemins vérifiés.Exécutez le script SyncSchema.

Cela va générer un nouveau fichier qui indiquera le nombre de modification à effectuer. Dans mon exemple, il y a 32 changements à réaliser au niveau du schéma utilisé dans le portail FIM.

Le script commitChanges_schema va appliquer ces 32 changements.

Exécutez le script. Le nouveau schéma est maintenant importé sur le serveur FIM Service cible.

Nous allons maintenant importer les MAs ainsi que le schéma du moteur de Synchronisation de FIM. Autrement dit, la configuration serveur du moteur de synchronisation.

Pour cela, cliquez sur Import Server Configuration. Pour la sauvegarde, il suffit de cliquer sur Export Server Configuration.

L'importation démarre.

Il va falloir renseigner les informations de connexion pour chaque MA.

...

...

L'importation de laconfiguration de votre moteur de synchronisation est maintenant terminée.

La dernière étape de migration correspond à l'importation des "Policy" qui correspondent aux Synchronization rules, aux workflow et MPRs du portail FIM.

Le fonctionnement de la migration est identique au schéma. Nous allons comparer les deux fichiers ain de générer un fichier différentiel qui reprendra les modifications à effectuer.

En cas d'erreur, le script CommitChanges_policy va générer un fichier undone qu'il sera possible d'exécuter après corrections des problèmes afin d'importer les ressources manquantes.

Il faut ensuite lancer le script commitChanges_policy. Lorsque des erreurs sont générées, cela les ajoute dans le fichier undone_policy.

Dans mon cas, je me retrouve avec 12 erreurs.

Il faudra alors lancer le script ResumeUndoneImports_policy afin d'importer les précédentes erreurs.

Afin de retourver à quelle ressource FIM fait référence l'ObjectID, vous pouvez regarder cet article : Trouver la correspondance d'un ObjectID dans FIM

Après les phases d'importations, vous pouvez ré-ouvrir votre pare-feu sur le port 5725 ainsi que redémarrer le site IIS.

 

 

Troubleshooting

Une des problématique peut apparaître lorsque des MAs sont déjà présent dans le moteur de synchronisation de FIM. Dès lors, vous vous retrouverez avec un message d'erreur comme indiqué ci-dessous ou lors de l'importation des "policy", celles-ci ne trouvent pas les MAs. Dans mon cas, j'ai donc supprimer le MA FIMPORTAIL et je l'ai ré-importé via un Import Management Agent.

Le cas similaire se produit dans le cas ou vous faites uniquement une restauration de FIM Service (sans l'import de la configuration du moteur de synchronisation), il faudra la aussi supprimer manuellement le MA FIMPORTAIL et le ré-importer. Ces différentes étapes doivent bien entendues être validées au préalables sur un environnement de dev.

 

Le script CommitChanges_policy remonte une erreur car il ne trouve pas les différents MAs (33 erreurs).

Je supprime le MA FIM Service.

Je le ré-importe via l'Import Management Agent.

Je sélectionne le bon MA...

Je le configure par rapport àl'environnement cible (url et identifiant différents de l'environnement source par exemple).

...

J'exécute le script ResumeUndoneImports_policy. Les erreurs sont corrigées.Les erreurs restantes sont dûes aux spécificités de l'environnement en question tel que le compte de service utilisé pour le module PowerShell (compte présent dans le set Administrator dans mon cas). 

Vous trouverez  du contenu complémentaire ici : http://technet.microsoft.com/en-us/library/ff400269(v=ws.10).aspx 

 

Bonne lecture, bon partage et n'hésitez pas à commenter...

Joris


Leave your comments

Post comment as a guest

0
Your comments are subject to administrator's moderation.
    • No comments found
    Powered by Komento