Chef on Debian/390

Linux on a S/390 or z/Machine is pretty similar to Linux running on any other architecture, but installing Chef on one is an interesting thought experiment. One major issue, though, is that binary packages are (not surprisingly) not built for s390 by Opscode, so you’ll have to do the more manual installation.

First, unless you have a mainframe laying around, set up a Linux/390 VM running under Hercules. I found these instructions to be useful, but since I’m on a Mac I had to make a few changes:

• For the networking device, I put 0A00,0A01 CTCI -n /dev/tun1 -t 1500 10.21.1.2 10.21.1.1
• I made a bigger root partition disk, but that’s up to you.
• To get networking working, you need to both:
• enable “Internet Sharing” from Ethernet to Ethernet in System Preferences > Network
• in the Terminal, run these commands:
sudo ipfw 002 add allow all from any to any via tun1
sudo ipfw 002 add allow all from 10.21.1.0/16 to any via tun1
sudo ipfw 002 add allow all from any to 10.21.1.0/16 via tun1


NB: For reasons I have not figured out yet, the Internet Sharing will up and stop forwarding packets from your tun device. Just stop and start it again and it’ll start working again.

Otherwise, the instructions are the same. If you do have a mainframe laying around, you probably know what you’re doing. Go get Linux set up.

Once the installation finishes and you’re up and running (which will take a while, I’m afraid), it’s time to install Chef. That process is well documented on the Chef Wiki’s Installation page, so I won’t redo that. It will, sadly, take longer than you might expect. This isn’t a real mainframe or anything, or even a real computer.

The main gotcha with this is that you’ll have to build chef from gems rather than apt, unless such time comes that apt packages are available for s390, and some packages, particularly custom ones from whatever vendor, may not be available at all, or unavailable unless you build them yourself. As I said before, this was just an experiment to see how it installed, and it works fine. Running Chef on Linux under Hercules is a silly experiment, but if you have a gaggle of Linux VMs under z/VM on a real mainframe, Chef would probably be very useful indeed with managing them.