How to: Install Bamboo add-ons without using the UI

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

In some scenarios like when using automation tools, it might be required to install add-ons to Bamboo without using the UI. 

Environment

Any Bamboo release

Solution

Manual install - requires downtime

To install a plugin in Bamboo without using the UI you just need to follow the steps below:

  1. Shut down Bamboo.
  2. Copy the plugin .jar file into:
    1. Bamboo 7 and earlier: <bamboo-home>/plugins
    2. Bamboo 8 and later: <bamboo-home>/shared/plugins (or the equivalent shared folder if running on a cluster)
  3. Make sure to set the file ownership and permissions to match the Bamboo service user
  4. Start-up Bamboo.

Some Apps are provided in OSGi Bundle Repository (OBR) file format due to dependencies. If that's your case, please unzip the ".obr" file – you may have to rename its extension to ".zip" first – and copy any resulting .jar files to the Bamboo plugins folder, including the ones located in the OBR's /dependencies folder

Semi-automated via a Script - no downtime

This solution will require you to copy the .jar or .obr file to the Server or any host that can reach the Bamboo Server and run a script that will push the App:

  1. Download the .jar or .obr file to a temporary location
  2. Create and run the following script. You will have to modify the URL, credentials and the APP_FILE_PATH for it to work:
    #!/bin/bash
    #
    # Install an App in Bamboo via a script
    # This script requires curl and jq to work
    #
    BAMBOO_URL=https://bamboo.mydomain.net
    BAMBOO_CONTEXT_PATH=/
    BAMBOO_BASE_URL=$BAMBOO_URL$BAMBOO_CONTEXT_PATH
    ADMIN_USER=admin
    ADMIN_PASS=adminpass
    
    # It can also be an .obr file
    APP_FILE_PATH=./plugin-file-to-be-installed.jar
    
    UPM_TOKEN=$(curl -k -I --user $ADMIN_USER:$ADMIN_PASS -H 'Accept: application/vnd.atl.plugins.installed+json' "${BAMBOO_BASE_URL}rest/plugins/1.0/?os_authType=basic" 2>/dev/null | grep 'upm-token' | cut -d " " -f 2 | tr -d '\r')
    
    curl --user ${ADMIN_USER}:${ADMIN_PASS} -k -H 'Accept: application/json' "${BAMBOO_BASE_URL}rest/plugins/1.0/?token=${UPM_TOKEN}" --compressed -F plugin=@${APP_FILE_PATH} 2>/dev/null | jq -r


 For those apps that require a license, you will have to manually insert the license using the Bamboo UI.

Last modified on Jan 13, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.