Installing an Olive on VirtualBox

Although it exists in many other places, I’ve not found a comprehensive set of instructions for installing JunOS 11.4 under VirtualBox that actually works. As I found, It isn’t too difficult, and only took me a day or so.
You’ll need to create a FreeBSD machine in VirtualBox with 1Gb of RAM and 5Gb of disk space. Select one or more network interfaces as the Intel PRO/1000 MT Desktop adapter. If you’re running on a UNIX system, additionally redirect the COM1 serial port to a host pipe called /tmp/com1. Use the command socat /tmp/com - to show the output from the serial console, which is useful after booting the Olive for the first time.

Installing FreeBSD

  • Download the FreeBSD 4.4 mini ISO from ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/4.4/4.4-mini.iso
  • Create a FreeBSD machine with 1Gb of RAM. Create a VDI startup disk (either dynamically allocated or fixed size) of 4Gb
  • Edit the machine settings and enable network adapters as Intel PRO/1000 MT Desktop (82540EM) adapters. Although FreeBSD 4.4 won’t support these, JunOS 11.4 will.
  • Attach the ISO image to the CD/DVD drive in the machine, and boot it.
  • When FreeBSD boots, select ‘Skip kernel configuration and continue with installation’.
  • At the /stand/sysinstall menu, select a Standard installation.
  • At the ‘FDISK Partition Editor’ screen, delete any existing slices and create a single FreeBSD slice covering the entire disk by pressing ‘A’. Press ‘Q’ to finish – changes are automatically saved.
  • At the ‘Install Boot Manager for drive ad0?’ page, select ‘Standard’ so as not to install a boot manager.
  • At the ‘FreeBSD Disklabel Editor’ screen, create partitions as follows:
    • 1G filesystem mounted on /
    • 512M swap partition
    • 512M filesystem mounted on /config
    • Remaining space in a filesystem mounted on /var
  • Press ‘Q’ to finish – changes are automatically saved.
  • At the ‘Choose Distributions’ page, select ‘X’ to exit’.
  • At the ‘Choose Installation Media’ page, select ‘Install from a FreeBSD CD/DVD’.
  • The disk will now be partitioned, filesystems created and FreeBSD installed.
  • After installation, the following questions will appear. Answer ‘No’ to each:
    • Would you like to configure any Ethernet or SLIP/PPP network devices?
    • Do you want this machine to function as a network gateway?
    • Do you want to configure inetd and simple internet services?
    • Do you want to have anonymous FTP access to this machine?
    • Do you want to configure this machine as an NFS server?
    • Do you want to configure this machine as an NFS client?
    • Do you want to select a default security profile for this host?
    • Would you like to customise your system console settings?
  • Answer ‘Yes’ to “Would you like to set this machine’s time zone now?”. Select ‘No’ to “Is this machine’s CMOS clock set to UTC?”, then select ‘8 – Europe’, ’42 – United Kingdom’ then ‘1 – Great Britain’. Answer ‘Yes’ to “Does the abbreviation ‘BST’ look reasonable?”
  • Answer ‘No’ to “Would you like to enable Linux binary compatibility?”
  • Answer ‘No’ to “Does this system have a USB mouse attached to it?”, then select ‘Exit’ at the “Please configure your mouse” menu
  • Answer ‘No’ to the question regarding browsing the FreeBSD package collection.
  • Answer ‘No’ to the question regarding adding initial user accounts.
  • Set a password for the ‘root’ user.
  • Answer ‘No’ to the question regarding the last chance to set options.
  • Select ‘X’ to exit installation, detach the ISO image and select ‘Yes’ to the “Are you sure you wish to exit?” question.
  • The virtual machine will now restart.

Creating a JunOS installation image

Download junos-olive-patch.sh and run it against a standard JunOS installation image, for example:
user@host:~$ ./junos-olive-patch.sh jinstall-11.4R2.14-domestic.tgz
This will unpack and patch the installation file, replacing ‘checkpic’ in the pkgtools archive with a symbolic link to /bin/true so the package will install on an Olive.
To get this installation package on to VirtualBox, make it in to an ISO file using mkisofs:
user@host:~$ mkisofs jinstall-11.4R2.14-domestic.tgz > olive.iso
Attach the ISO image to the Olive in VirtualBox, then mount the ISO file on FreeBSD by typing mount /cdrom. Install the package by running pkg_add -f jinstall-11.4R2.14-domestic.tgz.
Reboot, and wait for the BTX loader screen to disappear – this may take several minutes. If you’re using socat to monitor the output of the console, you’ll see JunOS being installed.

Installing WebSphere MQ 7.5 on Ubuntu 12.04LTS

An item on my mental To Do list for some time has been getting WebSphere MQ installed on Ubuntu. I don’t use it in a production environment, therefore an IBM PartnerWorld Software Access agreement gets me the software for a year, and a virtual machine with Ubuntu circumvents the need to buy Red Hat Enterprise Linux.
With many things I do that could potentially turn out complicated or non-trivial, I document the entire process. I’m assuming you’re running a 64-bit version of Ubuntu 12.04LTS at this point, and that you’ve also read Quick Beginnings for Linux on IBM’s site.
First, install the ‘rpm’, ‘pax’ and ‘default-jre’ packages. IBM distribute MQ as a set of RPMs, and I decided to install these rather than rebuild them as .deb files.
Next, create /etc/sysctl.d/50-webspheremq.conf with the following:
kernel.msgmni=1024
kernel.shmmni=4096
kernel.shmmax=73834496
kernel.shmall=2097152
kernel.sem=500 256000 250 1024
fs.file-max=32768
net.ipv4.tcp_keepalive_time=500

Make these changes live by running sudo sysctl -p.
Run sudo ./mqlicence.sh, read and agree to the licence.
‘crtmqpmg’ expects to find ‘pax’ in /usr/bin, so create symbolic link to ‘pax’ by running sudo ln -s /bin/pax /usr/bin/pax, then create /usr/lib64 using sudo mkdir /usr/lib64 as the installation process will want to write files in there.
Create a set of MQ packages by running ./crtmqpkg $ID, where $ID is an installation identifier, such as ‘dev’ or ‘prod’. This may take some time. When it’s finished, change to /var/tmp/mq_rpms/$ARCH and install the following RPMs using the command sudo rpm -ivh --nodeps --force-debian:

  • MQSeriesRunTime
  • MQSeriesServer
  • MQSeriesSDK
  • MQSeriesClient
  • MQSeriesJava
  • MQSeriesSamples
  • MQSeriesGSKit
  • MQSeriesMan

Set this MQ installation as default using sudo /opt/mqm/bin/setmqinst -i -p /opt/mqm, then run dspmqver to verify the installation is correct.
Finally, add your user in to the ‘mqm’ group by running sudo addgroup $USER mqm. Log out and log in for these changes to take effect.