SSH Copy OMSAdminConf File Write Action

Microsoft.Linux.Log.Monitoring.Copy.OMSAdminConf.WriteAction (WriteActionModuleType)

Write Copy OMSAdminConf File via SSH

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
InputTypeSystem.BaseData
OutputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
CopyOMSAdminConf WriteAction Microsoft.Unix.SSHCommand.WriteAction Default
CopyOMSAdminConfTemp WriteAction Microsoft.Unix.SFTPTransfer.SecureTransfer.WriteAction Default
CreateOMSAdminConfFile WriteAction Microsoft.Windows.PowerShellWriteAction Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
Hoststring$Config/Host$Host
Portstring$Config/Port$Port
UserNamestring$Config/UserName$User Name
Passwordstring$Config/Password$Password
TimeoutSecondsstring$Config/TimeoutSeconds$Timeout in Seconds

Source Code:

<WriteActionModuleType ID="Microsoft.Linux.Log.Monitoring.Copy.OMSAdminConf.WriteAction" Accessibility="Public">
<Configuration>
<xsd:element name="Host" type="xsd:string"/>
<xsd:element name="Port" type="xsd:string" minOccurs="0"/>
<xsd:element name="UserName" type="xsd:string"/>
<xsd:element name="Password" type="xsd:string"/>
<xsd:element name="TimeoutSeconds" type="xsd:string" minOccurs="0"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Host" ParameterType="string" Selector="$Config/Host$"/>
<OverrideableParameter ID="Port" ParameterType="string" Selector="$Config/Port$"/>
<OverrideableParameter ID="UserName" ParameterType="string" Selector="$Config/UserName$"/>
<OverrideableParameter ID="Password" ParameterType="string" Selector="$Config/Password$"/>
<OverrideableParameter ID="TimeoutSeconds" ParameterType="string" Selector="$Config/TimeoutSeconds$"/>
</OverrideableParameters>
<ModuleImplementation>
<Composite>
<MemberModules>
<WriteAction ID="CreateOMSAdminConfFile" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>CreateOMSAdminConfFile.ps1</ScriptName>
<ScriptBody><Script>
Param ([string]$Port, [string]$TargetSystem, [string]$TargetId)
$TempDir = [System.Environment]::ExpandEnvironmentVariables("%TEMP%")
$TargetDir = $TempDir + "\SCXCert\" +"$TargetSystem"
If(Test-Path $TargetDir)
{
Remove-item -Path $TargetDir -Force -Recurse
}
New-Item -ItemType Directory -Force -Path $TargetDir
$TargetFile = $TargetDir + "\omsadmin.conf"
$hostname = [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
$WORKSPACEID = "WORKSPACE_ID=scom`n"
$URL = "SCOM_ENDPOINT=https://" + $hostname + ":" + $Port+"`n"
$MONITORING_ID = "MONITORING_ID=$TargetId`n"
[IO.File]::WriteAllText($TargetFile, $WORKSPACEID)
[IO.File]::AppendAllText($TargetFile, $URL)
[IO.File]::AppendAllText($TargetFile, $MONITORING_ID)
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>TargetSystem</Name>
<Value>$Config/Host$</Value>
</Parameter>
<Parameter>
<Name>Port</Name>
<Value>8886</Value>
</Parameter>
<Parameter>
<Name>TargetId</Name>
<Value>$Target/Id$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</WriteAction>
<WriteAction ID="CopyOMSAdminConfTemp" TypeID="Unix!Microsoft.Unix.SFTPTransfer.SecureTransfer.WriteAction">
<Host>$Config/Host$</Host>
<Port>$Config/Port$</Port>
<UserName>$Config/UserName$</UserName>
<Password>$Config/Password$</Password>
<SourceFile>%Temp%\SCXCert\$Config/Host$\omsadmin.conf</SourceFile>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</WriteAction>
<WriteAction ID="CopyOMSAdminConf" TypeID="Unix!Microsoft.Unix.SSHCommand.WriteAction">
<Host>$Config/Host$</Host>
<Port>$Config/Port$</Port>
<UserName>$Config/UserName$</UserName>
<Password>$Config/Password$</Password>
<Command>cp /tmp/scx-@@user@@/omsadmin.conf /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf; /opt/microsoft/omsagent/bin/service_control restart scom</Command>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="CopyOMSAdminConf">
<Node ID="CopyOMSAdminConfTemp">
<Node ID="CreateOMSAdminConfFile"/>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.BaseData</OutputType>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>