sqlug msbuild ssrs deployments

Post on 19-Jan-2015

1.822 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

This is the slidedeck of the presentation delivered to the Belgian SQL user group at 29th January of 2013. It's about automating SSRS deployments using MSBUILD.

TRANSCRIPT

1

LEVERAGING MSBUILD TO AUTOMATE SSRS DEPLOYMENTSKOEN VERBEECK

2

WHO AM I?

3

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

4

INTRODUCTION

SSIS & SSAS both have (somewhat) easy methods to automate deployments

- DTUTIL

- XMLA

... but what about SSRS?

- Visual Studio (not automated)

- RS.exe with VBScripts hard to generate yourself and no built-in tool

RSScripter fills this gap

- but has some shortcomings

- MSBuild (open source) has a learning curve

5

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

6

WHAT IS MSBUILD?

platform for building applications

- typically used in conjunction with Visual Studio

- project file (XML) controls how MSBuild processes and builds software ItemGroup

- input of the build process

- typically refers to source files

Task

- unit of executable code used to perform build operations

Target

- groups tasks together

Properties

- key/value pairs configuring the build

7

WHAT IS MSBUILD?

requires

- .NET framework

- Visual Studio is not required to run MSBuild

sample (source: Walkthrough: Creating an MSBuild Project File from Scratch)

8

WHAT IS MSBUILD?

how do we use this to deploy our SSRS projects?

- SQL Server Reporting Services MSBuild Tasks C# open source project on Codeplex by Steven Wright (blog | twitter)

tasks specify how SSRS objects are deployed to a server

- uses the SSRS webservice in the background

- tasks are available for SSRS 2008 - Native mode

SSRS 2008 - Integrated mode

SSRS 2008R2

9

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

10

AUTOMATE YOUR DEPLOYMENT

solution consists of the following objects

- folder with objects to be deployed reports & shared data sets

- \bin folder with ssrsmsbuildtasks.dll contains actual code

- ssrsmsbuildtasks.R2.tasks in home folder maps tasks to the assembly containing the task implementation

- MSBuild project file specifies what to deploy and in what order

- batch file to start the build process schedule this to automate your deployment

11

AUTOMATE YOUR DEPLOYMENT

ssrsmsbuildtasks.R2.tasks

12

AUTOMATE YOUR DEPLOYMENT

breakdown of the MSBuild project file

- project element (required) (line 1)

- import element (line 3)

imports content from one project file into another

in this solution, tasks are defined in assembly, not in project file itself

imports build tasks

specifies optional targets

13

AUTOMATE YOUR DEPLOYMENT

PropertyGroups

- ReportServer: defines URL and folders (lines 6-12)

- Target Dependencies (lines 60-71)

other targets

14

AUTOMATE YOUR DEPLOYMENT

ItemGroups

- Reports and DataSets (lines 15-38)

wildcardset properties

object path

15

AUTOMATE YOUR DEPLOYMENT

ItemGroups

- Data Sources (lines 41-58)

needs to be fully specified in project file (no object to import)

SQL Server

SSAS

name of the data source

16

AUTOMATE YOUR DEPLOYMENT

Targets/Tasks (lines 76-112)

- GetFullServerURL: uses GetFullURL to find the URL of the webservice

- DeleteFolders: uses ReportfolderExists & DeleteReportfolder

- CreateReportingFolders: uses CreateReportFolder

17

AUTOMATE YOUR DEPLOYMENT

Targets/Tasks

- CreateConnectionSources: uses CreateReportingDataSource to create shared data sets

- CreateShareDataSet: uses AddShareDataSets to deploy shared data sets

- DeployReports: uses AddReports

18

AUTOMATE YOUR DEPLOYMENT

Targets/Tasks

- SetReportDataSet: uses SetReportDataSet to link reports with shared data sets

- SetReportsDataSource: uses SetReportDataSource to link reports with shared data sources

19

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

20

TIPS&TRICKS

possible to exclude items

specify aliases for datasets

- not possible for data sources

21

TIPS&TRICKS

specify folder properties

specify authentication

single report deployment?

- every data source and dataset has to be redeployed!

22

TIPS&TRICKS

other objects can be deployed as well

- subscriptions data and e-mail/file

- schedules

out of scope for this session

check out the sample from codeplex

23

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

24

CONCLUSION

MSBuild uses open source SSRSMSBuildTasks

- download from Codeplex

can deploy all SSRS 2008R2 objects

allows for automatic deployment

has a learning curve

has some disadvantages

- difficult iterative deployments

- lots of unnecessary warnings

- hard to debug

25

RESOURCES

MSBuildhttp://msdn.microsoft.com/en-us/library/vstudio/dd393574.aspx

Walkthrough: Creating an MSBuild Project File from Scratchhttp://msdn.microsoft.com/en-us/library/vstudio/dd576348.aspx

MSBuild Command-Line Referencehttp://msdn.microsoft.com/en-us/library/vstudio/ms164311.aspx

SQL Server Reporting Services MSBuild Taskshttp://ssrsmsbuildtasks.codeplex.com/

Jamie Thomson - Deploying Reporting Services reports using msbuildhttp://sqlblog.com/blogs/jamie_thomson/archive/2009/10/31/deploying-reporting-services-reports-using-msbuild.aspx

26

Q & A

top related