-
Notifications
You must be signed in to change notification settings - Fork 2.6k
/
task.json
416 lines (416 loc) · 18.4 KB
/
task.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
{
"id": "89A3A82D-4B3E-4A09-8D40-A793849DC94F",
"name": "IISWebAppDeployment",
"friendlyName": "[Deprecated] IIS Web App Deployment",
"description": "Deploy by MSDeploy, create/update website & app pools",
"helpMarkDown": "[More Information](https://aka.ms/iiswebappdeploydeprecatedreadme)",
"category": "Deploy",
"visibility": [
"Build",
"Release"
],
"author": "Microsoft Corporation",
"version": {
"Major": 1,
"Minor": 0,
"Patch": 25
},
"demands": [],
"minimumAgentVersion": "1.91.0",
"deprecated": true,
"groups": [
{
"name": "deployment",
"displayName": "Deployment",
"isExpanded": true
},
{
"name": "website",
"displayName": "Website",
"isExpanded": true
},
{
"name": "applicationPool",
"displayName": "Application Pool",
"isExpanded": true
},
{
"name": "advanced",
"displayName": "Advanced",
"isExpanded": false
}
],
"inputs": [
{
"name": "EnvironmentName",
"type": "multiLine",
"label": "Machines",
"defaultValue": "",
"required": true,
"helpMarkDown": "Provide a comma separated list of machine IP addresses or FQDNs along with ports. Port is defaulted based on the selected protocol. <br>Eg: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 <br>Or provide output variable of other tasks. Eg: $(variableName)"
},
{
"name": "AdminUserName",
"type": "string",
"label": "Admin Login",
"defaultValue": "",
"required": false,
"helpMarkDown": "Administrator login for the target machines."
},
{
"name": "AdminPassword",
"type": "string",
"label": "Password",
"defaultValue": "",
"required": false,
"helpMarkDown": "Administrator password for the target machines. <br>It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. <br>You may mark variable type as 'secret' to secure it. "
},
{
"name": "WinRMProtocol",
"type": "radio",
"label": "Protocol",
"required": false,
"defaultValue": "",
"options": {
"Http": "HTTP",
"Https": "HTTPS"
},
"helpMarkDown": "Select the protocol to use for the WinRM connection with the machine(s). Default is HTTPS."
},
{
"name": "TestCertificate",
"type": "boolean",
"label": "Test Certificate",
"defaultValue": "true",
"visibleRule": "WinRMProtocol = Https",
"required": false,
"helpMarkDown": "Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol."
},
{
"name": "WebDeployPackage",
"type": "string",
"label": "Web Deploy Package",
"required": true,
"groupName": "deployment",
"defaultValue": "",
"helpMarkDown": "Location of the Web Deploy (MSDeploy) zip file on the target machines or on a UNC path like, \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported like, $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web."
},
{
"name": "WebDeployParamFile",
"type": "string",
"label": "Web Deploy Parameter File",
"required": false,
"groupName": "deployment",
"defaultValue": "",
"helpMarkDown": "Location of the Parameter file on the target machines or on a UNC path. Parameter file is used to override Web application configuration settings like, IIS Web application name or database connection string."
},
{
"name": "OverRideParams",
"type": "multiLine",
"label": "Override Parameters",
"required": false,
"groupName": "deployment",
"defaultValue": "",
"helpMarkDown": "Parameters specified here will override the parameters in the MSDeploy zip file and the Parameter file. To override more than one parameter use line separator, e.g., <br/> \"IIS Web Application Name\"=\"Fabrikam\" <br/> \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\""
},
{
"name": "CreateWebSite",
"type": "boolean",
"label": "Create or Update Website",
"required": false,
"groupName": "website",
"defaultValue": "false",
"helpMarkDown": "Select the option to create a website or to update an existing website."
},
{
"name": "WebSiteName",
"type": "string",
"label": "Website Name",
"required": true,
"groupName": "website",
"defaultValue": "",
"visibleRule": "CreateWebSite = true",
"helpMarkDown": "Name of the IIS website that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the website should be same as that specified in the web deploy zip package file. If a Parameter file and override Parameters setting is also specified, then the name of the website should be same as that in the override Parameters setting."
},
{
"name": "WebSitePhysicalPath",
"type": "string",
"label": "Physical Path",
"required": true,
"groupName": "website",
"defaultValue": "%SystemDrive%\\inetpub\\wwwroot",
"visibleRule": "CreateWebSite = true",
"helpMarkDown": "Physical path where the website content is stored. The content can reside on the local computer or on a remote directory or share like, C:\\Fabrikam or \\\\\\\\ContentShare\\Fabrikam."
},
{
"name": "WebSitePhysicalPathAuth",
"type": "pickList",
"label": "Physical Path Authentication",
"required": true,
"groupName": "website",
"defaultValue": "Application User (Pass-through)",
"visibleRule": "CreateWebSite = true",
"options": {
"WebSiteUserPassThrough": "Application User (Pass-through)",
"WebSiteWindowsAuth": "Windows Authentication"
},
"helpMarkDown": "Authentication mechanism for accessing the physical path of the website."
},
{
"name": "WebSiteAuthUserName",
"type": "string",
"label": "User Name",
"required": true,
"groupName": "website",
"defaultValue": "",
"visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
"helpMarkDown": "User name for accessing the website's physical path."
},
{
"name": "WebSiteAuthUserPassword",
"type": "string",
"label": "Password",
"required": false,
"groupName": "website",
"defaultValue": "",
"visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
"helpMarkDown": "Password for accessing the website's physical path. If you are using a gMSA, this is not required."
},
{
"name": "AddBinding",
"type": "boolean",
"label": "Add Binding",
"required": false,
"groupName": "website",
"defaultValue": "true",
"visibleRule": "CreateWebSite = true",
"helpMarkDown": "Select the option to add port binding for the website."
},
{
"name": "AssignDuplicateBinding",
"type": "boolean",
"label": "Assign Duplicate Binding",
"required": false,
"groupName": "website",
"defaultValue": "false",
"visibleRule": "AddBinding = true",
"helpMarkDown": "Select the option to add the bindings specified here, even if there is another website with the same bindings. If there are binding conflicts, then only one of the website will start."
},
{
"name": "Protocol",
"type": "pickList",
"label": "Protocol",
"required": true,
"groupName": "website",
"defaultValue": "http",
"options": {
"https": "https",
"http": "http"
},
"visibleRule": "AddBinding = true",
"helpMarkDown": "Select HTTP for the website to have an HTTP binding, or select HTTPS for the website to have a Secure Sockets Layer (SSL) binding."
},
{
"name": "IPAddress",
"type": "string",
"label": "IP Address",
"required": true,
"groupName": "website",
"defaultValue": "All Unassigned",
"visibleRule": "AddBinding = true",
"helpMarkDown": "Type an IP address that users can use to access this website. If All Unassigned is selected, the site will respond to requests for all IP addresses on the port and the optional host name that is specified for this site, unless another site on the server has a binding on the same port but with a specific IP address."
},
{
"name": "Port",
"type": "string",
"label": "Port",
"required": true,
"groupName": "website",
"defaultValue": "80",
"visibleRule": "AddBinding = true",
"helpMarkDown": "Type the port on which Hypertext Transfer Protocol Stack (HTTP.sys) must listen for requests made to this website."
},
{
"name": "ServerNameIndication",
"type": "boolean",
"label": "Server Name Indication Required",
"required": false,
"groupName": "website",
"defaultValue": "false",
"visibleRule": "Protocol = https",
"helpMarkDown": "Determines whether the website requires Server Name Indication (SNI). SNI extends the SSL and TLS protocols to indicate what host name the client is attempting to connect to. It allows multiple secure websites with different certificates to use the same IP address."
},
{
"name": "HostNameWithOutSNI",
"type": "string",
"label": "Host Name",
"required": false,
"groupName": "website",
"defaultValue": "",
"visibleRule": "ServerNameIndication = false",
"helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
},
{
"name": "HostNameWithHttp",
"type": "string",
"label": "Host Name",
"required": false,
"groupName": "website",
"defaultValue": "",
"visibleRule": "Protocol = http",
"helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
},
{
"name": "HostNameWithSNI",
"type": "string",
"label": "Host Name",
"required": true,
"groupName": "website",
"defaultValue": "",
"visibleRule": "ServerNameIndication = true",
"helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
},
{
"name": "SSLCertThumbPrint",
"type": "string",
"label": "SSL Certificate Thumb Print",
"required": true,
"groupName": "website",
"defaultValue": "",
"visibleRule": "Protocol = https",
"helpMarkDown": "Thumb-print of the Secure Socket Layer certificate that the website is going to use. The certificate should be already installed on the machine and present under the Local Computer, Personal store."
},
{
"name": "CreateAppPool",
"type": "boolean",
"label": "Create or Update Application Pool",
"required": false,
"groupName": "applicationPool",
"defaultValue": "false",
"helpMarkDown": "Select the option to create an application pool or to update an existing application pool."
},
{
"name": "AppPoolName",
"type": "string",
"label": "Name",
"defaultValue": "",
"required": true,
"groupName": "applicationPool",
"visibleRule": "CreateAppPool = true",
"helpMarkDown": "Name of the IIS application pool to create or update. Existing application pool will be updated with the settings specified here."
},
{
"name": "DotNetVersion",
"type": "pickList",
"label": ".NET Version",
"defaultValue": "v4.0",
"required": true,
"groupName": "applicationPool",
"visibleRule": "CreateAppPool = true",
"helpMarkDown": "Version of the .NET Framework that is loaded by this application pool. If the applications assigned to this application pool do not contain managed code, select the No Managed Code option from the list.",
"options": {
"v4.0": "v4.0",
"v2.0": "v2.0",
"No Managed Code": "No Managed Code"
}
},
{
"name": "PipeLineMode",
"type": "pickList",
"label": "Managed Pipeline Mode",
"defaultValue": "Integrated",
"required": true,
"groupName": "applicationPool",
"visibleRule": "CreateAppPool = true",
"helpMarkDown": "Managed pipeline mode specifies how IIS processes requests for managed content. Use classic mode only when the applications in the application pool cannot run in the Integrated mode.",
"options": {
"Integrated": "Integrated",
"Classic": "Classic"
}
},
{
"name": "AppPoolIdentity",
"type": "pickList",
"label": "Identity",
"defaultValue": "ApplicationPoolIdentity",
"required": true,
"groupName": "applicationPool",
"visibleRule": "CreateAppPool = true",
"helpMarkDown": "Configure the account under which an application pool's worker process runs. Select one of the predefined security accounts or configure a custom account.",
"options": {
"ApplicationPoolIdentity": "ApplicationPoolIdentity",
"LocalService": "LocalService",
"LocalSystem": "LocalSystem",
"NetworkService": "NetworkService",
"SpecificUser": "Custom Account"
}
},
{
"name": "AppPoolUsername",
"type": "string",
"label": "Username",
"defaultValue": "",
"required": true,
"groupName": "applicationPool",
"visibleRule": "AppPoolIdentity = SpecificUser"
},
{
"name": "AppPoolPassword",
"type": "string",
"label": "Password",
"defaultValue": "",
"required": false,
"helpMarkDown": "If you are using a gMSA, this is not required.",
"groupName": "applicationPool",
"visibleRule": "AppPoolIdentity = SpecificUser"
},
{
"name": "AppCmdCommands",
"type": "multiLine",
"label": "Additional AppCmd.exe Commands",
"required": false,
"groupName": "advanced",
"defaultValue": "",
"helpMarkDown": "Additional AppCmd.exe commands to set website or application pool properties. For more than one command use line separator, e.g., <br/> list apppools <br/> list sites"
},
{
"name": "DeployInParallel",
"type": "boolean",
"label": "Deploy in Parallel",
"defaultValue": "true",
"required": false,
"groupName": "advanced",
"helpMarkDown": "Setting it to true will deploy the Web application in-parallel on the target machines."
},
{
"name": "ResourceFilteringMethod",
"type": "radio",
"label": "Select Machines By",
"required": false,
"defaultValue": "machineNames",
"options": {
"machineNames": "Machine Names",
"tags": "Tags"
},
"groupName": "advanced",
"helpMarkDown": "Optionally, select a subset of machines either by providing machine names or tags."
},
{
"name": "MachineFilter",
"type": "string",
"label": "Deploy to Machines",
"required": false,
"defaultValue": "",
"groupName": "advanced",
"helpMarkDown": "This input is valid only for machine groups and is not supported for flat list of machines or output variables yet. Provide a list of machines like, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, or tags like, Role:DB; OS:Win8.1. If multiple tags are provided, then the task will run in all the machines with the specified tags. For Azure Resource Groups, provide the virtual machine's name like, ffweb, ffdb. The default is to run the task in all machines."
}
],
"instanceNameFormat": "[Deprecated] Deploy IIS App: $(WebDeployPackage)",
"execution": {
"PowerShell": {
"target": "$(currentDirectory)\\DeployIISWebApp.ps1",
"argumentFormat": "",
"workingDirectory": "$(currentDirectory)"
}
}
}