Add_workflow_for_techpubs |
---|
AUTH1 | UserResourceIdentifier{userKey=8a00a0c85bb25531015bc4122a4f0003, userName='null'} |
---|
JIRAIDAUTH | SYM-22656 |
---|
REV5 | UserResourceIdentifier{userKey=8a00a0c85bb25531015bc4122a4f0003, userName='null'} |
---|
REV6 | UserResourceIdentifier{userKey=8a00a0c85bb25531015bc4122a4f0003, userName='null'} |
---|
REV3 | UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26c85500c9, userName='null'} |
---|
REV1 | UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cc5207f0, userName='null'} |
---|
|
...
For prerequisites, refer to Deploying the Survivable Branch Appliance and Using Powershell 3 to Access REST.
...
The action below defines the login resource used to log into the Sonus SBC the
REST API. This is the first request that needs to be made before you can access any of the other REST Resources on
the Sonus SBC 1000/2000 the system. Refer to
Resource - login.
Code Block |
---|
### Allow self Sign Cert
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
### Login
$BodyValue = "Username=restuser&Password=restpass"
$url = "https://134.56.226.215/rest/login"
$Result = Invoke-RestMethod -Uri $url -Method Post -Body $BodyValue -SessionVariable ps |
...
The action below retrieves the factory image information available on ASM. Refer to Resource - asmfactoryimage.
Query
Code Block |
---|
$url = "https://134.56.226.215/rest/asmfactoryimage"
Invoke-RestMethod -Uri $url -Method GET -WebSession $ps
|
...
The action below retrieves the detailed factory image information on ASM. Refer to Resource - asmfactoryimage.
Query
Code Block |
---|
$url = "https://134.56.226.215/rest/asmfactoryimage/1"
Invoke-RestMethod -Uri $url -Method GET -WebSession $ps
$url = "https://134.56.226.215/rest/asmfactoryimage/2"
Invoke-RestMethod -Uri $url -Method GET -WebSession $ps
$url = "https://134.56.226.215/rest/asmfactoryimage/3"
Invoke-RestMethod -Uri $url -Method GET -WebSession $ps |
...
The action below re-initializes the ASM and puts it in default factory state. Refer to Resource - sbaconfig.
Query
Code Block |
---|
##########
$dirNam = "2013-05-02_10-08-26"
##########
$BodyValue = "dirName=$dirName"
$url = "https://134.56.226.215/rest/sbaconfig?action=asmreinitialize"
Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps |
...
The action below modifies the SBA configuration resource. This is the first step in setting up the SBA. Refer to to Resource - sbaconfig.
Query
Code Block |
---|
$DHCPEnabled = 0
$ipv4Address = "134.56.226.214"
$ipv4Netmask = "255.255.255.0"
$ipv4Gateway = "134.56.226.5"
$RemoteDesktopEnabled = 1
$DNSServer1 = "134.56.227.32"
$DNSServer2 = "134.56.226.75"
$AclEnable = 1
##########
$BodyValue = "DHCPEnabled=$DHCPEnabled&ipv4Address=$ipv4Address&ipv4Netmask=$ipv4Netmask&ipv4Gateway=$ipv4Gateway&RemoteDesktopEnabled=$RemoteDesktopEnabled&DNSServer1=$DNSServer1&DNSServer2=$DNSServer2&AclEnable=$AclEnable"
$url = "https://134.56.226.215/rest/sbaconfig"
Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps |
...
The action below configures the domain in which the SBA will connect. Refer to to Resource - sbaconfig.
Query
Code Block |
---|
$hostName = "SBA2010-226-214"
$domainName = "UX2013.COM"
$userName = "UX2013\administrator"
$userPassword = "Password1"
##########
$BodyValue = "hostName=$hostName&domainName=$domainName&userName=$userName&userPassword=$userPassword"
$url = "https://134.56.226.215/rest/sbaconfig?action=joindomain"
Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
|
...
The action below performs a number of low-level steps necessary to deploy the ASM packages. Refer to Resource - sbaconfig.
Query
Code Block |
---|
$url = "https://134.56.226.215/rest/sbaconfig?action=deploy"
Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps
|
...
The action below causes the Communications Server (CS) to begin configuration replication with the domain. This is a necessary step for bringing up the CS configuration, as well as receiving updates from the domain. Refer to to Resource - sbaconfig.
Query
Code Block |
---|
$url = "https://134.56.226.215/rest/sbaconfig?action=startreplication"
Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps |
...
The action below activates the Communications Server (CS) and must be done before the certificates are installed. Refer to to Resource - sbaconfig.
Query
Code Block |
---|
$url = "https://134.56.226.215/rest/sbaconfig?action=activatewithlync"
Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps |
...
This resource defines the generatecsr action on the SBA CSR Resource. It returns the CSR as the response. It is also able to auto-submit the request. Refer to Resource - sbacsr.
Query
Code Block |
---|
$CA = "RDC.UX2013.COM\UX2013-RDC-CA"
$CALogin = "ux2013\Administrator"
$CAPassword = "Password1"
$Domain = "ux2013.com"
$Email = "Adrien@ux2013.com"
$Organization = "SONUSRIBBON"
$OU = "AUTOMAITON"
$City = "FREMONT"
$State = "CA"
$Country = "US"
$CsrTemplate = "WebServer"
$KeySize = 2048
##########
$BodyValue = "CA=$CA&CALogin=$CALogin&CAPassword=$CAPassword&Domain=$Domain&Email=$Email&Organization=$Organization&OU=$OU&City=$City&State=$State&Country=$Country&CsrTemplate=$CsrTemplate&KeySize=$KeySize"
$url = "https://134.56.226.215/rest/sbacsr?action=generatecsr"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps |
...
The action below starts the network daemons for the services indicated. Refer to Resource - sbaconfig.
Query
Code Block |
---|
$BodyValue = "serviceName=16"
$url = "https://134.56.226.215/rest/sbaconfig?action=enablesvc"
Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps |
...
The action below applies a security template to the node to prevent unauthorized changes from being made to the system. Refer to Resource - sbaconfig.
Query
Code Block |
---|
$BodyValue = "templateType=0&sbaInstallFilename=0"
$url = "https://134.56.226.215/rest/sbaconfig?action=applysectemplate"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps |
...
To confirm that all the SBA services are running properly, refer to Viewing the SBA Operational Status to check the status.
Code Block |
---|
$url = "https://134.56.226.215/rest/asmfactoryimage/1"
$Result = Invoke-RestMethod -Uri $url -Method GET -WebSession $ps |
...
Code Block |
---|
### 7. Generate and Import an SBA Certificate
$CA = "RDC.UX2013.COM\UX2013-RDC-CA"
$CALogin = "ux2013\Administrator"
$CAPassword = "Password1"
$Domain = "ux2013.com"
$Email = "Adrien@ux2013.com"
$Organization = "SONUSRIBBON"
$OU = "AUTOMAITON"
$City = "FREMONT"
$State = "CA"
$Country = "US"
$CsrTemplate = "WebServer"
$KeySize = 2048
### 10. Install the Latest Lync SBA Cumulative Update (CU)
$CUFilePath = "c:\CU.pkg"
###################################
#### Define some function Helper
###################################
|
Code Block |
---|
### Re-initialize the ASM with the correct ASM Image
function SearchImageDirectoryName {
Param($MyLyncVersion, $MyNodeUrl, $MyPs)
$url = "https://$MyNodeUrl/rest/asmfactoryimage"
$ImageCmd = Invoke-RestMethod -Uri $url -Method GET -WebSession $MyPs
if ((BasicHandler $ImageCmd) -ne 1) {
write-host "Failed on SearchImageDirectoryName: "(BasicHandler $ImageCmd)
return 0
}
[xml]$ImageCmdXml= $ImageCmd.Substring(5)
foreach ($image in $ImageCmdXml.root.asmfactoryimage_list.asmfactoryimage_pk.href) {
$url = $image
$ImageDetail = Invoke-RestMethod -Uri $url -Method GET -WebSession $MyPs
[xml]$ImageDetailXml= $ImageDetail.Substring(5)
if($ImageDetailXml.root.asmfactoryimage.Description.contains($MyLyncVersion)) { return $ImageDetailXml.root.asmfactoryimage.ImageDirectoryName}
}
return 0
}
|
Code Block |
---|
### Return the result of the request
Function BasicHandler {
Param($MyResult) |
Code Block |
---|
[xml]$XmlResult = $MyResult.Substring(5)
if($XmlResult.root.status.http_code.contains("200")) {
return 1
} else {
return "Error Code:<"+$XmlResult.root.status.app_status.app_status_entry.code+"> Param:<"+$XmlResult.root.status.app_status.app_status_entry.params+">"
}
}
### Return the result of the request
Function BasicHandlerCurl {
Param($MyResult)
$FiltredMyResult = ""
foreach ($line in $MyResult) {
if ($line.StartsWith("<")) {
$FiltredMyResult += $line
} elseif ($line.StartsWith(" ")) {
$FiltredMyResult += $line
}
}
[xml]$XmlResult = $FiltredMyResult
if($XmlResult.root.status.http_code.contains("200")) {
return 1
} else {
return "Error Code:<"+$XmlResult.root.status.app_status.app_status_entry.code+"> Param:<"+$XmlResult.root.status.app_status.app_status_entry.params+">"
}
} |
...
Code Block |
---|
### 3. Configuring the ASM IP Settings
$ActualStep = "3. Configuring the ASM IP Settings"
$BodyValue = "DHCPEnabled=$DHCPEnabled&ipv4Address=$ipv4Address&ipv4Netmask=$ipv4Netmask&ipv4Gateway=$ipv4Gateway&RemoteDesktopEnabled=$RemoteDesktopEnabled&DNSServer1=$DNSServer1&DNSServer2=$DNSServer2&AclEnable=$AclEnable"
$url = "https://$NodeUrl/rest/sbaconfig"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
### 4. Update SbcComms
### 5. Joining the ASM to a Domain
$ActualStep = "5. Joining the ASM to a Domain"
$BodyValue = "hostName=$hostName&domainName=$domainName&userName=$userName&userPassword=$userPassword"
$url = "https://$NodeUrl/rest/sbaconfig?action=joindomain"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
### 6. Deploying the SBA
$ActualStep = "6. Deploying the SBA"
$url = "https://$NodeUrl/rest/sbaconfig?action=deploy"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
$url = "https://$NodeUrl/rest/sbaconfig?action=startreplication"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
$url = "https://$NodeUrl/rest/sbaconfig?action=activatewithlync"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
### 7. Generate and Import an SBA Certificate
$ActualStep = "7. Generate and Import an SBA Certificate"
$BodyValue = "CA=$CA&CALogin=$CALogin&CAPassword=$CAPassword&Domain=$Domain&Email=$Email&Organization=$Organization&OU=$OU&City=$City&State=$State&Country=$Country&CsrTemplate=$CsrTemplate&KeySize=$KeySize"
$url = "https://$NodeUrl/rest/sbacsr?action=generatecsr"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
|
Code Block |
---|
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
### 8. Starting the SBA Services
$ActualStep = "8. Starting the SBA Services"
$BodyValue = "serviceName=16"
$url = "https://$NodeUrl/rest/sbaconfig?action=enablesvc"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
|
Code Block |
---|
### 9. Applying an SBA Security Template
$ActualStep = "9. Applying an SBA Security Template"
$BodyValue = "templateType=0&sbaInstallFilename=0"
$url = "https://$NodeUrl/rest/sbaconfig?action=applysectemplate"
$Result = Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps
if ((BasicHandler $Result) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
if ((LookCompletionStatus $NodeUrl $ps) -ne 1) {
write-host $ActualStep" Failed: "(BasicHandler $Result)
return 0
}
### 10. Install the Latest Lync SBA Cumulative Update |
...