Ansible is an agentless Infrastructure configuration management solution that automates cloud provisioning and infrastructure level deployments. Ansible consists of Galaxy Roles, which are reusable playbooks that perform different infrastructure operations. Galaxy Roles contain Tasks, which are the individual commands executed, performing operations such as installing a package or creating a directory. Playbooks are written in programming language called YAML, while Modules (a more complicated type of Task) can be written in any language.
When starting DeployHub, the most popular and most used Modules are downloaded from the Ansible website at https://galaxy.ansible.com and placed as Custom Actions into Components.
If you have used a Galaxy Role as a Component in a previous deployment, a new Version of the Galaxy Role will be created, if upon start-up DeployHub determines the Galaxy Role has updates.
In Ansible is an Inventory which lists endpoints that Ansible will execute Modules against. This is a static text file containing the names of hosts on the network. In DeployHub, an Inventory is created whenever an Application is associated with an Environment. The information is gathered from each DeployHub Endpoint within the Environment and placed into the Inventory prior to execution of each Component within the Application.
Adding Components Containing Ansible Modules to an Application
Within DeployHub, click on the Deploy menu, click on the Components tab, then click on the plus sign for the Infrastructure Domain within the tree structure. This contains all Categories containing Components that have a Custom Actions, each of which contains an Ansible Module. After selecting the Applications tab and opening a Domain, click on the Assigned Components tab in order to see the workflow area containing the Components for a given Application. On the far right are all available Component Categories, each of which contains one or more Components. Click on the plus sign for a Category in order to see all Components listed within it. Drag and drop the desired Component onto the workflow area and make sure it connects to either the Start icon or to another Component.
Right click on the Component and select the ‘Go to this Component’ item in the resulting drop-down list. The General tab shows the Custom Action field in the Component. This allows an Ansible Module to be run from anywhere within a DeployHub deployment. Notice that the Action is given the same name as the Component, with a suffix of ‘_action’.
Click on the Custom Action in order to go to the Workflow tab in the Actions tab. Notice that the Action appears in the Workflow, and allows the entry of values into variables If these need to be changed at any time, right click on the Action in the Workflow and select ‘View Details’ from the resulting dropdown list:
Click OK, and go to the Procedure by right clicking on the Module in the Workflow and selecting ‘Goto this Procedure’ in the resulting dropdown list. The Procedure for the Custom Action will be shown, which the user can change if necessary:
See the Chapter on Actions, Functions, and Procedures for more information on how to customize existing Actions.