In July, I will be presenting at MacAdmins at PSU. My talk will be called “OMG! APPLE IS GUTTING SERVER.APP!!!!” I will be using my blog to document all the processes taken to get all the data.
The goal of this is to find easy ways to move away from Server.app while utilizing the existing Apple hardware in your server closet and macOS. Sure you can move to a new system, but you might not have the money or time.
You can find the slide deck here.
Server.app -> BIND
So before I start, I should say that this is fully documented in Apple’s macOS Server Service Migration documentation, which is almost perfect. I’m only making two small changes.
- First step is to test the server. After booting this VM, I set my DNS to the testserver. It loaded no problem.
- Turn off DNS services in Server.app
- Install Xcode.
- Here’s the first change, and important one… LAUNCH XCODE and agree to the terms and conditions, otherwise it won’t work.
- Go to https://www.isc.org/downloads/
- Click on “BIND” to expand that section
- Click on Download beside “Current Stable”
- The top row will be Windows installers, the second row will have the *nix version, choose that. The link currently says bind-9.12.1-P2.tar.gz – tar.gz
- Apple says to grab at least one signature. I did it, I don’t know if that was necessary.
- Open Terminal and navigate to the directory you downloaded to, in my case it was
cd ~/Downloads
- Uncompress the files.
tar xzf bind-9.12.1-P2.tar.gz
- Navigate the uncompressed directory
cd ./bind-9.12.1-P2
- Run this command
./configure --infodir="/usr/share/info" --sysconfdir="/etc" --localstatedir="/var" --enable-atomic="no" --with-openssl=no --withgssapi=yes --enable-symtable=none --with-libxml2=no
- Make it by typing
make
- Test the build by running the following commands
sudo ./bin/tests/system/ifconfig.sh up
make test
… this seemed to go on FOREVER, socontrol-c
‘ed out of there. I don’t know if I was supposed to.sudo ./bin/tests/system/ifconfig.sh down
- Let’s install it.
sudo make install
- Apple suggests you verify that it’s installed by pulling up the manual for the DNS service called “named.” You do that by typing
man named
- Create the launchdaemon by typing
sudo nano /Library/LaunchDaemons/org.isc.named.plist
- Go here, go to page 7, copy the contents from step two of “Create a launchd .plist file for the BIND9 service”
- Save and exit control-x, y, enter
- Here’s the next place I disagree with Apple, they say, “Set file ownership to root:wheel.” However, they use chmod, and it’s chown.
sudo chown root:wheel /Library/LaunchDaemons/org.isc.named.plist
- Load the job
sudo launchctl load -w /Library/LaunchDaemons/org.isc.named.plist
- Test the job
launchctl print system/org.isc.named
Wow. Apple has made this super easy. Hooray for Apple. All your existing settings will be there already. Really. It just works.