+
+ +

FreeBSD Jails on FreeNAS

+

Mostly a personal distillation for getting a FreeBSD +Jail up and running on FreeNAS.

+

In The FreeNAS WebGui, Create A New Jail

+

The default networking configuration, will give +your jail an ip address on the lan. For now, I've +decided to just share a pkg cache with each jail. +Navigate to Jails -> Storage -> Add Storage and +add the pkg storage directory to /var/cache/pkg +inside the jail.

+

For instance, on my local FreeNAS server, +the pkg directory is at /mnt/VolumeOne/pkg/.

+

If you ssh into the host server, you can type the command +jls, to list the jails. Based on the output of the +command jls, you can get a shell with jexec <jail number> +of jexec <jail hostname>.

+

updating

+

How about the command pkg audit -F? Downloads a +list of known security issues and checks your system +against that.

+

I would recommend, to myself anyway, to shell into +the new jail with jexec, run pkg upgrade to install any new packages, +and then from the FreeNAS webgui, restart the jail. Although +the restarted jail will have a new jail number as reported by +the jls command.

+

locale

+

When you use jexec to get a shell, you get an environment +with an utf_8 locale. Not so if you ssh into the new jail. +For this put the following contents into ~/.login_conf

+
# ~/.login_conf
+me:\
+        :charset=UTF-8:\
+        :lang=en_US.UTF-8:\
+        :setenv=LC_COLLATE=C:
+
+ +

ssh

+

To get ssh running, edit /etc/rc.conf inside the jail.

+
# /etc/rc.conf
+sshd_enable="YES"
+
+ +

To start sshd immediately, make any necessary edits to +/etc/ssh/sshd_config, and run the following command.

+
service sshd start
+
+ +

Byobu

+

You'll need newt to configure byobu, and if you don't install tmux +then screen will become the backend.

+
pkg install byobu tmux newt
+
+ +

If you execute byobu-config, by pressing f9, the +following options seem to work. Some options, of course, +will prevent others from working so you have to enable them +one at a time to see what happens.

+
    +
  • date
  • +
  • disk
  • +
  • distro
  • +
  • hostname
  • +
  • ip address
  • +
  • load_average
  • +
  • logo
  • +
  • time
  • +
  • uptime
  • +
  • users
  • +
  • whoami
  • +
+

vim

+

Via pkg, there are two options: vim and vim-lite. Note vim will pull +in a whole bunch of gui dependancies, but vim-lite is not build with python.

+

For instance, powerline will not work with vim-lite because it's not built with +python. Also, vim-youcompleteme will not work with vim-lite. However, lightline +will work with vim-lite, and VimCompletesMe will work with vim-lite.

+

To get lightline working update $TERM

+
# ~/.config/fish/config.fish
+export TERM=xterm-256color
+
+ +

And vimrc

+
# ~/.vimrc
+set ls=2
+
+ +

Another option is to build vim from source via ports. You can prevent vim +from pulling in a bunch of gui dependancies with the following in /etc/make.conf.

+
# /etc/make.conf
+WITHOUT_X11=yes
+
+ +

And then when you compile vim from ports, run make config where you can enable +python.

+

python

+

For python3 virtualenv

+
virtualenv-3.6 <directory>
+
+ +
+