ResourceExtension [SPFSDK][VMROLE]
Applies To: Windows Azure Pack
A resource extension is a versioned template that describes how a resource should be installed and configured within a resource that is described by a resource definition.
Type Hierarchy
ResourceExtension
Syntax
{
"SchemaVersion": "1.0",
"Name": "string",
"Version": "string in version format",
"Publisher": "string",
"ExtensionType" : "Microsoft.Compute/EnterpiseApplicationExtension/1.0",
"DataPackage": {
"Version": "1.0.0.0",
"Location": "MyTemplatePayload",
"ExternalPayload": [
{
"RelativePath": "string",
"Hash": "string",
"URLHint": "string"
}
]
},
"ResourceExtensionParameters": { <ResourceExtensionParameters> },
"ResourceRequirements": { <ResourceRequirements> },
"ExtensionSettings": {
"ApplicationProfile": { <ApplicationProfile> }
}
}
Properties
Name |
Type |
Required |
Default value |
Description |
---|---|---|---|---|
SchemaVersion |
String |
Yes |
None |
The version of the resource extension schema. Must always be set to 1.0. |
Name |
String |
Yes |
None |
The name of this resource extension. |
Version |
String |
Yes |
None |
The version of the resource extension. The format of the version is: <major>.<minor>.<build>.<release>. For example, 6.33.2.10. |
Publisher |
String |
No |
None |
The publisher of the resource extension. |
ExtensionType |
String |
Yes |
None |
The name of the contract that hosts this resource extension. Identifies which resources can support this resource extension. Must be set to Microsoft.Compute/EnterpiseApplicationExtension/1.0. |
DataPackage |
DataPackage |
No |
null |
The location of the payload that is used by the package. |
ResourceExtensionParameters |
No |
null |
The array of parameters that is declared by the resource extension. |
|
ResourceRequirements |
No |
null |
The requirements that the resource extension has in its resource. |
|
ExtensionSettings |
Yes |
None |
The applications and in-guest configurations for the hosting virtual machine. |
DataPackage
Name |
Type |
Required |
Default value |
Description |
---|---|---|---|---|
Version |
String |
Yes |
None |
The version of the data package. The format of the version is: <major>.<minor>.<build>.<release>. For example, 6.33.2.10. |
Location |
String |
Yes |
None |
The relative path within the resource extension package archive that contains the extension payload. |
ExternalPayload |
Array of ExternalPayload |
No |
None |
The file that the resource extension requires that is not redistributed as part of the resource extension package archive. |
ExternalPayload
Name |
Type |
Required |
Default value |
Description |
---|---|---|---|---|
RelativePath |
String |
Yes |
None |
The relative path in the resource extension package that the file exists. |
Hash |
String |
No |
None |
The SHA256 hash of the external payload file. |
URLHint |
String |
No |
None |
The URL that can be used to download the external payload file. |
Remarks
The following code example provides a sample ResourceExtension object.
{
"Name": "MyVirtualMachineRoleExtension",
"Version": "Version of the resource extension",
"Publisher": "Publisher of Extension",
"SchemaVersion": "1.0",
"ExtensionType": "Microsoft.Compute/ EnterpiseApplicationExtension/1.0",
"DataPackage": {
"Version": "1.0.0.0",
"Location": "MyTemplatePayload",
"ExternalPayload": [
{
"RelativePath": "sharepoint.msi",
"Hash": "...",
"URLHint": "http://<webpage-to-download-sharepoint>"
}
]
},
"ResourceExtensionParameters": [
{
"Name": "SQLInstance",
"Type": "string",
"Description": "my description"
},
{
"Name": "ConnectionString",
"Type": "string",
"Description": "my description"
},
{
"Name": "SharepointDB",
"Type": "string",
"Description": "my description"
}
],
"ResourceRequirements": {
"OSVirtualHardDiskRequirements": [
"WS2008",
"SysprepSQL"
],
},
"ExtensionSettings": {
"ApplicationProfile": {
"Name": "ApplicationProfile1",
"ApplicationPayload": [
{
"ID": "49c1ccdb-9068-4b91-9409-0a7ca8a1d291",
"RelativePath": "sharepointfiles"
}
],
"LinuxApplicationProfile": {
"RunOnceCommands": [
"ifconfig"
]
},
"WindowsApplicationProfile": {
"WindowsServerRolesAndFeatures": [
"TFTP-Client"
],
"SQLProfile": {
"SQLDeployments": [
{
"DeploymentName": "SQL Deployment 1",
"InstanceName": "[Param.SQLInstance]",
"InstanceID": "[Param.SQLInstance]",
"EnableNamedPipes": false,
"EnableTCP": true,
"MediaSource": "c:\\SQLMediaPath\\sqlsetup.exe",
"ProductKey": "abcdefghijklmnopqrstuvwxyz",
"SQLAuthenticationType": "WindowsAuthentication",
"SQLSysAdminMemberList": "domain\\user",
"DeploymentTimeOutInSeconds": 3600,
"SQLConfigurationPayloadId": "61A33949-46CE-4d0f-921F-A0059DA9AD1F",
"SAPassword": "MySAPassword",
"SQLDeploymentCredential": "domain\\user:password",
"SQLAgentServiceCredential": "NT AUTHORITY\\System:",
"SQLServiceCredential": "NT AUTHORITY\\NetworkService:",
"SQLReportingServiceCredential": "domain\\user:password"
}
]
},
"ProvisioningScripts": [
{
"AlwaysReboot": false,
"ApplicationPayloadId": "49c1ccdb-9068-4b91-9409-0a7ca8a1d291",
"DeploymentOrder": 1,
"ErrorPolicy": "FailOnMatch",
"ExecutableAndParams": {
"Executable": "cmd.exe",
"Parameters": "/q /c msiexec sharepoint.msi"
},
"ExitCodeRegex": "[1-9][0-9]*",
"MaxOutputSize": 1048576,
"RebootExitCodeRegex": "{1641}|{3010}|{3011}",
"RestartOnRetry": false,
"ScriptBlock": null,
"ScriptCredential": "domain\\user:password",
"ScriptType": "PreInstall",
"StandardErrorPath": "c:\\err.txt",
"StandardErrorRegex": ".+",
"StandardInput": null,
"StandardOutputPath": "c:\\out.txt",
"StandardOutputRegex": null,
"TimeoutInSeconds": 900,
"WorkingDirectory": null
}
],
"WebDeployApplications": [
{
"DeploymentName": "WebDeploy App 1",
"ScriptCommands": [
{
"AlwaysReboot": false,
"ApplicationPayloadId": "366819c2-bf11-4c85-9555- 6293e2a3ce7b",
"ErrorPolicy": "FailOnMatch",
"ExecutableAndParams": {
"Executable": "cmd.exe",
"Parameters": "/q /c installwebdeploy.cmd"
},
"ExitCodeRegex": "[1-9][0-9]*",
"MaxOutputSize": 1048576,
"RebootExitCodeRegex": "{1641}|{3010}|{3011}",
"RestartOnRetry": false,
"ScriptBlock": null,
"ScriptCredential": "domain\\user:password",
"ScriptType": "PreInstall",
"StandardErrorPath": "c:\\err.txt",
"StandardErrorRegex": ".+",
"StandardInput": null,
"StandardOutputPath": "c:\\out.txt",
"StandardOutputRegex": null,
"TimeoutInSeconds": 900,
"WorkingDirectory": null
}
],
"DeploymentName": "Deployment1",
"ApplicationPayloadId": "371ade4c-03a2-492d-9589-b399b940e44f",
"PackagePassword": "mypassword2",
"WebDeployParameters": [
{
"ParameterName": "CONNECTION_STRING",
"Value": "[Param.ConnectionString]"
}
]
}
],
"SQLDacApplications": [
{
"DeploymentName": "SQL App 1",
"ScriptCommands": [
{
"AlwaysReboot": false,
"ApplicationPayloadId": null,
"ErrorPolicy": "FailOnMatch",
"ExecutableAndParams": null,
"ExitCodeRegex": "[1-9][0-9]*",
"MaxOutputSize": 1048576,
"RebootExitCodeRegex": "{1641}|{3010}|{3011}",
"RestartOnRetry": false,
"ScriptBlock": "rem some script that needs to run before sqldac package is installed",
"ScriptCredential": {
"Password": "mypassword4",
"UserName": "dcmanagerlab\\esdcvsec4"
},
"ScriptType": "PreInstall",
"StandardErrorPath": "c:\\err.txt",
"StandardErrorRegex": ".+",
"StandardInput": null,
"StandardOutputPath": "c:\\out.txt",
"StandardOutputRegex": null,
"TimeoutInSeconds": 900,
"WorkingDirectory": null
}
],
"SQLScriptCommands": [
{
"DatabaseName": "[Param.SharepointDB]",
"DeploymentOrder": 1,
"EncryptConnection": false,
"ExecutionTimeoutSeconds": 500,
"LoginTimeoutSeconds": 50,
"OutputFilePath": "c:\\sharepointDB.sql.log",
"SQLAuthenticationType": "WindowsAuthentication",
"SQLScriptApplicationPayloadId": "db04416b-d0a8-44d5-b0ee-d5739378a98d",
"ScriptCredential": "[Param.SQLScriptCommandCredential]",
"ScriptType": "PostInstall"
}
],
"DeploymentName": "Deployment1",
"ApplicationPayloadId": "5b064b6a-d6d0-48f0-8979-9aafc676a9e5",
"BlockOnChanges": false,
"DacInstance": "[Param.SharepointDB]",
"IgnoreDataLoss": false,
"RollbackOnFailure": true,
"SQLAuthenticationType": "WindowsAuthentication",
"SQLDeploymentCredential": "[param.SQLDeploymentCredential]",
"SQLInstance": "[Param.SQLInstance]",
"SkipPolicyValidation": true,
"UninstallMode": "DropDatabase"
}
],
"ScriptApplications": [
{
"DeploymentName": "ScriptDeployment1",
"ScriptCommands": [
{
"AlwaysReboot": false,
"ApplicationPayloadId": "366819c2-bf11-4c85-9555- 6293e2a3ce7b",
"ErrorPolicy": "FailOnMatch",
"ExecutableAndParams": {
"Executable": "cmd.exe",
"Parameters": "/q /c installwebdeploy.cmd"
},
"ExitCodeRegex": "[1-9][0-9]*",
"MaxOutputSize": 1048576,
"RebootExitCodeRegex": "{1641}|{3010}|{3011}",
"RestartOnRetry": false,
"ScriptBlock": null,
"ScriptCredential": "domain\\user:mypassword",
"ScriptType": "PreInstall",
"StandardErrorPath": "c:\err.txt",
"StandardErrorRegex": ".+",
"StandardInput": null,
"StandardOutputPath": "c:\out.txt",
"StandardOutputRegex": null,
"TimeoutInSeconds": 900,
"WorkingDirectory": null
}
],
"EnvironmentVariables": [
{
"Name": "envvar1",
"Value": "foo",
},
{
"Name": "envvar2",
"Value": "bar",
},
],
"AlwaysReboot": false,
"ApplicationPayloadId": "49c1ccdb-9068-4b91-9409-0a7ca8a1d291",
"ErrorPolicy": "FailOnMatch",
"ExecutableAndParams": {
"Executable": "cmd.exe",
"Parameters": "/q /c msiexec sharepoint.msi"
},
"ExitCodeRegex": "[1-9][0-9]*",
"MaxOutputSize": 1048576,
"RebootExitCodeRegex": "{1641}|{3010}|{3011}",
"ScriptBlock": null,
"ScriptCredential": "username:password",
"StandardErrorPath": "c:\err.txt",
"StandardErrorRegex": ".+",
"StandardInput": null,
"StandardOutputPath": "c:\out.txt",
"StandardOutputRegex": null,
"TimeoutInSeconds": 900,
"WorkingDirectory": null
}
]
}
}
}
}
See Also
VM Role JSON Reference [SPFSDK][VMROLE]
VirtualMachineRole (Instance) [SPFSDK][VMROLE]
ResourceDefinition [SPFSDK][VMROLE]
ResourceConfiguration [SPFSDK][VMROLE]
Parameters and Types [SPFSDK][VMROLE]
ResourceRequirements [SPFSDK][VMROLE]
ExtensionSettings [SPFSDK][VMROLE]