I decided to document my attempt at slaying the Atlassian “Dragon” in Atlassian’s Here Be Dragons challenge. Atlassian is a software company, that makes bug-tracking, collaboration, and software management company with products aimed at software development teams, specifically those using agile methodologies. Since they are near the top of the list of companies I will apply for in the next few months I thought I should familiarize myself with their product line as well. I documented everything I did in case anyone wants to follow in my footsteps. I set up a Linux virtual machine using Oracle’s VirtualBox platform which runs on Windows, Linux, and OSX, and allows anyone to follow along if they like! Warning: this is a fairly long article.
The quest begins with:
Beware, all ye who enter, for here be dragons! This is the starting point for the Atlassian Dragon Quest.
It involves setting up Atlassian’s main set of products:
- JIRA for bug tracking.
- GreenHopper for agile project management.
- Confluence, the enterprise wiki.
- FishEye to open up your source repository.
- Crucible for code reviews.
- Bamboo for continuous integration.
- Atlassian Gadgets.
Atlassian allows setup of their products on most operating systems, and supports many different databases for the back-end persistent data management. Since they allow complete setup on Linux, I choose that route mostly to force me out of my Windows comfort zone. I created a VirtualBox virtual machine running Mint Linux 11. It took me longer than Atlassian’s expected 4 hour completion time since I also documented everything I did. Here was my rolling documentation over the whole process:
To begin virtual machine (VM) setup I have downloaded the latest version of VirtualBox (version 4.0.12 at the time of writing this) and have downloaded a distribution of Linux I had recommended to me by a friend last year called Linux Mint 11 (I downloaded the the 32-bit DVD ISO file). Mint Linux is a derivation of Ubuntu Linux that includes several non-open source codecs, something Ubuntu does not like to include by default due to its “open source only” ideology. I’m all for open-source, but that’s a topic for a different article.
Mint Linux VM Installation:
I have officially begun! I have tweeted my status and am installing the Mint VM on VirtualBox. Atlassian says I’m going to need ~2GB of ram on the VM to run everything so I’ll setup the VM with their recommended setup.
VirtualBox settings for anyone following in my footsteps:
- New (button)
- Name your virtual machine (named mine MintLinux11), operating system: Linux, version: Ubuntu
- Memory: 2048 MB
- Create New Disk (start-up disk checked)
- VHD file type since it is compatible with VirtualBox and I believe several other virtualization software platforms
- Dynamically Allocated
- Allocating 10GB, but I don’t think it’ll go much above 5
- Create VM
On the main VirtualBox screen:
- Select VM and select Settings (button)
- In the Settings Menu, select the Storage item (1)
- Under the storage tree mount the MintLinux11 ISO downloaded from Mint Linux’s website (press the disc icon with the + sign (2)). Here’s a screenshot with items circled:
- Press OK, then Start (button) the new virtual machine
Linux will start in an evaluation mode, but we want to completely install it. Double click the “Install Linux Mint” disc icon on the desktop. Installation is as straight forward as possible (next next next next finish). Make sure to select the “Erase Disc and Install Mint Linux” option–no worries it only sets up the 10GB virtual hard disk setup earlier. The VM installation process will take roughly 10-20 minutes depending on your computer’s capabilities.
When installation is complete, Mint will prompt you to restart, click restart. After restarting, you will need to unmount the ISO image you installed earlier. In VirtualBox menu bar, select: Devices > CD/DVD Devices > IDE Controller (IDE Primary Master) > Remove Disc from Virtual Drive. Select enter to complete the restart of the virtual machine if prompted to do so. If you end up back at Mint Linux’s login screen, you’re ready to go!
The Virtual Machine is setup and installed, setting up the desktop environment is the next step: VirtualBox guest additions first. Guest additions provide a more streamlined integration between your computer’s regular operating system (known as the “Host” operating system) and the virtual machine operating system (known as the “Guest” operating system).
In the VirtualBox menu, select Devices > Install Guest Additions… Press Ok on the autorun prompt, then Run. Enter the password you used when setting up the virtual machine, let the guest additions install. Perform a quick reboot by going to Mint’s Menu > Quit > Restart.
Once restarted, your virtual machine should now resize the desktop whenever you reszie the virtual machine window! Neat. Guest additions also provide better mouse support, graphics support and more. Read here if curious.
Last thing to do is make sure all of your operating system packages are up to date. Right click your virtual machine’s desktop, and click “Open in Terminal”. Type sudo apt-get update, then press enter and type your password. After the update, type sudo apt-get upgrade, and enter Y when prompted to do so this will upgrade all system packages making sure your operating system is fresh and ready to go! This last will take ~15 minutes.
Java and PostgreSQL:
Java: Done. Ok, using Mint Linux is sort of cheating since Java comes pre-installed. Verify the installed version of Java is compatible with JIRA just to be safe by opening a terminal (right click desktop > Open in Terminal, remember?) and type java -version.
PostgreSQL: This is a tid trickier than the previous step. We’ll install PostgreSQL and pgAdmin3, the database and management tools that the Atlassian instructions have us use. Open the terminal and type sudo apt-get install postgresql postgresql-client-8.4 postgresql-client-common pgadmin3 and press Y and type enter when prompted to do so. After installation completes (~3 minutes) you’ll need to setup the postgres user login info. First type sudo passwd -d postgres to reset the postgres password, then type sudo passwd postgres and set the postgres system user’s password to password. Set the postgres database password by typing sudo su postgres -c psql template1 and enter the SQL command ALTER USER postgres WITH PASSWORD ‘password’; to set the database login password, then type \q to quit SQL entry mode. Last we need to set the database to allow password authentication by editing it’s pg_hba.conf file. Type sudo gedit /etc/postgresql/8.4/main/pg_hba.conf, scroll to the bottom and change the last lines to have everything use password authentication. Changes in bold below (change “ident” to “md5″):
# Database administrative login by UNIX sockets local all postgres md5 # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Almost done! Restarting the database for the authentication changes to take affect. Type: sudo /etc/init.d/postgresql restart
Lastly, verify the setup by opening pgAdmin3, the PostgreSQL database management software. Type pgadmin3 & and press enter in the terminal. Click the plug button to connect to the database installation, enter information as shown here:
When finished press Ok.
Everything from here is much more straight forward since this is really where the Atlassian guides have explicit instructions.
Setup database login role and database:
Expand Server Groups > Servers > pgdb. Follow the instructions on Dragons Stage 1.
At the time of writing this, JIRA 4.4 is out so I will be installing that according to Atlassian’s Dragons Stage 1 instructions. Carrying on, I have downloaded JIRA from the download site. When downloaded you’ll receive a file called atlassian-jira-X.X-x32.bin (make sure to download the 32-bit version, X-X is the version number you downloaded). Right-click the folder and open the folder in terminal. We need to allow this file to be executed so enter sudo chmod 755 *, then type sudo ./atlassian-jira-X.X-x32.bin (where X-X is the version of JIRA you downloaded). Install JIRA with all defaults.
Navigate to http://localhost:8080/ (the default JIRA installation location), and follow the JIRA setup instructions very closely! On the computer name step, select the name of the VM. This can be found by typing cat /etc/hostname in the terminal, and make sure to keep it in mind since you use it in nearly every product setup step. Also, you will need to create an Atlassian account (if you do not already have one) to generate evaluation keys for each of the products you will setup during the Here Be Dragons challenge.
Setup project and create JIRA database:
Continuing on I’ve setup the use groups, created the project, and added the initial issue!
Extremely straight forward setup! Finished the instructions in ~ an hour. I setup Greenhopper and have created the extra issues. I even created a SCRUM issue. I’ll have to look into what exactly the SCRUM methodology is another time though.
3.5.7? I wanted to try the new Confluence 4.0, but I guess I’ll have to wait for now. Onward! I begin with the Confluence instructions.
Here, I didn’t finish the night I meant to, and left for a brief vacation before sitting down to finish. 😉
Finally finished. It only took 14 days. 😉 Again everything was very straight forward.
FishEye and Crucible setup:
The first step says to get Mercurial and Python setup. Mint 11 has Python 2.7.1 installed, but Mercurial is not. Unfortunately the python headers and setup tools are needed to build things, and are not installed by default. This can easily be remedied by running:
sudo apt-get install build-essential gcc python-dev python-setuptools
Then you install python’s docutils by entering this command:
sudo easy_install docutils
and finish by installing mercurial. Download it from Atlassian’s recommended download site (I downloaded 1.9.2). Then finish by extracting the downloaded tar file, change directory to the extracted file, and run:
sudo make install
Type “hg” to verify the installation went smoothly.
Create the .hgrc file in your Mint user’s home directory by opening a terminal window, typing cd ~ then type gedit .hgrc . Add the contents mentioned in Atlassian’s instructions in the first step.
Everything else was pretty straight forward. To set the FISHEYE_INST environment variable, enter this in the terminal before starting up Fisheye (change the directory if you didn’t install to /opt/fisheyecrucible):
FISHEYE_INST=/opt/fisheyecrucible export FISHEYE_INST
Get JIRA and Fisheye Talking:
This one was straight forward and a piece of cake! Nothing can really give you too much of a hangup. The dragon is coming along nicely!!
Get JIRA and Crucible Talking:
Another easy one! Woohoo. Got the dragon all Crucibled up!
Again, getting Maven 2 is pretty easy with Mint, just download it from the APT repository by typing this into the terminal window: sudo apt-get install maven2
After, you will need to set the M2_HOME and JAVA_HOME environment variable. As before, type:
M2_HOME=/usr/bin/mvn JAVA_HOME=/usr/bin/java export M2_HOME export JAVA_HOME
These instructions seemed like they needed a bit of fixing, but the default IP address values seemed ok (127.0.0.1).
In step 6, set the JDK to JDK 1.6.
Bamboo Gadgets and JIRA Victory:
Adding the two gadgets are easy!
I’m done! I got the VM setup, installed all of the products in the challenge, and best yet, I got a free t-shirt to show off my dragon conquering prowess!
I hope this has helped fellow dragon conquerors. Please feel free to leave comments or questions!