[Bamboo Knowledge Base]
Linux system administration is outside the scope of Atlassian support. This page is provided for your information only.
On Linux/Solaris, the best practice is to install, configure and run each service (including Bamboo) as a dedicated user with only the permissions they require.
To install, configure and get Bamboo to start automatically on Linux/Solaris:
Create a bamboo user account which will be used to run Bamboo. For example, enter the following at a Linux console:
sudo useradd --create-home -c "Bamboo role account" bamboo
Create a directory into which Bamboo will be installed. For example:
sudo mkdir -p /opt/atlassian/bamboo sudo chown bamboo: /opt/atlassian/bamboo
Log in as the bamboo user to install Bamboo:
sudo su - bamboo
You need to extract Bamboo:
cd /opt/atlassian/bamboo tar zxvf /tmp/atlassian-bamboo-X.Y.tar.gz ln -s atlassian-bamboo-X.Y/ current
current/atlassian-bamboo/WEB-INF/classes/bamboo-init.properties
and set bamboo.home=/var/atlassian/application-data/bamboo (or any other directory of your choice, but not the same as Bamboo's installation directory)
Then back as root, create the file /etc/init.d/bamboo
(code shown below), which will be responsible for starting up bamboo after a reboot (or when manually invoked).
#!/bin/sh set -e ### BEGIN INIT INFO # Provides: bamboo # Required-Start: $local_fs $remote_fs $network $time # Required-Stop: $local_fs $remote_fs $network $time # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Atlassian Bamboo Server ### END INIT INFO # INIT Script ###################################### # Define some variables # Name of app ( bamboo, Confluence, etc ) APP=bamboo # Name of the user to run as USER=bamboo # Location of application's bin directory BASE=/opt/atlassian/bamboo/current case "$1" in # Start command start) echo "Starting $APP" /bin/su - $USER -c "export BAMBOO_HOME=${BAMBOO_HOME}; $BASE/bin/startup.sh &> /dev/null" ;; # Stop command stop) echo "Stopping $APP" /bin/su - $USER -c "$BASE/bin/shutdown.sh &> /dev/null" echo "$APP stopped successfully" ;; # Restart command restart) $0 stop sleep 5 $0 start ;; *) echo "Usage: /etc/init.d/$APP {start|restart|stop}" exit 1 ;; esac exit 0
Make the init script executable:
chmod \+x /etc/init.d/bamboo
For Debian-based systems:
update-rc.d bamboo defaults
The following commands will be executed to place symlinks in the run-level directories:
Adding system startup for /etc/init.d/bamboo ... /etc/rc0.d/K20bamboo -> ../init.d/bamboo /etc/rc1.d/K20bamboo -> ../init.d/bamboo /etc/rc6.d/K20bamboo -> ../init.d/bamboo /etc/rc2.d/S20bamboo -> ../init.d/bamboo /etc/rc3.d/S20bamboo -> ../init.d/bamboo /etc/rc4.d/S20bamboo -> ../init.d/bamboo /etc/rc5.d/S20bamboo -> ../init.d/bamboo
For RedHat-based systems:
the init.d script contains chkconfig settings
sudo /sbin/chkconfig --add bamboo