Third-party Deployment

2 minute readReferenceAutomation

CloudBees CD/RO simplified the process for using third-party tools for deployment by introducing Deploy and Undeploy options in pipeline task objects. When application and/or component versions are included in the task definition, the environment inventory, path to production, and deployment analytics data are updated when the task runs.

The CloudBees CD/RO third-party deployment feature allows you to execute deployments using your own deployment tools and still enjoy the benefits of CloudBees CD/RO application modeling. You can add your external deployment tool as a release or pipeline task.

Adding a third-party tool as a deployment or undeployment option.

  1. Navigate to the release or pipeline that you want to add a deployment task using a third-party tool.

  2. Select Add Task from the stage three-dots three-dots menu.

  3. Enter a task identifier in the New Task field, then click Select Task Type. The Task Type dialog displays.

  4. Select one of the following task types:

    • CI Job

    • Procedure

    • Command

    • Plugin

  5. Select Define.

  6. Select or enter the required details for the selected task type.

  7. Select Deploy task or Undeploy task.

  8. Select the application project.

  9. Select or add the application name.

    Third-party applications shown or created here are assigned the External application type.
  10. Select or add an environment name.

  11. Enter the application and artifact version.

  12. Select OK.

Example of Ansible third-party deployment

The information in this section contains an example of an Ansible deployment using a third-party tool.

Playbook prerequisites

  • Tomcat role installation

    ansible-galaxy install robertdebock.tomcat
  • Install dependencies

    ansible-galaxy install robertdebock.bootstrap ansible-galaxy install robertdebock.core_dependencies ansible-galaxy install robertdebock.java

Playbook

  • install-tomcat.yml

    --- - name: converge hosts: 10.30.231.251 gather_facts: yes vars: tomcat_version: 7 tomcat_version7: '{{ tomcat_version7 }}' tomcat_instances: - name: "tomcat-7" roles: - role: robertdebock.tomcat

Example of a pipeline task for deploying Tomcat using Ansible

task 'Deploy Tomcat', { actualParameter = [ 'ansiblePlaybook': '/tmp/install-tomcat.yml', // Update this path to point to the location of install-tomcat.yaml in your environment. 'config': 'your-ansible-plugin-configuration', 'resultProperty': '/myJob/ansibleOutput', 'variables': '{"tomcat_servicename":"tomcat-7", "tomcat_installdir":"tomcat-7"}', ] applicationName = 'Your-application-name' // The application will be created as an `external` application type if it does not already exist. applicationProjectName = 'Your-project-name' artifacts = '$[tomcat_artifact_name]' environmentName = 'Your-environment-name' environmentProjectName = 'Your-environment-project-name' subTaskType = 'DEPLOY' subpluginKey = 'EC-Ansible' subprocedure = 'Run Playbook' taskType = 'PLUGIN' }