Getting Started
Welcome! This quick-start guide will walk you through validating your local environment, creating your first VMware Aria automation project, and deploying it to your server.
Step 1: Check Prerequisites¶
Before you begin, ensure your workstation meets the following minimum requirements:
- Java: 17 - 24
- Node.js: 22
- Maven: 3.9+
To easily validate if your system meets these prerequisites, run the following health-check script in your terminal:
curl -o- https://raw.githubusercontent.com/vmware/build-tools-for-vmware-aria/main/health.sh | bash
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/vmware/build-tools-for-vmware-aria/main/health.ps1'))
Step 2: Configure Maven¶
You need to define your environment connection parameters in your local Maven configuration. Create or edit your settings.xml file located at:
- Linux / MacOS:
~/.m2/settings.xml - Windows:
C:\Users\<YourUsername>\.m2\settings.xml
Copy the configuration below that matches your target environment. Be sure to replace the placeholder values under the dev profile with your actual hostnames, credentials, and project/organization names.
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<profiles>
<profile>
<id>packaging</id>
<properties>
<keystoreGroupId>com.vmware.pscoe.build</keystoreGroupId>
<keystoreArtifactId>keystore.example</keystoreArtifactId>
<keystoreVersion>4.19.0</keystoreVersion>
<vroPrivateKeyPem>target/${keystoreArtifactId}-${keystoreVersion}/private_key.pem</vroPrivateKeyPem>
<vroCertificatePem>target/${keystoreArtifactId}-${keystoreVersion}/cert.pem</vroCertificatePem>
<vroKeyPass>VMware1!</vroKeyPass>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<vro.host>flt-auto01.corp.internal</vro.host>
<vro.auth>vra</vro.auth>
<vro.authHost>flt-auto01.corp.internal</vro.authHost>
<vro.authPort>443</vro.authPort>
<vro.port>443</vro.port>
<vro.username>configurationadmin</vro.username>
<vro.password>VMware1!VMware1!</vro.password>
<vrang.host>flt-auto01.corp.internal</vrang.host>
<vrang.auth.host>flt-auto01.corp.internal</vrang.auth.host>
<vrang.username>configurationadmin</vrang.username>
<vrang.password>VMware1!VMware1!</vrang.password>
<vrang.port>443</vrang.port>
<vrang.project.name>Development</vrang.project.name>
<vrang.org.name>vidm-l-01a</vrang.org.name>
<vrang.import.timeout>6</vrang.import.timeout>
<vrealize.ssl.ignore.hostname>true</vrealize.ssl.ignore.hostname>
<vrealize.ssl.ignore.certificate>true</vrealize.ssl.ignore.certificate>
<http.connection.timeout>10000000</http.connection.timeout>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>packaging</activeProfile>
</activeProfiles>
</settings>
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<profiles>
<profile>
<id>packaging</id>
<properties>
<keystoreGroupId>com.vmware.pscoe.build</keystoreGroupId>
<keystoreArtifactId>keystore.example</keystoreArtifactId>
<keystoreVersion>4.19.0</keystoreVersion>
<vroPrivateKeyPem>target/${keystoreArtifactId}-${keystoreVersion}/private_key.pem</vroPrivateKeyPem>
<vroCertificatePem>target/${keystoreArtifactId}-${keystoreVersion}/cert.pem</vroCertificatePem>
<vroKeyPass>VMware1!</vroKeyPass>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<vro.host>flt-auto01.corp.internal</vro.host>
<vro.auth>vra</vro.auth>
<vro.authHost>flt-auto01.corp.internal</vro.authHost>
<vro.authPort>443</vro.authPort>
<vro.port>443</vro.port>
<vro.username>admin@System</vro.username>
<vro.password>VMware1!VMware1!</vro.password>
<vrang.host>flt-auto01.corp.internal</vrang.host>
<vrang.auth.host>flt-auto01.corp.internal</vrang.auth.host>
<vrang.username>admin@System</vrang.username>
<vrang.password>VMware1!VMware1!</vrang.password>
<vrang.port>443</vrang.port>
<vrang.project.name>Development</vrang.project.name>
<vrang.org.name>vm-apps</vrang.org.name>
<vrang.import.timeout>6</vrang.import.timeout>
<vrealize.ssl.ignore.hostname>true</vrealize.ssl.ignore.hostname>
<vrealize.ssl.ignore.certificate>true</vrealize.ssl.ignore.certificate>
<http.connection.timeout>10000000</http.connection.timeout>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>packaging</activeProfile>
</activeProfiles>
</settings>
VCF 9 Authentication
For VCF 9, you must provide your username in the username@domain format. The domain may be the same as the Organization name (if authenticating via an organization admin) or different (e.g., admin@System if authenticating as a provider admin on behalf of an organization).
Enterprise Repositories
The configurations above assume direct access to Maven Central. If your organization uses a mirror repository (like Artifactory or Nexus), you will need additional configurations. Refer to the settings.xml example in the Minimal Infrastructure Template.
Step 3: Create a New Project¶
To scaffold your first project, run the following Maven Archetype command. This example creates a mixed project (containing both JavaScript actions and XML content):
mvn archetype:generate \
-DinteractiveMode=false \
-DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes \
-DarchetypeArtifactId=package-mixed-archetype \
-DarchetypeVersion= \
-DgroupId=com.company.bu \
-DartifactId=hello-world \
-DworkflowsPath=hello-world/workflows
This generates a project structure with two submodules:
1. actions: Handles Orchestrator Actions as local JavaScript files.
2. workflows (XML-based): Handles other Orchestrator content like Workflows and Configuration Elements.
Step 4: Deploy Content (Push)¶
To deploy your newly created project to your target environment, navigate to the root of your project directory and execute:
mvn clean package vrealize:push -Pdev
Step 5: Export Content (Pull)¶
When you make changes directly in the Orchestrator UI, you can pull those changes back into your local project.
Pulling Actions¶
To export Actions as JavaScript files:
- Navigate to Orchestrator UI -> Assets -> Packages.
- Open the
com.bu.hello-world.actions-1.0.0-SNAPSHOTpackage. - Add your modified Action(s) to the package and click Save.
- Run the following command locally:
mvn vro:pull -Pdev -pl actions
Pulling Other Content (Workflows, Configs, etc.)¶
To export Workflows, Configuration Elements, Resource Elements, and Policy Templates as XML files:
- Navigate to Orchestrator UI -> Assets -> Packages.
- Open the
com.bu.hello-world-1.0.0-SNAPSHOTpackage. - Add the content to the package and click Save.
- Run the following command locally:
(Note: Append
mvn vro:pull -Pdev -pl workflows-Dvro.packageExportConfigurationAttributeValues=trueto the command if you also want to pull Configuration Element attribute values).
Step 6: Create an Installation Bundle¶
You can package your project, its dependencies, and a deployment script into a single distributable bundle.
From the project root, run:
mvn clean package -Pbundle-with-installer
This generates a .zip file under /workflows/target/com.bu.hello-world-1.0.0-SNAPSHOT-local-bundle.zip.
Deploying from the Bundle¶
- Extract the
.zipfile. - Navigate into the extracted
com.bu.hello-world-1.0.0-SNAPSHOT-local-bundlefolder. -
Execute the installer script (you will be prompted to provide required data):
./bin/installerbin\installer.bat
Unattended Installation¶
To bypass the manual prompts, you can create an environment.properties file inside the /bin folder:
http_connection_timeout=360
http_socket_timeout=360
ignore_ssl_certificate_verification=true
ignore_ssl_host_verification=true
skip_vro_import_old_versions=true
vrang_auth_with_refresh_token=false
vrang_host=flt-auto01.corp.internal
vrang_password=VMware1!VMware1!
vrang_port=443
vrang_username=configurationadmin
vrealize_ssh_timeout=300
vro_delete_old_versions=false
vro_embedded=true
vro_enable_backup=false
vro_force_import_latest_versions=false
vro_import_configuration_attribute_values=false
vro_import_configuration_secure_attribute_values=false
vro_import_old_versions=false
vro_import_packages=true
vro_run_workflow=false
http_connection_timeout=360
http_socket_timeout=360
ignore_ssl_certificate_verification=true
ignore_ssl_host_verification=true
skip_vro_import_old_versions=true
vrang_auth_with_refresh_token=false
vrang_host=flt-auto01.corp.internal
vrang_password=VMware1!VMware1!
vrang_port=443
vrang_username=admin@System
vrealize_ssh_timeout=300
vro_delete_old_versions=false
vro_embedded=true
vro_enable_backup=false
vro_force_import_latest_versions=false
vro_import_configuration_attribute_values=false
vro_import_configuration_secure_attribute_values=false
vro_import_old_versions=false
vro_import_packages=true
vro_run_workflow=false
Then, pass the file to the script:
./bin/installer ./bin/environment.properties
bin\installer.bat bin\environment.properties
For more advanced options, refer to the Installer Documentation.