MongoDB in FreeNAS jail
This posts describes steps I took to get MongoDB running inside of a jail on my FreeNAS 9.1.1 setup. All commands issued from @freenas are from the main console, and @homeauto_database are from inside of the jail. This step provided me with a fully functional persistence backend for OpenHAB.
- Create port jail via FreeNAS UI
- Configure Jail
[root@freenas]$ jls JID IP Address Hostname Path 12 - homeauto_database /mnt/mainsafe/jails/homeauto_database [root@freenas]$ jexec 12 /bin/tcsh [root@homeauto_database]$ portsnap fetch extract [root@homeauto_database]$ cd /usr/ports/databases/mongodb/ [root@homeauto_database]$ make install
- Fill in any prompts that you get (I’ve used default settings for all)
- Create mount-points via FreeNAS UI to expose directories you like
- Make mongodb start up at boot
[root@homeauto_database]$ vi /etc/rc.conf # add at the bottom mongod_enable=“YES”
- Start MongoDB for the first time
[root@homeauto_database]$ /usr/local/etc/rc.d/mongod start
- Check if the process is listening
We can see that mongodb is listening![root@homeauto_database]$ netstat -a | egrep 'Proto|LISTEN' Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.28017 *.* LISTEN tcp4 0 0 *.27017 *.* LISTEN tcp4 0 0 *.ssh *.* LISTEN tcp6 0 0 *.ssh *.* LISTEN
- Get IP address of the jail
[root@homeauto_database]$ ifconfig ... epair11b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 02:e7:61:00:13:0b inet 192.168.2.118 netmask 0xffffff00 broadcast 192.168.2.255 ...
- Try to connect via UMongo – https://github.com/agirbal/umongo/downloads
(you may need to enable execution of programs from unidentified developers on osx 10.9 or later)
That’s it! You should now have a database running on your FreeNAS server.