Linux will require permissions to run the build script:
chmod +x build.sh
Each target SSIS server requires:
SSISDB
for build agent loginSSISDB
:
ssis_admin
db_datareader
msdb
for build agent loginmsdb
:
db_datareader
SqlAgentUserRole
pip install --requirement requirements/build.txt
rm -rf dist/
./build.sh
This will create dist/sql-deployment-tools.exe
.
*.ispac
artifact to SSISDB (using SSIS DevOps Tools extension)
To be placed in the SSIS package folder and included in the CI build.
Optionally, the sql-deployment-tools
executable can be downloaded
and used to validate this config file in the pipeline.
project = "My Integration Services Project"
folder = "def"
environment = "default"
[[parameters]]
name = "name1"
value = "{SECRET_VALUE}"
sensitive = true
[[parameters]]
name = "name2"
value = "value2"
sensitive = false
[job]
name = "whatever"
description = "cool"
enabled = true
notification_email_address = "{NotificationEmailAddress}"
[[job.steps]]
name = "todo"
type = "SSIS"
ssis_package = "MyIntegrationServicesProjectLoad.dtsx"
proxy = "SSISProxy"
[[job.steps]]
name = "2"
type = "SSIS"
ssis_package = "MyIntegrationServicesProjectTransform.dtsx"
proxy = "SSISProxy"
[[job.steps]]
name = "3"
type = "T-SQL"
tsql_command = "SELECT TOP 10 * FROM sys.objects"
[[job.schedules]]
name = "name1"
every_n_minutes = 12
[[job.schedules]]
name = "name2"
every_n_minutes = 111
Note, when configuring a T-SQL step in an agent job, the default database
will be master
and so you should use three part naming in your script like so:
SELECT * FROM [Database].[Schema].[Table];
Note the {SECRET_VALUE}
token in the above config.
This placeholder approach allows for source control of the configuration without storing secrets.
Secrets/tokens can then be injected at deployment time using the
--replacement-tokens
argument, e.g.:
sql-deployment-tools deploy --replacement-tokens '{"SECRET_VALUE": "***"}'
Driver={SQL Server Native Client 11.0};Server=.;Database=SSISDB;Trusted_Connection=yes;