mkjail
can be used on FreeBSD
to create new jails, keep them updated, and upgrade to a new release.
mkjail
requires the use of ZFS
will create each new jail in a separate filesystem.
mkjail
is not a jail manager. Jails are configured via /etc/jail.conf
and started/stopped via
service jail start foo
.
This work was created by Mark Felder who gave Dan Langille the sourcecode. Dan uploaded it first to his private git server, then to his GitHub account.
Shortly thereafter, https://github.com/mkjail/mkjail was created.
When running getrelease, I advise not specifying the -s
parameter. Just
let the mkjail.conf
configuration file do its work.
This script assumes you're using ZFS. mkjail
should be in the same
root dir as everything else you create below. (yeah, i know...)
-
clone this repo
-
make a flavour if you want
# mkdir -p /var/db/mkjail/flavours/default/etc # vi /var/db/mkjail/flavours/default/etc/resolv.conf
-
make your jail. The -j is the name you want your jail to be.
# ./src/bin/mkjail create -v 10.3-RELEASE -j testjail -f default Creating zroot/jails/testjail... Extracting base into /zroot/jails/testjail... Extracting doc into /zroot/jails/testjail... Extracting games into /zroot/jails/testjail... Extracting lib32 into /zroot/jails/testjail... Copying in our configs... Now put something like the following in /etc/jail.conf: exec.start = "/bin/sh /etc/rc"; exec.stop = "/bin/sh /etc/rc.shutdown jail"; exec.clean; mount.devfs; path = /zroot/jails/$name; testjail { host.hostname = "testjail"; ip4.addr = 172.16.1.122; ip6.addr = 2602:100:4475:7e4e::2; } and then you can start the jail like so: # service jail start testjail
-
Put the recommendation into your
/etc/jail.conf
:sysrc jail_enable=YES
-
Then issue this command:
service jail start testjail
Have fun.