January 2013 Archives

So, the virtual machine I put together has all these great services: jira, team city, jenkins. But it's known as its cool host name. I'd rather declare the availability of those services at boring subdomains. But the avahi service broadcasts just the one host name.

How does one configure avahi to declare mutliple available services, at different names? Do I need to make fake ethernet adapters? Do I need virtual hosts? I don't know. What do I look like, some kind of IT super dude?


Virtual machine snapshotted; time to download and install jira, with fisheye and greenhopper.

From the license page, there's a download link. You have to dig around separately to find the instructions for installation (it's not an easy link from the download). There's also not much help here with regards to selecting a version, so at this point, a little manual reading is required.

Since it's going on a linux VM where I just patiently installed oracle java, I'm going to use the linux tarball instead of the binary. Otherwise, the docs say that jira is going to install yet another jvm. Boo. Wget and tar xfz that beast. Moved to /home/jira/version-number, made /home/jira/data and chmod -R the data folder to www-data. The docs say the app shouldn't need www-data permissions (it never writes it).

Another instance of software that doesn't have an init.d script setup for it. Luckily we just did something like that, and can crib a new one. Just set the JIRA_HOME there, and replace the start/stop script line with the jira one from the install guide, and re-initialize the startup sequence.

Rats. When I start up the daemon, it can't write to 3 directories inside the application directory. Sure enough, the instructions say to chown the subdirectories for temp, work, and log to the jira user. Surely it would be better for them to move this stuff out into JIRA_HOME so that the permisisons for changed data all live in one place? Whatever. Fixed.

After starting the daemon up, it appears you can at least move temp by setting CATALINA_TMPDIR to somewhere elsse. But that means work and log are still screwed.

For kicks, I tail the catalina.out log. It looks like there's another secret directory, conf, that it expects to create. I'm just going to change the group for the whole directory to www-data and write it off.

Restart again, and it looks like the jenkins instance of tomcat is hogging port 8080. Grumble. The conf directory that jira couldn't make before now has a server.xml in it. That has the port numbers in it. Modify to recommended ones in the manual and reboot. Looks ok. Web configuration now possible

Huh. The first option, selecting a database type, defaults to 'internal' which they say is never for production use. When you change the radio button to external and select 'mysql', you are warned that you need a jira mysql driver. Am I supposed to make the tables myself ahead of time? Yes.

Time to apt-get install mysql-server-5.5, but there are broken packages. The update/upgrade dance begins! The best I can do with squeeze it looks like, is eat mysql 5.1 components. After installing mysql 5.1, added phpmyadmin. I had to symlink its apache conf as described here.

The next evening we finally get around to creating Jira tables with phpmyadmin. Then there's the download of the mysql Connector-J java connector. With this in place, we should be able to complete the setup wizard. Restart the jira service, and browse to the web page. Set options to use mysql user and db, and a test of the connection goes ok. SMTP configured ok. Handy warning shows me I need to reconfigure tzdata package so I can fix my timezone. Done. I skip the wizard step to make a project so I can snapshot the machine.

Sheesh. That's like a whole 'nuther evening configuring and downloading and stuff.

Gearing up for development.

| | Comments (0) | TrackBacks (0)

Nutmeg needs a game. She's got a plan, but I need some tools and training. Tools, I'm down with. Here's the proposed dev stack.

  • Perforce for source control. Already installed locally, I did a backup and updated to 2012.2 new hotness. I'm stoked to check out the git fusion integration, and/or git-p4. Hopefully I don't need to switch to a mac environment and have this working. If I do, I'm going to have to move everything to a virtual machine.
  • Jira/Greenhopper for issue tracking and sprint burndown. It turns out, you can get a 10 seat license for a self install for 10 bucks, with 10 per add-on. So, 20 bucks. I need to buy and install. I got a debian squeeze VM I'm going to throw this onto.
  • TeamCity for builds. I've been meaning to check it out after good words from David Nelsen. I use Jenkins at work, this should be an easy way to do a comparison. I'll put this up on the VM, take a snapshot, and I have a ready-to-customize helper box to recycle.

From an organization standpoint, it should be easier to install all this crap in windows, but I'm both a glutton for punishment, and uber organized. And sometimes, the best features work only in linux.

Downloaded the cheap license (free as in beer) of TeamCity with wget. Brought up the manual. Requires/recommends Oracle java.

Crap. Debian starts with open java. Google links suggested using some random dude's launchpad bootstrap. No thanks. I don't trust it and don't have time to read it. I went with the next least crazy suggestion from the googles, generating a java .deb from the binary package. Then select it as the preferred java.

Next we find someone who's set up teamcity on a debian distro before. Like this guy. I used this a crib sheet, putting in the directory I wanted, and adding the recommended headless java startup option to another exported variable, and left myself a link to the original article in a comment. (memo to self: make a git repo for config changes).

Crap. There's a warning in the step that declares that the init.d script is missing LSB tags and overrides. What the hell are those? Huh. Ok. Add some template crap to the top and make it teamcity-specific. No more warning.

Crap. Now, where do I find the server? I've forgotten how it does local DNS. Oh yeah. It's on servername.local, the mDNS/bonjour protocol. Ok. Port discovered. Yay! Server is up, but freshly installed / empty. There's some kind of wizard page. Checking the manual. Should in theory be safe to step through? TeamCity docs are about java memory settings, nothing describes the setup wizard content. I do see that my x64 vm is going to almost double its teamcity memory usage. Thanks for writing it in java, assholes.

I press the OK button, and teamcity sits there, throbbing. But Dave says it's pretty good, so we're going to hold out. Memo to self: snapshot the machine once the bare install is up.

teamcity_throbber.png

Time to buy jira. Ok, throw in fisheye and greenhopper. Apparently I can't buy it without coming up with an organization name. It would be great if I had an LLC, but I don't yet. Once I get Jira installed, I'll make a jira for it. Thirty bucks is pretty reasonable for an entire stack of code/task management software, for a company of any size. For 70+ monthly, I could have it hosted and skip the self-setup/maintenance.

Jira would be bought, 10 minutes later, but they've declined my credit card. WAT? Teamcity server is still chugging. Maybe it needs more ram. I will have to reconfigure the VM if that's true. (funny story, I tried to buy this last night, but clicking on buy took me to an unavailable page. Apparently the shopping cart is back.)

I go get another credit card, chat with my wife, pour some scotch, and come back to the computer. Apparently the other card is fine. Order processed. Still no team city love yet. Maybe I should spawn a new window. Oh, great. The new window pops up a license agreement. Has it been waiting all this time? Ok. Well, license accepted. Off I go. Admin user created. Looks like it's ready to configure. Time to snapshot this beast and install jira.

Apparently, atlassian made me an account and forwarded me some login details. Sweet. That's enough for this 1.5 hour session of 'setup-my-software'.

Recent Tweets