sqlug msbuild ssrs deployments

27
1 LEVERAGING MSBUILD TO AUTOMATE SSRS DEPLOYMENTS KOEN VERBEECK

Upload: koenverbeeck

Post on 19-Jan-2015

1.822 views

Category:

Documents


5 download

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

Page 1: SQLUG MSBUILD SSRS Deployments

1

LEVERAGING MSBUILD TO AUTOMATE SSRS DEPLOYMENTSKOEN VERBEECK

Page 2: SQLUG MSBUILD SSRS Deployments

2

WHO AM I?

Page 3: SQLUG MSBUILD SSRS Deployments

3

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

Page 4: SQLUG MSBUILD SSRS Deployments

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

Page 5: SQLUG MSBUILD SSRS Deployments

5

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

Page 6: SQLUG MSBUILD SSRS Deployments

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

Page 7: SQLUG MSBUILD SSRS Deployments

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)

Page 8: SQLUG MSBUILD SSRS Deployments

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

Page 9: SQLUG MSBUILD SSRS Deployments

9

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

Page 10: SQLUG MSBUILD SSRS Deployments

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

Page 11: SQLUG MSBUILD SSRS Deployments

11

AUTOMATE YOUR DEPLOYMENT

ssrsmsbuildtasks.R2.tasks

Page 12: SQLUG MSBUILD SSRS Deployments

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

Page 13: SQLUG MSBUILD SSRS Deployments

13

AUTOMATE YOUR DEPLOYMENT

PropertyGroups

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

- Target Dependencies (lines 60-71)

other targets

Page 14: SQLUG MSBUILD SSRS Deployments

14

AUTOMATE YOUR DEPLOYMENT

ItemGroups

- Reports and DataSets (lines 15-38)

wildcardset properties

object path

Page 15: SQLUG MSBUILD SSRS Deployments

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

Page 16: SQLUG MSBUILD SSRS Deployments

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

Page 17: SQLUG MSBUILD SSRS Deployments

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

Page 18: SQLUG MSBUILD SSRS Deployments

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

Page 19: SQLUG MSBUILD SSRS Deployments

19

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

Page 20: SQLUG MSBUILD SSRS Deployments

20

TIPS&TRICKS

possible to exclude items

specify aliases for datasets

- not possible for data sources

Page 21: SQLUG MSBUILD SSRS Deployments

21

TIPS&TRICKS

specify folder properties

specify authentication

single report deployment?

- every data source and dataset has to be redeployed!

Page 22: SQLUG MSBUILD SSRS Deployments

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

Page 23: SQLUG MSBUILD SSRS Deployments

23

OUTLINE

INTRODUCTION

WHAT IS MSBUILD?

AUTOMATE YOUR DEPLOYMENT

TIPS&TRICKS

CONCLUSION

Page 24: SQLUG MSBUILD SSRS Deployments

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

Page 25: SQLUG MSBUILD SSRS Deployments

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

Page 26: SQLUG MSBUILD SSRS Deployments

26

Q & A