I've just completed a migration of Bamboo Data Center from old to new infrastructure -- a brand new virtualization provider -- and found some quirks along the way. These are all documented or answered in forum posts, but I did not see this information collected in one place and wanted to share.
For context, we are shifting every resource to a new location, and for security and technical reasons, cannot reach any of the old resources from the new network. All hosts are Windows Server or Windows Data Center. The pieces that may be relevant to this situation are:
Here are some top-line tips to get started:
Another quirk of the Bamboo installer is that it defaults to targeting C:\Program Files\Atlassian\Bamboo, despite documentation warning that installing to a "Windows-controlled directory" is a bad idea. I'm not sure what this term means, as they're all controlled by Windows on a Windows box, but I digress; to follow the suggestion, make yourself something like this:
C:\Atlassian\
Although Bamboo maintains a home directory full of temp files, configs, etc., this directory will also contain some files written at runtime -- during setup, config files; during operation, log files. You can get fine-grained and put these in their own directories during install, and manage those permissions more specifically. The big-hammer approach is to just give Full Control permissions to your new atlbamboo user.
Bamboo's home directory is a separate thing which should not be inside the install directory. If you have a "data drive," that's the logical place. I made a directory D:\Atlassian\BambooHome for this. Again, full control permissions for atlbamboo.
Bamboo needs Git and Java installed, and Java at least has an additional suggestion: install it to a path with no spaces. This hasn't caused me a problem with the default directory of C:\Program Files\Java\jdk1.8, but your mileage may vary; if you want to follow every suggestion, aim for C:\Java\jdk1.8 or something similar. You may notice (as early as the first page of the setup wizard) that Bamboo has some inconsistent ideas about how paths should be input -- this is a trend throughout the product and so I suggest following any subtle advice they give to mitigate frustrations here.
You may have to manually update some environment variables. Ensure the following (safe to set systemwide unless they'll interfere with something else you're doing):
Follow the guide to setup your database and user. This phase was the crux of my problems with the setup wizard, because it gives no feedback in the UI whatsoever if there's an access issue other than "couldn't log in." Sometimes there will be errors in the logs (there are many log files, consult [Bamboo installation]\logs\atlassian-bamboo.log for this kind of error) and sometimes there aren't; sometimes a stack trace is dumped to the UI; usually the root error is obscure and may give you a gut feeling of what's wrong.
Specific errors I ran into, which might be especially helpful to find this in a search if you're stuck:
I was getting this while importing the backup from the old site. It was in the logs, near the top of a massive stack trace. This is how a lack of access to Git manifests; ensure the user you're running Bamboo as has read/execute permissions to Git.
This one occurred a few times and masked different issues.
First, I was seeing this view for 5-10 seconds and then getting bounced back to the previous page (inputting the database details) with no error or explanation. I don't recall seeing anything useful in the logs, but I may have overlooked it.
Later, I was seeing this page for a long time with no change. I got suspicious and refreshed the page, only to see the "enter your database details" page again. This is when the logs told me "Schema exists, but no tables were created."
Root cause in that case was an incomplete setup of the database and user -- database had case-insensitive collation, user wasn't owner, read committed snapshot was off... A bunch of things I didn't pay close attention to the first time. Here's the thing though: the migration guide seems to imply that you can take a database backup and just use that, so initially I was pointing this setup wizard at a database that already existed, a copy from the old server. But Bamboo was throwing errors that the schema already had tables in it -- the wizard is not equipped with "IF NOT EXISTS" logic. So, hastily, I dropped and recreated a blank schema, and didn't refer to the "initial database setup guide." Ultimately my mistake, but the docs could be clearer.
Yikes! What? After all that?
Once I got through the database phase, the next step was restoring the home directory from my backup. This progressed for a while and then gave the above error; the logs told me about the CancelException, and some searching led me to "incorrect Git permissions." See that point above; this is just another, shorter inroad to find that solution.
Obviously you don't plan to run Bamboo from the command line every time the server starts up. The guide for this process suggests there's a Bamboo group in the Start Menu from which you can choose "Install as a Service" -- I don't have any such group, so I'm not sure what that's about. There is, however, InstallAsAService.bat in the Bamboo installation directory. Run that from an admin command prompt. It's supposed to warn you about the user situation, but in my case it didn't.
So, open Services (Start Menu, start typing "services", or go to Run and enter "services.msc"), browse to the entry "Atlassian Bamboo Bamboo" (no comment, the one right after it is "Atlassian Bitbucket AtlassianBitbucket" (sic)), right click and go to the Log On tab. Enter the details for your atlbamboo user (including entering the password twice, a baffling Windows feature, but hey this is the life we chose) and click all the OKs you need to. Right click and Start that service, then confirm in a browser you can reach localhost:8085.
These are all helpful resources, if a little scattered and sometimes incomplete. Treat this post as a coda to some of the less obvious parts, but generally you can follow these to affect a smooth migration: