1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
.TH ezjail\-admin 1
.SH NAME
ezjail-admin \- Administrate ezjail
.SH SYNOPSIS
.T
.B ezjail-admin create
[-f flavour] [-r jailroot] [-x]
.I hostname jailip
.T
.B ezjail-admin delete
[-w]
.I hostname
.T
.B ezjail-admin list
.T
.B ezjail-admin update
[-s sourcetree] [-i] [-pP]
.SH DESCRIPTION
The
.B ezjail-admin
tool is used to manage jails inside the ezjail scope. It is not used
to start or stop ezjails jails. Refer to ezjail(5) for more details.
.SH ezjail-admin create
copies the template jail to the root of a new jail, whose name and IP
address are provided as mandatory parameters.
If no jail root is specified via the -r option, it is derived from
the jails name. In this case or, if a jail root is given and does not
start with a '/', it is interpreted relative to ezjails root dir
(default:
.I /usr/jails
). If a specified jail root lies outside ezjail root dir, a soft link
is created inside this root dir pointing to the newly created jails
location.
The -x (jail exists) option indicates, that an ezjail already exists
at the jail root.
.B In this case nothing is copied. ezjail only updates its config.
This is useful in situations where you just want to alter some of a
jail properties and called ezjail-admin delete without the -w option
before. However, sanity checks are being performed.
The script creates an entry in its config and a
.I /etc/fstab.hostname
file allowing the jail to be brought up after next reboot (or) via
the EZJAIL_PREFIX/etc/rc.d/ezjail.sh script.
The newly created jail can perform some initializiation actions, if the
-f
.I flavour
option is given, where
.I flavour
is a directory tree under ezjails root dir (default:
.I /usr/jails/flavours
). See section
.B FLAVOURS
below for more details.
Options for newly created jails are read from
.B ezjail.conf,
refer to ezjail.conf(5) for more information.
.SH ezjail-admin delete
removes a jail from ezjails config and the corresponding
.I /etc/fstab.hostname
file, thus preventing the jail from being brought
up on next reboot.
If the -w (wipe) option is given, the directory pointed to by the jail
root entry is removed as well as the soft link in ezjails root dir.
.SH ezjail-admin list
lists all jails inside ezjails scope, together with some information on
them.
.SH ezjail-admin update
creates or update ezjails basejail. Depending on the parameters
given it will install a FreeBSD system from a source tree whose location
is either provided in the
.B ezjail.conf
config file or via the -s option.
If the -p or -P options are given, the base jail also is given a copy of
FreeBSDs ports tree, which is in turn linked into all newly created
ezjails.
If the -P option is given,
.B only the ports tree will be checked out/updated,
this can be done, while jails are running.
If the -i (install only) option is given,
.B ezjail-admin update
only performes a
.I make installworld,
otherwise
.I make world
is invoked.
.SH NOTES
.B ezjail-admin update
uses a temporary directory to install its world to, thus leaving intact
all installed libraries, if a base jail already exists.
When using the
.B ezjail-admin update
option, be careful to use the same FreeBSD source tree used to build the
host systems world, or at least its kernel. Combining a make world in the
host system with
.B ezjail-admin update
is considered a good idea.
When a ports tree exists in base jail, a make.conf containing reasonable
values for having ports in jails is created in the template jail.
.SH FLAVOURS
.B ezjail-admin
provides an easy way to create many jails with similar or identical
properties. Currently it supports creating users, installing files and
installing packages.
A sample flavour config directory resides under
.I EZJAIL_PREFIX/share/examples/ezjail/default/.
Some typical Jail initialization actions are demonstrated and you are
encouraged to use it as a template for your flavours.
If a flavour is selected on jail creation, the flavour root is being
copied to the new Jails root, mostly containing an
.I /ezjail.flavour .
If the Jail starts up for the first time it runs a setup script found
at
.I /etc/rc.d/ezjail-config.sh.
This script will create some users specified in the flavour config.
It will then chown files specified in the flavour config. (This allows
chown-ing files to users only created by the config script.) All
packages residing under
.I /pkg
will be pkg_install-ed. Finally the script
.I /ezjail.postinstall
is being sourced, if it exists.
.I ezjail-config.sh
then removes all traces, including itself.
.SH EXAMPLES
ezjail-admin update -p
.br
ezjail-admin create -f httpd -r /jails/web12 web12.test.org 10.0.1.12
.br
EZJAIL_PREFIX/etc/rc.d/ezjail.sh start web12.test.org
.br
EZJAIL_PREFIX/etc/rc.d/ezjail.sh stop ns.test.org
.br
ezjail-admin delete ns.test.org
.br
ezjail-admin create -x -r /jails/ns ns.test.org 10.0.2.1
.SH BUGS
Due to the way ezjail handles jail config files it is not possible to
create multiple jails if their names are identical when piped through
.B tr -C [:alnum:] _
Sure to be others.
.SH FILES
.T4
EZJAIL_PREFIX/etc/ezjail.conf
.br
EZJAIL_PREFIX/etc/rc.d/ezjail.sh
.br
EZJAIL_PREFIX/share/examples/ezjail/
.SH "SEE ALSO"
ezjail(5), ezjail.conf(5), jail(8), devfs(5), fdescfs(5), procfs(5)
.SH AUTHOR
Dirk Engling <erdgeist@erdgeist.org>
|