Yikes. I’ve been running this site and several other services – email, wiki and storage – with a Mac Mini running OS X 10.5.8 Leopard Server since 2006. I’ve been planning to upgrade for several months, mostly because the existing server of only 120 G was running out of room.
Service was slow and somewhat unreliable, causing database errors that would require Time Machine restores to remedy. Finally, I’ve rolled out a 10.8.2 Server and migrated all my services and users, but, as usual, there’s a story here.
First, I searched the web for advice on migrating a server from 10.5 to 10.8 and couldn’t find any. Sadly, because there there is no migration path, no migration plan and no way to get there from here. All settings and data had to be re-entered using the new paradigm. Fortunately, there were only 10 user accounts, most of whom forwarded their mail to other services (it is a kind of vanity email service after all) and a smaller number of CMS-enabled sites.
Since there weren’t any advice, I thought I’d wing it. Bad idea. I created a test account on the Macintosh OS X 10.8.2 Mac Mini, and then used Migration Assistant to migrate users and applications data from the original (Leopard) to the replacement server (Mountain Lion).
This didn’t work too well. After about a week of wrestling with the server (I do have plenty of other things to do with my time), I called AppleCare who passed me to an enterprise agent and we quickly came to the conclusion that wipe and reinstall was the only logical choice. My issues were that the services that depended on the postgres server wouldn’t engage because the ill-advised (actually non-advised since I couldn’t find anywhere that some said DON’T DO THIS) migration replaced key software components that postgres needs and therefore couldn’t work properly. I suppose the old services relied on key
Fine. Except, I couldn’t get the OS to download properly from the recovery partition, AND, the install drive I made didn’t work either, AND, since I don’t have a handy 10.8.2 image to download, I took it my local Apple Store where they reinstalled the OS.
Once I got it home, I initiated my new administrator account and setup the DNS server, turning if off of the original server. The big lesson in DNS world is to assign domain names to unique computers and then list all the appropriate aliases. It’s not good to assign multiple machine entries to the same machine. My plan was simple: migrate services one at a time. DNS, web, email, VPN and the rest.
OS X Server doesn’t ship with MySQL anymore. As it turns out, there are lots of search results on installing MySQL on Mountain Lion computers. The best method, I thought was to do a combo: install the core app using Brew and then the MySQL status component for System Preferences. That way I get a great software installation experience with the finite control capabilities of the System Preferences feature.
I got that working and exported my databases from the old server and then imported my databases to the new server.
Getting Joomla working properly was a problem for many days. Here I used Akeeba backup to backup the site and then restore it in the new locale. Sadly, the database reinstall script portion kept failing. Finally, I thought I would update the Akeeba component in my original server’s installation of Joomla and then try the restore again. Voila, it worked great.
Then, as I tested the site, I learned my big DNS lesson. In fact, it was through another call to AppleCare that I learned the importance of care in DNS operation. This was a little annoying because the reason I called was that my email wasn’t working at all. Connection Doctor and Mail Activity window weren’t letting me get what I needed.
The next step was email service, which pretty much went smoothly except I couldn’t receive email on my server. I had to reinitiate all user accounts, and of course, adjust my mail flow. But this was the trick. My email setup is a little complicated as I have an awesome email security server from Sendio. All incoming email is passed directly to the Sendio appliance which performs anti-virus inspection and then a good ol’ challenge-response accept/reject/hold-until-response test. Good email are passed through to the new OS X Server. But, for the life of me, I couldn’t get the emails to flow to the OS X Server, then it hit me: “Tell the Sendio appliance to deliver it to the Server (use the correct IP address silly).”
That was the final link in the whole process. Service by service. Now, I plan to explore more and more of the server and services.