summaryrefslogtreecommitdiff
path: root/man1/ezjail-admin.1
blob: b4ff3ea4cc668779fdfc7efc84ddcb759a4debd7 (plain)
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
.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
makes a copy of the ezjail template jail to the standard jail directory,
using either the name specified with the -r option or a name derived from 
the given hostname.

If the jailroot does not start with a /, it is 
interpreted relative to ezjails root dir. If the given jailroot lies 
outside ezjails root dir, a soft link is created inside ezjails root dir 
pointing to the newly created jails location.

The first step is skipped, if the -x (jail exists) option is given, 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.

It then creates an entry in its
.I EZJAIL_PREFIX/etc/ezjail/
resource directory allowing the jail to be brought up after next reboot.

If the ezjail_mount_enable option is set, a
.I /etc/fstab.hostname
is generated, allowing the basejail to be auto-mounted when the jail starts 
up.

The newly created Jail can perform some initializiation actions, if the
-f <flavour> option is given, where flavour is a path to a flavour configuration
file or a short name expanding to
.I EZJAIL_PREFIX/etc/ezjail.flavour.<flavour> .

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
.I EZJAIL_PREFIX/etc/ezjail/
resource directory thus preventing 
it from being brought up on next reboot.

It then removes the
.I /etc/fstab.hostname
entry, if it exists.

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
installs a FreeBSD system from the source tree whose location is either
provided in the
.B ezjail.conf
config file or via the -s option. It will check out or update a fresh ports
tree to the base jail, if the -p or -P option is given. In fact, if the -P
option is given,
.B only the ports tree will be updated.

Install destination is a temporary directory inside ezjails jail root. If 
the -i (install only) option is given,
.B ezjail-admin update
only performes a
.I make installworld,
otherwise
.I make world
is invoked.

It then fills the basejail from that temporary directory (leaving intact 
all installed libraries, if the base jail already exists). All
copied directories are then removed and replaced by soft links into the 
base jail tree that later will be mounted into the jail.

Finally it removes the old template jail and renames the 
temporary directory as the new template jail.
.SH NOTES
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 is to allow
giving file to users that didn't exist on Jail creation time.) All
packages residing under
.I /pkg
will be installed. 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
.B ezjail-admin
does not perform paranoid checks on its variables.
.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>