Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 May 2014 23:36:14 GMT
From:      Sevan Janiyan <venture37@geeklan.co.uk>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   docs/189901: Update the jail section of the handbook
Message-ID:  <201405172336.s4HNaEXI012105@cgiserv.freebsd.org>
Resent-Message-ID: <201405172340.s4HNe0WC076424@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         189901
>Category:       docs
>Synopsis:       Update the jail section of the handbook
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 17 23:40:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Sevan Janiyan
>Release:        11.0-CURRENT
>Organization:
>Environment:
FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r266021M
>Description:
The following changes where made
Mention that jails is operating system level virtualisation
Describe that it's possible to install perbuilt binaries as well as build from source.
Instructions on how to extract distfiles on 8.x & earlier / 9.0 & later
Remove reference to jail_www_devfs_ruleset rc.conf, as-is it prevents the jail from starting because a ruleset needs to be defined & as there is no documentation for that in the article, it's easier to remove it, by doing this, the default ruleset is applied.
Add instructions on how to keep jails up to date with freebsd-update.

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

Index: jails/chapter.xml
===================================================================
--- jails/chapter.xml	(revision 44837)
+++ jails/chapter.xml	(working copy)
@@ -50,7 +50,9 @@
       host system.  Jails expand this model by virtualizing access to
       the file system, the set of users, and the networking subsystem.
       More fine-grained controls are available for tuning the access
-      of a jailed environment.</para>
+      of a jailed environment.
+      Jails can be considered as a type of operating system-level
+      virtualization</para>
 
     <para>A jail is characterized by four elements:</para>
 
@@ -194,9 +196,75 @@
       system, and <quote>service</quote> jails, dedicated to one
       application or service, possibly running with privileges.  This
       is only a conceptual division and the process of building a jail
-      is not affected by it.  The &man.jail.8; manual page is quite
-      clear about the procedure for building a jail:</para>
+      is not affected by it.
+      When creating a <quote>complete</quote> jail there are two
+      options for the source of the userland, use prebuilt binaries
+      (such as those supplied on a install media ) or build from
+      source.</para>
 
+    <para>To install the userland from installation media, first
+      create the root directory for the jail.</para>
+
+    <para>Set the <varname>DESTDIR</varname> variable to this
+      location.</para>
+
+    <para>If using <command>sh</command></para>
+
+    <screen>&prompt.root; <userinput>export DESTDIR=<replaceable>/here/is/the/jail</replaceable></userinput></screen>
+
+    <para>If using <command>csh</command>/<command>tcsh</command></para>
+
+    <screen>&prompt.root; <userinput>setenv DESTDIR <replaceable>/here/is/the/jail</replaceable></userinput></screen>
+
+    <para>mount the install media as covered in &man.mdconfig.8;
+      if using the install ISO</para>
+
+    <screen>&prompt.root; <userinput>mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt</userinput></screen>
+
+    <para>Extract the binaries from the tar balls on the install media
+      into the declared destination, realistically, only the base set
+      needs to be extracted but a complete install can be performed if
+      preferred.</para>
+
+  <para>To install just base:</para>
+
+  <para>On &os; 9.x and newer</para>
+
+  <screen>&prompt.root; <userinput>tar -xf /mnt/freebsd_install/usr/freebsd_dist/base.txz -C $DESTDIR</userinput></screen>
+
+  <para>On &os; 8.x</para>
+
+  <screen>&prompt.root; <userinput>/mnt/8.4-RELEASE/base/install.sh</userinput></screen>
+
+  <para>To install everything but kernel:</para>
+
+  <para>If using <command>sh</command></para>
+
+  <para>On &os; 9.x and newer</para>
+
+  <screen>&prompt.root; <userinput>for sets in BASE DOC GAMES PORTS; do (tar -xf /mnt/FREEBSD_INSTALL/USR/FREEBSD_DIST/$sets.TXZ -C $DESTDIR</userinput></screen>
+
+  <para>On &os; 8.x</para>
+
+  <screen>&prompt.root; <userinput>cd /mnt/8.4-RELEASE; for dir in base catpages dict doc games info manpages ports; do (cd $dir ; ./install.s    h) ; done</userinput></screen>
+
+  <para>If using <command>csh</command>/<command>tcsh</command></para>
+
+  <para>On &os; 9.x and newer</para>
+
+  <screen>&prompt.root; <userinput>foreach sets ( BASE DOC GAMES PORTS )
+      tar -xf /mnt/FREEBSD_INSTALL/USR/FREEBSD_DIST/$sets.TXZ -C $DESTDIR
+      done</userinput></screen>
+
+  <para>On &os; 8.x</para>
+
+  <screen>&prompt.root; <userinput>foreach dir ( base catpages dict doc games info manpages ports )
+      cd /mnt/8.4-RELEASE/$dir; ./install.sh
+      done</userinput></screen>
+
+  <para>The &man.jail.8; manual page is quite clear about the
+      procedure for building a jail from source:</para>
+
     <screen>&prompt.root; <userinput>setenv D <replaceable>/here/is/the/jail</replaceable></userinput>
 &prompt.root; <userinput>mkdir -p $D</userinput>      <co xml:id="jailpath"/>
 &prompt.root; <userinput>cd /usr/src</userinput>
@@ -299,8 +367,7 @@
 	<programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www"     # jail's root directory
 jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org"  # jail's hostname
 jail_<replaceable>www</replaceable>_ip="192.168.0.10"           # jail's IP address
-jail_<replaceable>www</replaceable>_devfs_enable="YES"          # mount devfs in the jail
-jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # devfs ruleset to apply to jail</programlisting>
+jail_<replaceable>www</replaceable>_devfs_enable="YES"          # mount devfs in the jail</programlisting>
 
 	<para>The default startup of jails configured in
 	  &man.rc.conf.5;, will run the <filename>/etc/rc</filename>
@@ -460,6 +527,24 @@
 	applications that contribute to &man.jail.8; management.
 	Please refer to its web page for more information.</para>
     </sect2>
+
+    <sect2 xml:id="jails-updating">
+      <title>Keeping jails patched and up to date</title>
+
+      <para>Jails should be kept up to date from the host operating
+	system as attempting to patch userland from within the jail 
+	may likely fail as the default behaviour in FreeBSD is to
+	disallow the use of &man.chflags.1; in a jail which prevents
+	the replacement of some files.
+	It's possible to change this behaviour but it is recommended
+	to use &man.freebsd-update.8; to maintain jails instead.
+	Using the <option>-b</option> option the path of the jail to
+	be updated can be specified.</para>
+
+      <screen>&prompt.root; <userinput>freebsd-update -b <replaceable>/here/is/the/jail</replaceable> fetch</userinput>
+&prompt.root; <userinput>freebsd-update -b <replaceable>/here/is/the/jail</replaceable> install</userinput></screen>
+    </sect2>
+
   </sect1>
 
   <sect1 xml:id="jails-application">

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405172336.s4HNaEXI012105>