Provisioning through Deploy

Deploy’s provisioning feature allows you to provide fully automated, on-demand access to your public, private, or hybrid cloud-based environments. With provisioning, you can:

  • Create an environment in a single action by provisioning infrastructure, installing middleware, and configuring infrastructure and middleware components
  • Track and audit environments that are created through Deploy
  • Deprovision environments created through Deploy
  • Extend Deploy to create environments using technologies not supported by default

Provisioning packages

A provisioning package is a collection of:

  • Provisionables that contain settings that are needed to provision the environment
  • Provisioners that execute actions in the environment after it is set up
  • Templates that create configuration items (CIs) in Deploy during the provisioning process

For example, a provisioning package could contain:

  • A provisionable that creates an Amazon Web Services EC2 instance (aws.ec2.InstanceSpec)
  • A Puppet provisioner that installs Apache HTTP Server on the instance (puppet.provisioner.Manifest)
  • Templates that create an SSH host CI (template.overthere.SshHost), a Tomcat server CI (template.tomcat.Server), and a Tomcat virtual host CI (template.tomcat.VirtualHost)

The process of provisioning a cloud-based environment through Deploy is very similar to the process of deploying an application. You start by creating an application (udm.Application) that defines the environment that you want to provision. You then create provisioning packages (udm.ProvisioningPackage) that represent specific versions of the environment definition.


You can also define providers, which are cloud technologies such as Amazon Web Services EC2 (aws.ec2.Cloud). A provider CI contains required connection information, such as an access key ID and a secret access key. You define provider CIs under Infrastructure in the Deploy Repository. After you define a provider, you add it to an environment (udm.Environment).


After you have created packages and added providers to an environment, you start provisioning the same way you would start a deployment. When you map a provisioning package to an environment, Deploy creates provisioneds based on the provisionables in the package. These are the actual properties, manifests, scripts, and so on that Deploy will use to provision the environment.

Supported provisioning technologies

Support for provisioning technologies is provided through plugins. To see the provisioning plugins that are available, refer to the Plugin reference documentation for your version of Deploy.

Get started with provisioning

To get started with Deploy provisioning:

  1. Create a provisioning package.
  2. Create a provider and add it to an environment.
  3. Provision the environment.
  4. Deploy to the environment.
  5. Deprovision the environment.

Limitations and known issues

  • It may take one minute or longer to generate a provisioning plan preview if the plan includes many provisioneds.
  • When creating an aws.ec2.InstanceSpec CI, you can only enter an AWS security group that already exists. To use a new security group, you must first create it manually in AWS.