Déploiement de scripts et tâches d'administration

Reporting Services prend en charge l'utilisation de scripts pour automatiser les installations courantes, le déploiement et les tâches administratives. Le déploiement d'un serveur de rapports est un processus en plusieurs étapes. Vous devez utiliser plusieurs outils et processus pour configurer un déploiement ; il n'existe pas de programme ou d'approche unique pouvant être utilisé pour automatiser toutes les tâches.

Toutes les étapes ne doivent pas être automatisées. Dans certains cas, la réalisation d'une étape manuellement ou par le biais d'un outil graphique constitue l'approche la plus simple et la plus efficace. Par exemple, si vous souhaitez déployer un grand nombre de rapports et de modèles, il est préférable de copier les bases de données du serveur de rapports plutôt que d'écrire du code qui recrée l'environnement du serveur de rapports.

Certaines étapes exigent un code personnalisé. Par exemple, vous pouvez automatiser la configuration des URL pour le service Web et le Gestionnaire de rapports, mais uniquement si vous écrivez un code personnalisé qui soumet des appels au fournisseur WMI (Windows Management Instrumentation) Report Server. Si vous ne souhaitez pas écrire de code, vous devez utiliser l’outil de configuration de Reporting Services pour effectuer cette étape.

Pour exécuter un script qui configure un serveur de rapports, vous devez être un administrateur local sur l'ordinateur que vous configurez. Pour plus d’informations, consultez Configurer un serveur de rapports pour l’administration à distance.

Cet article décrit les approches recommandées pour automatiser des étapes spécifiques. Plusieurs programmes et interfaces de programmation sont mentionnés ; les descriptions de chacun sont fournies plus loin dans cet article.

Tâches de déploiement et comment les automatiser

Le tableau suivant résume les tâches d'installation et de configuration nécessaires au déploiement d'un serveur de rapports. Vous pouvez vous reporter à ce tableau pour associer une tâche spécifique à une approche vous permettant d'automatiser ou d'effectuer la tâche sans assistance.

Tâche Approche
Installez Reporting Services. Vous pouvez exécuter une installation sans assistance à partir de la ligne de commande.

Vous pouvez utiliser le programme d'installation pour installer et configurer un serveur de rapports, mais uniquement si vous spécifiez l'option de configuration par défaut et si votre système répond à toutes les exigences de ce type d'installation. Si l’installation de la configuration par défaut est impossible, procédez à une installation fichiers seuls.
Configurez le compte de service. Le compte de service est configuré initialement à travers l'installation. Pour automatiser les modifications du compte de service comme tâche de post-installation, vous devez écrire le code personnalisé qui soumet les appels au fournisseur WMI Report Server. Il n'existe pas d'utilitaire d'invite de commandes ou de modèle de script pour configurer le compte de service par programme.

Si les exigences du code vous empêchent d'automatiser cette étape, vous pouvez facilement configurer le compte manuellement à l'aide de l'outil de configuration de Reporting Services . Pour plus d’informations, consultez Configurer un compte de service (Report Server Configuration Manager).
Configurez les URL du service Web Report Server et du Gestionnaire de rapports. Vous devez écrire le code personnalisé chargé de soumettre les appels au fournisseur WMI Report Server. Il n'existe pas d'utilitaire de ligne de commande ou de modèle de script pour configurer les URL.

Si vous souhaitez éviter d'écrire le code, vous pouvez configurer manuellement les URL en exécutant l'outil de configuration de Reporting Services . Pour plus d’informations, consultez Configurer une URL (Gestionnaire de configuration du serveur de rapports).
Créez la base de données du serveur de rapports. Vous devez écrire le code personnalisé chargé de soumettre les appels au fournisseur WMI Report Server. Il n'existe pas d'utilitaire d'invite de commandes ou de modèle de script pour créer les bases de données du serveur de rapports et RSExecRole.

Si vous souhaitez éviter d'écrire le code, vous pouvez créer la base de données manuellement en exécutant l'outil de configuration de Reporting Services . Pour plus d’informations, consultez Créer une base de données du serveur de rapports en mode natif (Configuration Manager du serveur de rapports).
Configurez la connexion à la base de données du serveur de rapports. Si vous modifiez la chaîne de connexion, le compte, le mot de passe, ou le type d’authentification, exécutez l’utilitaire rsconfig pour configurer la connexion. Pour plus d’informations, consultez Configurer une connexion à la base de données du serveur de rapports (Configuration Manager du serveur de rapports) et Utilitaire rsconfig (SSRS).

L’utilisation de rsconfig.exe n’est pas possible pour la création ni la mise à niveau de la base de données. La base de données et RSExecRole doivent déjà exister.
Configurer un déploiement avec montée en puissance parallèle. Choisissez l'une des approches suivantes pour automatiser un déploiement avec montée en puissance parallèle :

- Exécuter l’utilitaire rskeymgmt.exe pour joindre les instances du serveur de rapports à une installation existante. Pour plus d’informations, consultez Ajouter et supprimer des clés de chiffrement pour un déploiement par scale-out (Configuration Manager du serveur de rapports).
- Écrire du code personnalisé qui s’exécute sur le fournisseur WMI Report Server.
Sauvegarder les clés de chiffrement. Choisissez l'une des approches suivantes pour automatiser la sauvegarde des clés de chiffrement :

- Exécuter l’utilitaire rskeymgmt.exe pour sauvegarder les clés. Pour plus d’informations, consultez Back Up and Restore Reporting Services Encryption Keys.
- Écrire du code personnalisé qui s’exécute sur le fournisseur WMI Report Server.
Configurez la messagerie Report Server. Écrivez le code personnalisé à exécuter sur le fournisseur WMI de Reporting Services . Le fournisseur prend en charge un sous-ensemble des paramètres de configuration de la messagerie.

N’utilisez pas le fichier RSReportServer.config de manière automatisée, même s’il contient tous les paramètres. En particulier, ne vous servez pas d’un fichier de commandes pour copier le fichier sur un autre serveur de rapports. Chaque fichier de configuration inclut des valeurs qui sont spécifiques à l'instance active. Ces valeurs ne sont pas valides sur d'autres instances de serveur de rapports.

Pour plus d’informations sur les paramètres, consultez Paramètres d’e-mail : mode natif de Reporting Services (Configuration Manager).
Configurer le compte d'exécution sans assistance. Choisissez l'une des approches suivantes pour automatiser la configuration du compte de traitement sans assistance :

- Exécuter l’utilitaire rsconfig.exe pour configurer le compte. Pour plus d’informations, consultez Configurer le compte d’exécution sans assistance (Configuration Manager du serveur de rapports).
- Écrire du code personnalisé qui effectue des appels au fournisseur WMI Report Server.
Déployez le contenu existant sur un autre serveur de rapports, y compris l'arborescence des dossiers, les attributions de rôles, les rapports, les abonnements, les planifications, les sources de données et les ressources. Le meilleur moyen de recréer un environnement de serveur de rapports existant est de copier la base de données du serveur de rapports dans une nouvelle instance du serveur de rapports.

Une autre approche consiste à écrire un code personnalisé capable de recréer par programme le contenu du serveur de rapports existant. Toutefois, les abonnements, les instantanés de rapport et l’historique des rapports ne peuvent pas être recréés par programme.

Certains déploiements peuvent bénéficier de l’utilisation conjointe des deux techniques. Par exemple, restaurez une base de données du serveur de rapports, puis exécutez un code personnalisé qui modifie la base de données du serveur de rapports pour une installation spécifique.

Pour obtenir un exemple détaillé, consultez Exemple de script Reporting Services rs.exe pour copier du contenu entre des serveurs de rapports.

Pour plus d'informations sur le déplacement d'une base de données du serveur de rapports, consultez Déplacer les bases de données du serveur de rapports vers un autre ordinateur (mode natif SSRS). Pour plus d'informations sur la création d'un environnement de serveur de rapports par programmation, consultez la section « Utiliser des scripts pour migrer le contenu et les dossiers du serveur de rapports » dans cet article.

Outils et technologies pour automatiser le déploiement de serveurs

La liste ci-après répertorie les programmes et les interfaces qu'il est possible d'utiliser pour automatiser les tâches de déploiement et de maintenance :

  • Vous pouvez exécuter le programme d'installation en mode sans assistance pour installer et parfois configurer les composants du serveur de rapports. Vous devez choisir l'option d'installation de fichiers uniquement pour que le programme d'installation configure une instance du serveur de rapports.

  • Vous pouvez faire appel au fournisseur WMI de Reporting Services et aux utilitaires de ligne de commande de Reporting Services pour la configuration des serveurs locaux et distants.

    Le fournisseur WMI Reporting Services expose les classes, propriétés et méthodes qui vous permettent de configurer tous les aspects d'une installation Reporting Services. Ces aspects incluent la spécification du compte de service et la configuration des URL. Ils peuvent inclure également la création et la configuration de la base de données du serveur de rapports ou la configuration d'un serveur de rapports pour la livraison par courrier électronique. Vous devez écrire un code personnalisé ou un script pour utiliser le fournisseur WMI. Pour plus d’informations, consultez Accéder au fournisseur WMI de Reporting Services.

    Une solution autre que l'écriture de code est le recours aux utilitaires de ligne de commande (rsconfig.exe et rskeymgmt.exe). Vous pouvez créer des fichiers de commandes chargés d'exécuter les utilitaires. Vous pouvez exploiter les utilitaires afin d'automatiser certaines tâches de configuration, mais pas toutes.

  • L'outil hôte de script du serveur de rapports (rs.exe) peut exécuter du code Microsoft Visual Basic personnalisé que vous pouvez écrire pour recréer ou déplacer du contenu existant d'un serveur de rapports à un autre. Avec cette approche, vous écrivez un script dans Visual Basic, vous l'enregistrez en tant que fichier .rss et utilisez rs.exe pour exécuter le script sur le serveur de rapports cible. Le script que vous écrivez peut faire appel à l'interface SOAP vers le service Web Report Server. Cette approche est employée pour l'écriture des scripts de déploiement parce qu'elle vous permet de recréer un espace de noms et le contenu du dossier du serveur de rapports et de recréer la sécurité basée sur les rôles.

  • La version SQL Server 2012 inclut des applets de commande PowerShell pour le mode intégré SharePoint. Vous pouvez utiliser PowerShell pour configurer et administrer l'intégration SharePoint. Pour plus d’informations, consultez Applets de commande PowerShell pour le mode SharePoint de Reporting Services.

Utiliser des scripts pour migrer les dossiers et le contenu du serveur de rapports

Vous pouvez écrire des scripts capables de dupliquer un environnement de serveur de rapports sur une autre instance du serveur de rapports. Les scripts de déploiement sont écrits en Visual Basic, puis traités à l'aide de l'utilitaire hôte de script du serveur de rapports.

Pour obtenir un exemple détaillé, consultez Exemple de script Reporting Services rs.exe pour copier du contenu entre des serveurs de rapports.

Les scripts s'utilisent pour copier des dossiers, des sources de données partagées, des ressources, des rapports, des attributions de rôles et des paramètres d'un serveur sur un autre. Vous écrivez un script pour une instance de serveur de rapports, puis vous l'exécutez sur un autre serveur pour recréer l'espace de noms du serveur de rapports. Si votre déploiement Reporting Services contient plusieurs serveurs de rapports, vous pouvez exécuter le script sur chaque serveur individuellement de façon configurer tous les serveurs de la même manière.

La liste suivante décrit les étapes nécessaires à la migration de rapports d'un serveur vers un autre.

  1. Définissez votre variable de script sur l'URL du serveur de rapports source.

  2. Utilisez les méthodes GetItemDefinition et GetProperties pour récupérer la définition et les propriétés du rapport.

  3. Définissez l'URL de manière à pointer vers le serveur de destination.

  4. Utilisez la méthode CreateCatalogItem , en passant les propriétés retournées par GetProperties et la définition de rapport retournée par GetItemDefinition.

En utilisant une combinaison de méthodes « get » et « create », vous pouvez suivre une procédure analogue pour la migration des paramètres, des dossiers, des sources de données partagées et des ressources. Pour plus d’informations sur les méthodes disponibles, consultez Informations techniques de référence (SSRS).

Notes

Les scripts s’exécutent avec les informations d’identification Microsoft Windows de l’utilisateur qui exécute le script, sauf si les informations d’identification sont définies explicitement.

Pour plus d’informations sur la mise en forme et l’exécution d’un fichier script, consultez Écrire des scripts avec l’utilitaire rs.exe et le service Web.

Utilisation de scripts pour définir les propriétés du serveur

Vous pouvez écrire un script qui définit les propriétés système du serveur de rapports. Le script Visual Basic .NET suivant présente une méthode de définition des propriétés. Cet exemple désactive le contrôle RSClientPrint ActiveX, mais vous pouvez remplacer EnableClientPrinting et False par le nom et la valeur d'une propriété valide. Pour afficher la liste complète des propriétés de serveur, consultez Report Server System Properties.

Pour utiliser le script, enregistrez-le dans un fichier avec une extension .rss, puis utilisez l'utilitaire d’invite de commandes rs.exe pour exécuter le fichier sur le serveur de rapports. Comme le script n’est pas compilé, il n’est pas nécessaire de disposer d’une installation de Visual Basic. Cet exemple part du principe que vous disposez d'autorisations sur l'ordinateur local qui héberge le serveur de rapports. Si vous n'êtes pas connecté sous un compte disposant d'autorisations, vous devez spécifier les informations du compte via d'autres arguments de ligne de commande. Pour plus d’informations, consultez Utilitaire RS.exe (SSRS).

Public Sub Main()  
        Dim props(0) As [Property]  
        Dim setProp As New [Property]  
        setProp.Name = "EnableClientPrinting"  
        setProp.Value = "False"   
        props(0) = setProp  
        Try  
            rs.SetSystemProperties(props)  
        Catch ex As System.Web.Services.Protocols.SoapException  
            Console.Write(ex.Detail.InnerXml)  
        Catch e as Exception  
            Console.Write(e.Message)  
        End Try  
End Sub