Skip to content

Tower Integration

The tower plugin adds the ability to register a machine with AWX / Tower, delete a machine from AWX / Tower, and invoke job templates against a machine.

The plugin provides stages and tasks to help facilitate these actions.

The plugin is a RackN license plugin and your DRP license will need to have the tower plugin enabled.

Setup

To use this plugin, load the plugin_provider into the DRP endpoint. Once loaded, create a plugin with the tower/url, tower/login, and tower/password parameters. These will be used to connect to the AWX / Tower system.

Operations

There are three operations that can be done through the stages/tasks. These can be sequenced by workflows to have the desired staging.

tower-register

The tower-register stage registers the host with AWX / Tower. The machine will need the required tower/inventory parameter. This parameter defines the inventory the host should be created in.

Additionally, the tower/group parameter can be added to place the host into the inventory sub-group.

As part of the registeration, additional ssh-keys can be put in place to allow AWX / Tower to access the system. The following parameters enable these keys:

  • tower/ssh-keys - A map of keys to add to the system.
  • tower/ssh-keys-path - The file to put the keys in.
  • tower/ssh-keys-path-userid - The userid to use for the ssh key file.
  • tower/ssh-keys-path-groupid - The groupid to use for the ssh key file.

tower-delete

The tower-delete stage deletes the host from AWX / Tower.

tower-invoke

The tower-invoke stage runs a job template on the host from AWX / Tower.

The following parameters can be specifed to alter the behavior.

  • tower/job-template - Required string parameter that specifies the job template to execute.
  • tower/job-timeout - Numeric parameter that specifies the number of seconds to wait for the job to complete.
  • tower/extra-var - A Map of values to add to the machine during the job execution.

The task will block until the job is complete, errors, or times out. All the results are reflected into the job log for that task.