VMware Cloud Director Site-Name ändern

Ein kleines Script, mit dem du einfach den Site-Name, welcher im Tenant-Portal innerhalb des OrgVDC angezeigt wird, ändern kannst.

Seit VMware Cloud Director 10 wird im Tenant-Portal auch der entsprechende Sitename angezeigt. Dieser steht bei vielen aus Migrationen auf der IP, was nicht schön aussieht und vielleicht gar nicht zum Kunden promoted werden soll.

Nach der Migration haben wir uns schnell durch die API gehangelt und auch einen entsprechenden Endpoint gefunden. Mit ein paar Zeilen Powershell lässt sich da ganze schnell und unkompliziert anpassen:

#Variable
$url = 'https://vclouddirector.topleveldomain.com'
$user = 'administrator@System:xxxxxx'
$SiteName = 'ThisIsSiteX'
 
#Get Login
$urn = '/api/sessions'
$method = 'Post'
$user = $user | ConvertTo-Base64
$headers = @{
    'Accept' = 'application/*+xml;version=34.0'
    'Authorization' = 'Basic ' + $user
}
$result = Invoke-WebRequest -Uri ($url+$urn) -Method $method -Headers $headers
$bearer = $result.Headers.'X-VMWARE-VCLOUD-ACCESS-TOKEN'
  
#Get Site Name
$urn = '/api/site/associations/localAssociationData'
$method = 'Get'
$headers = @{
    'Accept' = 'application/*+xml;version=34.0;multisite=global'
    'Authorization' = 'Bearer ' + $bearer
}
$result = Invoke-WebRequest -Uri ($url+$urn) -Method $method -Headers $headers
  
#Set Site Name
$uri = ([xml]$result).SiteAssociationMember.href
$method = 'Put'
$headers = @{
    'Accept' = 'application/*+xml;version=34.0;multisite=global'
    'Authorization' = 'Bearer ' + $bearer
    'Content-Type' = 'application/*+xml'
}
  
$body = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SiteAssociationMember xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5" xmlns:ns9="http://www.vmware.com/vcloud/versions" href="%HREF%" type="application/vnd.vmware.admin.siteAssociation+xml">
    <Link rel="edit" href="%HREF%" type="application/vnd.vmware.admin.siteAssociation+xml"/>
    <Link rel="edit" href="%HREF%" type="application/vnd.vmware.admin.siteAssociation+json"/>
    <Link rel="remove" href="%HREF%" type="application/vnd.vmware.admin.siteAssociation+xml"/>
    <Link rel="remove" href="%HREF%" type="application/vnd.vmware.admin.siteAssociation+json"/>
    <Link rel="up" href="%RestEndpoint%/api/site/associations" type="application/vnd.vmware.admin.siteAssociations+xml"/>
    <Link rel="up" href="%RestEndpoint%/api/site/associations" type="application/vnd.vmware.admin.siteAssociations+json"/>
    <RestEndpoint>%RestEndpoint%</RestEndpoint>
    <BaseUiEndpoint>%BaseUiEndpoint%</BaseUiEndpoint>
    <SiteId>%SiteId%</SiteId>
    <SiteName>cloud.example.com</SiteName>
</SiteAssociationMember>'
  
$body = $body -replace '%HREF%', ([xml]$result).SiteAssociationMember.href
$body = $body -replace '%RestEndpoint%', ([xml]$result).SiteAssociationMember.RestEndpoint
$body = $body -replace '%BaseUiEndpoint%', ([xml]$result).SiteAssociationMember.BaseUiEndpoint
$body = $body -replace '%SiteId%', ([xml]$result).SiteAssociationMember.SiteId
$body = $body -replace 'cloud.example.com', $SiteName
  
$result = Invoke-WebRequest -Uri $uri -Method $method -Headers $headers -Body $body

Bin aktuell noch am Aufbauen eines öffentlichen Git-Repos, mit allerlei Funktionen z.B. für den ESXi Host, der eine Art EsxCli Wrapper darstellen soll. Es kommen immer mehr Sachen dazu, schaut mal vorbei.

https://github.com/dholzer/PowerShell/tree/main/VMware/vSphere

Leave a Reply

Your email address will not be published. Required fields are marked *