ServerWithAgent

You can simplify the DCM agent installation on virtual machines that are launched from Blueprints by using the dcm.nodes.ServerWithAgent node type instead of the dcm.nodes.Server node type.

The dcm.nodes.ServerWithAgent node type provides the same capabilities as the dcm.nodes.Server node type with the additional function of installing the DCM Agent.
Using the dcm.nodes.ServerWithAgent node type eliminates the need to code the DCM Agent installation bash commands in your blueprint template files.
Not only does this reduce the number of statements required in your templates when coding the servers, it also simplifies the management of installing the DCM Agents.

Attention

The Dell Cloud Manager agent must be installed and running on the servers in the stacks.

If the cloud provider supports passing user data scripts to the launched server to be run during system boot, and the machine image used to launch the server has been configured to accept and run scripts, then you can install the Dell Cloud Manager agent on the servers in the stack using the blueprint template startupScript statement or the ServerWithAgent server type. If not, you will need to pre-install the Dell Cloud Manager agents on machine images and specify those machine images in your blueprint templates.

Refer to the Support Matrix in this document for reference.

Note

To use the ServerWithAgent function the Launch with Agent function needs to be configured on the Dell Cloud Manager Server.
Refer to the Dell Cloud Manager Administrator’s Guide Launch with Agent for details on how to configure this function.

The ServerWithAgent node is defined with a section name, a type and properties.

section name

Example: web_vm:

type

type: dcm.nodes.ServerWithAgent

properties

The following node properties are supported when defining a ServerWithAgent node in a blueprint template:

  • name - server name
  • cloud - cloud where the server will be created in
  • cloudAccountID - cloud account of the cloud
  • region - region in the cloud where the server will be created in
  • zone - data center in the cloud region where the server will be created in
  • platform - operating system platform (supported values: CENT_OS, DEBIAN, FEDORA_CORE, FREE_BSD, OPEN_BSD, RHEL, SOLARIS, SUSE, UBUNTU, UNKNOWN, UNIX, WINDOWS)
  • architecture - I32 OR I64
  • product - cloud provider product type/size
  • serverProductID - cloud provider product identifier
  • image - machine image specified by the cloud provider identifier

Note

The startupScript property cannot be used with the ServerWithAgent node.

Example

Here is an example of defining a server using the dcm.node.ServerWithAgent node type which will install the DCM Agent without having to code the DCM Agent installation bash commands in a startupScript.

web_vm:
  type: dcm.nodes.ServerWithAgent                                            # This is a Server node. DCM will install the DCM agent on it.
  properties:
    name: "apache-server"
    cloud: { get_input: [account_region_zone_selector, cloud] }              # Retrieve cloud from the AccountRegionSelector
    cloudAccountId: { get_input: [account_region_zone_selector, accountId] } # Retrieve the cloud account ID from the AccountRegionSelector
    region: { get_input: [account_region_zone_selector, region] }            # Retrieve region from the AccountRegionSelector
    zone: { get_input: [account_region_zone_selector, zone] }                # Retrieve zone from the AccountRegionSelector
    platform: { get_input: [product_selector, platform] }                    # Retrieve platform from the Product selector
    architecture: { get_input: [product_selector, architecture] }            # Retrieve architecture from the Product selector
    product: { get_input: [product_selector, product] }                      # Retrieve product from the Product selector
    image: { get_input: [product_selector, image] }                          # Retrieve machine from the Product selector
    serverProductId: { get_input: [product_selector, serverProductId] }      # Retrieve server product id from the Product selector

Note

In the example above get_input is an internal function. Refer to Internal functions for more details.