Ich habe bereits in einigen anderen Artikeln Benutzerdefinierte Eigenschaften von vRealize Automation 6.x Entities für verschiedenste Dinge verwendet. Meist werden die Properties direkt beim Provisionieren der VM gesetzt. Es kann aber natürlich auch vorkommen, dass man nachträglich ein vRealize Automation Property hinzufügen oder verändern muss – Hierzu ist der VMware vRealize Orchestrator in meinen Augen das geeignetste Werkzeug.
Um Benutzerdefinierte Eigenschaften zu verwalten, bringt das vRealize Orchestrator Plug-In for vRealize Automation die Action addUpdatePropertyFromVirtualMachineEntity und den Workflow Create / update property on virtualMachine Entity mit. Da diese jedoch etwas kompliziert zu verwenden sind, habe ich einen Workflow zur vereinfachten Handhabung um den eigentlichen Workflow herum geschrieben.
Voraussetzung:
- vRealize Orchestrator Plug-In for vRealize Automation (Download)
Getestete Versionen:
- vRealize Automation 6.2.1
- vReallize Orchestartor 5.5.2.1 / 6.0.2
Workflow zum vRealize Automation Property setzen
Ich habe den Workflow angelegt mit der Hinsicht auf möglichst einfache Handhabe und die Tatsache, dass es in meinem Fall nur VMware vSphere VMs als Entities gibt. Daher ist der Input nur der vSphere VM Name, der Property Name und das Property Value.
Custom Properties Reference Guides:
- Custom Properties Reference vRealize Automation 6.2.5
- Referenz für benutzerdefinierte Eigenschaften vRealize Automation 7.1
Ich lese einfach die erste vRA Instanz aus der Konfiguration aus:
var host = Server.findAllForType( "vCAC:VCACHost","" )[0];
vRealize Automation Property Workflow – Presentation
Scriptable task – create Properties
Der Workflow ist grundsätzlich auf das setzen mehrerer Properties ausgelegt. In dieser Variante aber nur auf ein Property / Value Paar reduziert.
var properties = new Properties() ; properties.put( "name", Prop_Name ); properties.put( "value" , Prop_Value ); vmProperties.push( properties );
Scriptable task – get Property
In der Schleife wird dann ein Property nach dem anderen gesetzt – auch wenn in diesem Fall nur ein Property / Value Paar im Array vmProperties vorhanden ist.
propertyName = vmProperties[ counter ].get( "name" ); propertyValue = vmProperties[ counter ].get( "value" );
Download Workflow
VMware Developer Center Direct Download