Provision a cloud environment
This command provisions an instance of an application blueprint and creates an application environment based on that blueprint.
Request
PUT https://{hostname}:{port}
/cli/environment/provisionEnvironment
Accept: {contentType}
Parameter | Type | Required | Description |
---|---|---|---|
Accept |
|
true |
This command takes a JSON request string or file. Use the following template for the request:
{
"application": "Application name or ID (required if you
are specifying the blueprint by name",
"baseResource": "Path to the resource node to create
this environment in",
"blueprint": "Blueprint name or ID",
"description": "Description (optional)",
"name": "Environment name",
"nodeProperties": {"Path to the resource node, such as
/path/to/resource/node": {"Name of node property": "Value
or node property"}}
}
Example JSON requests
How you structure the JSON request depends on whether you assign the virtual nodes to a cloud group or an environment profile. For more information on cloud groups and environment profiles, see the documentation for your cloud system.
The following example creates an environment that is named
CloudEnv1
from a
blueprint that is named My application
. In this case, the
cloud_group
property is at the root of the JSON string, which specifies
that the nodes will receive IP addresses from the same cloud group. {
"name": "CloudEnv1",
"application": "My application",
"baseResource": "/environments",
"blueprint": "Blueprint 1",
"description": "New cloud environment from blueprint 1",
"lockSnapshots": "false",
"requireApprovals": "false",
"cloud_group": "2",
"nodeProperties": {
"/Deploy Agent/os_part": {
"multiplicity": "1",
"numvcpus": "1",
"memsize": "1024",
"password": "password",
"password_0": "password"
}
}
}
You can also specify IP addresses for the nodes individually. In this case, you specify an
environment profile to use for the request and then a cloud group and IP group for each
node. The following example has two nodes, and each uses a different cloud group and IP
group.
{
"name": "CloudEnv2",
"application": "My application",
"baseResource": "/environments",
"blueprint": "Blueprint 1",
"description": "New cloud environment from blueprint 1",
"lockSnapshots": "false",
"requireApprovals": "false",
"environment_profile": "1",
"nodeProperties": {
"/Deploy Agent/os_part": {
"cloud_group": "1",
"ip_group": "1",
"multiplicity": "1",
"numvcpus": "1",
"memsize": "1024",
"password": "password",
"password_0": "password"
},
"/Deploy Agent/os_part0": {
"cloud_group": "2",
"ip_group": "2",
"multiplicity": "1",
"numvcpus": "1",
"memsize": "1024",
"password": "password",
"password_0": "password"
}
}
}
Note: You must specify cloud groups, IP groups, and
environment profiles by ID, not by name. In most cases, to get the
ID, open the cloud system console, open the group or profile, and
find the ID in the URL in your web browser. In other cases, the ID
is shown on the cloud system console.
To specify parameters on script packages on the nodes, add the information to the
nodeProperties
array. The following example assumes a script package
named iwd_registration
with a parameter named
cloud_hostname
:{
"name": "CloudEnv3",
"application": "My application",
"baseResource": "/environments",
"blueprint": "Blueprint 1",
"description": "New cloud environment from blueprint 1",
"lockSnapshots": "false",
"requireApprovals": "false",
"cloud_group": "2",
"nodeProperties": {
"/Deploy Agent/os_part": {
"multiplicity": "1",
"numvcpus": "1",
"memsize": "1024",
"password": "password",
"password_0": "password",
"iwd_registration/cloud_hostname": "cloudserver.example.org"
}
}
}
Example response
{
"id": "d84f5683-b05f-4e8b-afdf-f28a38b0fece",
"securityResourceId": "2eb5db02-b07e-4010-a0cf-3b84509d0ca4",
"name": "CloudEnv1",
"description": "New cloud environment",
"color": "#ffffff",
"requireApprovals": false,
"lockSnapshots": false,
"calendarId": "7aac87db-3984-4cde-98be-a935fd38bdb0",
"active": true,
"cleanupDaysToKeep": 0,
"cleanupCountToKeep": 0,
"conditions": [
]
}
Related CLI command: provisionEnvironment.