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

Array of Parameters and Types [SPFSDK][VMROLE]

No

null

The array of parameters that is declared by the resource extension.

ResourceRequirements

ResourceRequirements [SPFSDK][VMROLE]

No

null

The requirements that the resource extension has in its resource.

ExtensionSettings

ExtensionSettings [SPFSDK][VMROLE]

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]