summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2019-03-19 19:57:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2019-03-19 19:57:19 +0000
commita52f6a2a7cc32326dca1aaae098ded5f39271b6e (patch)
tree07d3717fb822b102cb87dd19fd308a0bacfbf591
parentAdding upstream version 20190304. (diff)
downloadopen-infrastructure-compute-tools-a52f6a2a7cc32326dca1aaae098ded5f39271b6e.tar.xz
open-infrastructure-compute-tools-a52f6a2a7cc32326dca1aaae098ded5f39271b6e.zip
Adding upstream version 20190319.upstream/20190319
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--CHANGELOG.txt13
-rw-r--r--README.txt108
-rw-r--r--VERSION.txt2
-rwxr-xr-xlib/container/enter2
-rw-r--r--share/man/compute-tools.7272
-rw-r--r--share/man/container-auto.180
-rw-r--r--share/man/container-console.167
-rw-r--r--share/man/container-create-curl.1165
-rw-r--r--share/man/container-create-debconf.1180
-rw-r--r--share/man/container-create-debootstrap.1128
-rw-r--r--share/man/container-create.1139
-rw-r--r--share/man/container-enter.167
-rw-r--r--share/man/container-key.180
-rw-r--r--share/man/container-limit.1120
-rw-r--r--share/man/container-list.1158
-rw-r--r--share/man/container-log.193
-rw-r--r--share/man/container-move.180
-rw-r--r--share/man/container-remove.197
-rw-r--r--share/man/container-restart.172
-rw-r--r--share/man/container-shell.1132
-rw-r--r--share/man/container-start.177
-rw-r--r--share/man/container-status.165
-rw-r--r--share/man/container-stop.182
-rw-r--r--share/man/container-top.165
-rw-r--r--share/man/container-version.160
-rw-r--r--share/man/container.1185
-rwxr-xr-xshare/scripts/debconf217
-rwxr-xr-xshare/scripts/debconf.d/0002-preseed-debconf5
-rwxr-xr-xshare/scripts/debconf.d/0003-debconf187
-rw-r--r--share/scripts/debconf.d/0003-debconf.templates63
30 files changed, 2988 insertions, 73 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index de65ba1..38e1b10 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,16 @@
+2019-03-19 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+
+ * Releasing version 20190319.
+
+ * Backward incompatible changes:
+ - with the initial support for IPv6 network configuration
+ the IPv4 netmask now needs to be specified in CIDR
+ notation, e.g. '255.255.255.0' becomes '24'.
+
+ [ Daniel Baumann ]
+ * Adding initial support for IPv6 in debconf container create script.
+ * Using C.UTF-8 in container enter command as fallback locale.
+
2019-03-04 Daniel Baumann <daniel.baumann@open-infrastructure.net>
* Releasing version 20190304.
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..a816de0
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,108 @@
+NAME
+----
+compute-tools - Manage systemd-nspawn containers
+
+
+DESCRIPTION
+-----------
+"[A Linux container] is an operating-system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host."::
+ -- Wikipedia (https://en.wikipedia.org/wiki/LXC)
+
+compute-tools provides the system integration for managing containers using systemd-nspawn.
+
+
+DOWNLOAD
+--------
+ * Upstream Releases: https://get.open-infrastructure.net/software/compute-tools/upstream
+ * Upstream Sources: https://git.open-infrastructure.net/software/compute-tools
+ * Debian Releases: https://get.open-infrastructure.net/software/compute-tools/debian
+ * Debian Sources: https://git.progress-linux.org/users/daniel/debian/packages/open-infrastructure-compute-tools
+
+
+INSTALLATION
+------------
+
+SOURCE
+~~~~~~
+ 1. sudo apt install asciidoc git docbook-xml docbook-xsl libxml2-utils make xsltproc dbus systemd-container
+ 2. git clone https://git.open-infrastructure.net/software/compute-tools
+ 3. cd compute-tools && sudo make install
+
+DEBIAN 9 (STRETCH) AND NEWER
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ * sudo apt install container-tools
+
+
+DEVELOPMENT
+-----------
+Bug reports, feature requests, help, patches, support and everything else
+are welcome on the Open Infrastructure Software Mailing List:
+
+ * https://lists.open-infrastructure.net/listinfo/software
+
+Please base patches against the 'next' Git branch using common sense:
+
+ * https://www.kernel.org/doc/Documentation/SubmittingPatches
+
+Debian specific bugs can also be reported in the Debian Bug Tracking System:
+
+ * https://bugs.debian.org
+
+
+KNOWN LIMITATIONS
+-----------------
+ * This version of compute-tools currently do not work with systemd-networkd and depend on ifupdown.
+ * Using overlay, the upper directory can not be an NFS mount due to limitations in Linux' overlay filesystem,
+ see https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/overlayfs.txt
+
+
+USAGE
+-----
+*Create a new container:*::
+ sudo container create -n NAME
+
+*Start a container:*::
+ sudo container start -n NAME
+
+*Stop a container:*::
+ sudo container stop -n NAME
+
+*Remove a container:*::
+ sudo container remove -n NAME
+
+*List container on the system:*::
+ sudo container list
+
+*Show container version:*::
+ container version
+
+See container(1) for a list of all container commands.
+
+
+LINKS
+-----
+*2016-02-24: Systemd vs. Docker*::
+ https://lwn.net/Articles/676831/
+
+*2015-06-10: Systemd and containers*::
+ https://lwn.net/Articles/647634/
+
+*2014-07-07: Control groups*::
+ https://lwn.net/Articles/604609/
+
+*2013-11-13: Systemd-Nspawn is Chroot on Steroids [LinuxCon Europe]*::
+ https://www.youtube.com/watch?v=s7LlUs5D9p4
+
+*2013-11-03: Creating containers with systemd-nspawn*::
+ https://lwn.net/Articles/572957/
+
+*2013-02-06: Systemd lightweight containers*::
+ https://lwn.net/Articles/536033/
+
+*2013-01-04: Namespaces in operation*::
+ https://lwn.net/Articles/531114/
+
+
+AUTHORS
+-------
+compute-tools were written by Daniel Baumann <daniel.baumann@open-infrastructure.net> and others.
diff --git a/VERSION.txt b/VERSION.txt
index 6cc47af..a61f3fc 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-20190304
+20190319
diff --git a/lib/container/enter b/lib/container/enter
index 9c9ebfa..10a122f 100755
--- a/lib/container/enter
+++ b/lib/container/enter
@@ -107,7 +107,7 @@ done
SSH_CLIENT="${SSH_CLIENT:-127.0.0.1 0 0}"
# Run
-nsenter --all --target "${LEADER}" --wd="${MACHINES}/${NAME}/root" /usr/bin/script -c "/bin/bash -l" -q /dev/null
+nsenter --all --target "${LEADER}" --wd="${MACHINES}/${NAME}/root" /usr/bin/script -c "LC_ALL=C.UTF-8 /bin/bash -l" -q /dev/null
case "${SSH_CLIENT}" in
127.0.0.1*)
diff --git a/share/man/compute-tools.7 b/share/man/compute-tools.7
new file mode 100644
index 0000000..6aeb583
--- /dev/null
+++ b/share/man/compute-tools.7
@@ -0,0 +1,272 @@
+'\" t
+.\" Title: container-tools
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-TOOLS" "7" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+compute-tools \- Manage systemd\-nspawn containers
+.SH "DESCRIPTION"
+.PP
+"[A Linux container] is an operating\-system\-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host\&."
+.RS 4
+ \(em Wikipedia (https://en\&.wikipedia\&.org/wiki/LXC)
+.RE
+.sp
+compute\-tools provides the system integration for managing containers using systemd\-nspawn\&.
+.SH "DOWNLOAD"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Upstream Releases:
+https://get\&.open\-infrastructure\&.net/software/compute\-tools/upstream
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Upstream Sources:
+https://git\&.open\-infrastructure\&.net/software/compute\-tools
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Debian Releases:
+https://get\&.open\-infrastructure\&.net/software/compute\-tools/debian
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Debian Sources:
+https://git\&.progress\-linux\&.org/users/daniel/debian/packages/open\-infrastructure\-compute\-tools
+.RE
+.SH "INSTALLATION"
+.SS "SOURCE"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 1." 4.2
+.\}
+sudo apt install asciidoc git docbook\-xml docbook\-xsl libxml2\-utils make xsltproc dbus systemd\-container
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 2." 4.2
+.\}
+git clone
+https://git\&.open\-infrastructure\&.net/software/compute\-tools
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 3." 4.2
+.\}
+cd compute\-tools && sudo make install
+.RE
+.SS "DEBIAN 9 (STRETCH) AND NEWER"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+sudo apt install container\-tools
+.RE
+.SH "DEVELOPMENT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+https://lists\&.open\-infrastructure\&.net/listinfo/software
+.RE
+.sp
+Please base patches against the \fInext\fR Git branch using common sense:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+https://www\&.kernel\&.org/doc/Documentation/SubmittingPatches
+.RE
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+https://bugs\&.debian\&.org
+.RE
+.SH "KNOWN LIMITATIONS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+This version of compute\-tools currently do not work with systemd\-networkd and depend on ifupdown\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Using overlay, the upper directory can not be an NFS mount due to limitations in Linux\*(Aq overlay filesystem, see
+https://git\&.kernel\&.org/cgit/linux/kernel/git/torvalds/linux\&.git/tree/Documentation/filesystems/overlayfs\&.txt
+.RE
+.SH "USAGE"
+.PP
+\fBCreate a new container:\fR
+.RS 4
+sudo container create \-n NAME
+.RE
+.PP
+\fBStart a container:\fR
+.RS 4
+sudo container start \-n NAME
+.RE
+.PP
+\fBStop a container:\fR
+.RS 4
+sudo container stop \-n NAME
+.RE
+.PP
+\fBRemove a container:\fR
+.RS 4
+sudo container remove \-n NAME
+.RE
+.PP
+\fBList container on the system:\fR
+.RS 4
+sudo container list
+.RE
+.PP
+\fBShow container version:\fR
+.RS 4
+container version
+.RE
+.sp
+See container(1) for a list of all container commands\&.
+.SH "LINKS"
+.PP
+\fB2016\-02\-24: Systemd vs\&. Docker\fR
+.RS 4
+https://lwn\&.net/Articles/676831/
+.RE
+.PP
+\fB2015\-06\-10: Systemd and containers\fR
+.RS 4
+https://lwn\&.net/Articles/647634/
+.RE
+.PP
+\fB2014\-07\-07: Control groups\fR
+.RS 4
+https://lwn\&.net/Articles/604609/
+.RE
+.PP
+\fB2013\-11\-13: Systemd\-Nspawn is Chroot on Steroids [LinuxCon Europe]\fR
+.RS 4
+https://www\&.youtube\&.com/watch?v=s7LlUs5D9p4
+.RE
+.PP
+\fB2013\-11\-03: Creating containers with systemd\-nspawn\fR
+.RS 4
+https://lwn\&.net/Articles/572957/
+.RE
+.PP
+\fB2013\-02\-06: Systemd lightweight containers\fR
+.RS 4
+https://lwn\&.net/Articles/536033/
+.RE
+.PP
+\fB2013\-01\-04: Namespaces in operation\fR
+.RS 4
+https://lwn\&.net/Articles/531114/
+.RE
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-auto.1 b/share/man/container-auto.1
new file mode 100644
index 0000000..fb1bf3b
--- /dev/null
+++ b/share/man/container-auto.1
@@ -0,0 +1,80 @@
+'\" t
+.\" Title: container-start
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-START" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-auto \- Start/stop all container automatically at boot/shutdown
+.SH "SYNOPSIS"
+.sp
+\fBcontainer auto\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container auto command starts or stops all container on the host system\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-f, \-\-force\fR
+.RS 4
+Removing stray lock file if existing\&.
+.RE
+.PP
+\fB\-s, \-\-start\fR
+.RS 4
+Start all container on the host system\&.
+.RE
+.PP
+\fB\-t, \-\-stop\fR
+.RS 4
+Stop all container on the host system\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBStart all container on the host system:\fR
+.RS 4
+sudo container auto \-\-start
+.RE
+.PP
+\fBStop all container on the host system:\fR
+.RS 4
+sudo container auto \-\-stop
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-console.1 b/share/man/container-console.1
new file mode 100644
index 0000000..bd7f0ff
--- /dev/null
+++ b/share/man/container-console.1
@@ -0,0 +1,67 @@
+'\" t
+.\" Title: container-console
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CONSOLE" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-console \- Attach a console to a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer console\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container console command attaches a console to a container\&.
+.sp
+While \fIcontainer enter\fR bypasses the login prompt and drops to a root shell, the \fIcontainer console\fR command shows a full login prompt where any valid user and password combination can be used\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBAttach console to example\&.net container:\fR
+.RS 4
+sudo container console \-n example\&.net
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-create-curl.1 b/share/man/container-create-curl.1
new file mode 100644
index 0000000..d8f4d67
--- /dev/null
+++ b/share/man/container-create-curl.1
@@ -0,0 +1,165 @@
+'\" t
+.\" Title: container-create-curl
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CREATE\-C" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-create-curl \- Create a Debian based container by downloading a tarball over the network
+.SH "SYNOPSIS"
+.sp
+\fBcontainer create \-s curl\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The curl container creation script uses curl(1) to download a tarball over the network to create a Debian based container\&.
+.sp
+Depending on the tarball this script otherwise creates a pure Debian system with three modificiations:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+hostname is set (container name) in /etc/hostname
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+systemd machine\-id is generated in /etc/machine\-id
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+root password is set (user specified or 16 random characters)
+.RE
+.SH "OPTIONS"
+.sp
+The following script options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.PP
+\fB\-a, \-\-architecture=\fR\fB\fIARCHITECTURE\fR\fR
+.RS 4
+Specify container architecture\&.
+.RE
+.PP
+"\-\-clean*
+.RS 4
+Remove downloaded tarball after successfull container creation\&.
+.RE
+.PP
+\fB\-p, \-\-root\-password=\fR\fB\fIPASSWORD\fR\fR
+.RS 4
+Specify the root password, defaults to a random 16 character password\&.
+.RE
+.PP
+\fB\-\-server=\fR\fB\fISERVER\fR\fR
+.RS 4
+Specify the image server to download from, defaults to
+https://get\&.open\-infrastructure\&.net/system/container/debian\&.
+.RE
+.PP
+\fB\-\-setup=\fR\fB\fISETUP\fR\fR
+.RS 4
+.RE
+.PP
+\fB\-\-system=\fR\fB\fISYSTEM\fR\fR
+.RS 4
+.RE
+.SH "EXAMPLES"
+.PP
+\fBCreate a Debian 9 (stretch) based container with same architecture as the host system:\fR
+.RS 4
+sudo container create \-s curl \-n stretch\&.example\&.net
+.RE
+.PP
+\fBCreate a Debian 9 (stretch) based container with different architecture as the host system:\fR
+.RS 4
+sudo container create \-s curl \-n stretch\-i386\&.example\&.net \(em \-\-system debian\-stretch\-current_i386\&.system\&.tar\&.xz
+.RE
+.SH "FILES"
+.sp
+The following files are used:
+.PP
+\fB/etc/open\-infrastructure/container/config\fR
+.RS 4
+Container configuration files\&.
+.RE
+.PP
+\fB/usr/share/open\-infrastructure/container/scripts\fR
+.RS 4
+Container creation scripts\&.
+.RE
+.PP
+\fB/usr/share/doc/compute\-tools\fR
+.RS 4
+Container documentation\&.
+.RE
+.PP
+\fB/var/lib/machines\fR
+.RS 4
+Container directory\&.
+.RE
+.PP
+\fB/var/cache/open\-infrastructure/container\fR
+.RS 4
+Container cache directory\&.
+.RE
+.SH "CONTAINER IMAGES"
+.sp
+compute\-tools will download tarballs from a server expecting that the images are tarballs with either gzip, lzip, xz, or no compression\&. See container\-images\&.sh as an example on how to create your own container images\&.
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-create-debconf.1 b/share/man/container-create-debconf.1
new file mode 100644
index 0000000..cd15d09
--- /dev/null
+++ b/share/man/container-create-debconf.1
@@ -0,0 +1,180 @@
+'\" t
+.\" Title: container-create-debootstrap
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CREATE\-D" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-create-debconf \- Create an advanced Debian based container with debconf
+.SH "SYNOPSIS"
+.sp
+\fBcontainer create \-s debconf\fR [\fIOPTIONS\fR] \fBcnt cr \-s debconf\fR [\fIOPTIONS\fR]
+.sp
+\fBcontainer create \-s debian\fR [\fIOPTIONS\fR] \fBcnt cr \-s debian\fR [\fIOPTIONS\fR]
+.sp
+\fBcontainer create \-s progress\-linux\fR [\fIOPTIONS\fR] \fBcnt cr \-s progress\-linux\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The debconf container creation script uses debconf(1) to automatically create a Debian based container\&.
+.SS "SCOPE"
+.sp
+Note that this container creation script can do a few things more than just automatically debootstrap based on a preseed file\&. It also allows you to set a root password, configure the network, install certain packages and execute hooks\&.
+.sp
+But: this is \fBnot\fR a replacement for a configuration management system (like ansible, puppet, etc\&.)\&. The intenion of this script is to create the initial container to that extend that a configuration managment system can take over\&.
+.sp
+As an analogy, think of debian\-installer: d\-i sets up your system to make it ready to boot and connect to the network\&. Everything after that is out of scope\&. Same goes for this script\&.
+.SS "FUNCTIONS"
+.sp
+This script performs the following configuration on top of a Debian based system:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+network
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+root password
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+apt repositories
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\&...
+.RE
+.SS "MODES"
+.sp
+This container creation script can be used under two different names: debian and progress\-linux\&.
+.sp
+Alternative, calling it under the debconf name is equal to the debian mode\&.
+.SS "PRESEEDING"
+.sp
+Hierarchy of Preseed Files
+.sp
+The debconf script can be fully preseeded\&. Such preseed files can include one or more preseed files themselfs (currently, only one layer of includes is supported, no nested or recursive includes)\&.
+.sp
+The general rule of \fIthe later preseed file overwrites the earlier\fR applies\&. The debconf script reads the main preseed file (specified either on command line or by debconf selection/input dialog) after any included preseed files in there\&.
+.sp
+That means that debconf values after the include statement in the main preseed file can overwrite any values specified in the included preseed files\&.
+.SH "OPTIONS"
+.sp
+The following script options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.PP
+\fB\-p, \-\-preseed\-file=\fR\fB\fIFILE\fR\fR
+.RS 4
+Specify the preseed file\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBCreate a Debian based container:\fR
+.RS 4
+sudo container create \-s debian \-n debian\&.example\&.net
+.RE
+.PP
+\fBCreate a Progress Linux container:\fR
+.RS 4
+sudo container create \-s progress\-linux \-n progress\&.example\&.net
+.RE
+.SH "FILES"
+.sp
+The following files are used:
+.PP
+\fB/etc/open\-infrastructure/container/config\fR
+.RS 4
+Container configuration files\&.
+.RE
+.PP
+\fB/usr/share/open\-infrastructure/container/scripts\fR
+.RS 4
+Container creation scripts\&.
+.RE
+.PP
+\fB/usr/share/doc/compute\-tools\fR
+.RS 4
+Container documentation\&.
+.RE
+.PP
+\fB/var/lib/machines\fR
+.RS 4
+Container directory\&.
+.RE
+.PP
+\fB/var/cache/open\-infrastructure/container\fR
+.RS 4
+Container cache directory\&.
+.RE
+.PP
+\fB/tmp/compute\-tools\fR
+.RS 4
+Container temporary directory\&.
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-create-debootstrap.1 b/share/man/container-create-debootstrap.1
new file mode 100644
index 0000000..7453171
--- /dev/null
+++ b/share/man/container-create-debootstrap.1
@@ -0,0 +1,128 @@
+'\" t
+.\" Title: container-create-debootstrap
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CREATE\-D" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-create-debootstrap \- Create a basic Debian based container with debootstrap or mmdebstrap
+.SH "SYNOPSIS"
+.sp
+\fBcontainer create \-s debootstrap\fR [\fIOPTIONS\fR] \fBcnt cr \-s debootstrap\fR [\fIOPTIONS\fR]
+.sp
+\fBcontainer create \-s mmdebstrap\fR [\fIOPTIONS\fR] \fBcnt cr \-s mmdebstrap\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The debootstrap container creation script uses debootstrap(8) or mmdebstrap(1) to create a Debian based container\&.
+.sp
+This script creates a pure Debian system with three modificiations:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+apt cache of packages downloaded during debootstrap is cleaned
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+hostname is set (container name) in /etc/hostname
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+root password is set (user specified or 16 random characters)
+.RE
+.SH "OPTIONS"
+.sp
+The following script options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.PP
+\fB\-a, \-\-architecture=\fR\fB\fIARCHITECTURE\fR\fR
+.RS 4
+Specify the Debian architecture, defaults to the host systems architecture\&.
+.RE
+.PP
+\fB\-d, \-\-distribution=\fR\fB\fIDISTRIBUTION\fR\fR
+.RS 4
+Specify the Debian distribution, defaults to stretch\&.
+.RE
+.PP
+\fB\-m, \-\-mirror=\fR\fB\fIMIRROR\fR\fR
+.RS 4
+Specify the Debian mirror, defaults to
+https://deb\&.debian\&.org/debian\&.
+.RE
+.PP
+\fB\-p, \-\-root\-password=\fR\fB\fIPASSWORD\fR\fR
+.RS 4
+Specify the root password, defaults to a random 16 character password\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBCreate a Debian 9 (stretch) based container with same architecture as the host system using debootstrap:\fR
+.RS 4
+sudo container create \-s debootstrap \-n stretch\&.example\&.net
+.RE
+.PP
+\fBCreate a Debian 9 (stretch) based container with different architecture as the host system using mmdebstrap:\fR
+.RS 4
+sudo container create \-s mmdebstrap \-n stretch\-i386\&.example\&.net \(em \-a i386
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-create.1 b/share/man/container-create.1
new file mode 100644
index 0000000..70dabf2
--- /dev/null
+++ b/share/man/container-create.1
@@ -0,0 +1,139 @@
+'\" t
+.\" Title: container-create
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CREATE" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-create \- Create a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer create\fR [\fIOPTIONS\fR] \fBcnt cr\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container\-create command creates a container based on a script\&.
+.SH "OPTIONS"
+.sp
+The following container\-create options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.PP
+\fB\-c, \-\-capability=\fR\fB\fICAPABILITY\fR\fR
+.RS 4
+Specify capabilities to grant, see capabilities(7)\&.
+.RE
+.PP
+\fB\-d, \-\-drop\-capability=\fR\fB\fIDROP_CAPABILITY\fR\fR
+.RS 4
+Specify capabilities to drop, see capabilities(7)\&.
+.RE
+.PP
+\fB\-s, \-\-script=\fR\fB\fISCRIPT\fR\fR
+.RS 4
+Specify container creation script, defaults to debootstrap\&.
+.RE
+.PP
+\fB\-v, \-\-verbose\fR
+.RS 4
+Explain what is being done\&.
+.RE
+.PP
+\fB\-b, \-\-bind=\fR\fB\fIDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\fR\fR
+.RS 4
+Specify container read\-write bind mounts, see systemd\-nspawn(1) \-\-bind option\&.
+.RE
+.PP
+\fB\-\-bind\-ro=\fR\fB\fIDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\fR\fR
+.RS 4
+Specify container read\-only bind mounts, see systemd\-nspawn(1) \-\-bind\-ro option\&.
+.RE
+.PP
+\fB\-\-cnt\-overlay=\fR\fB\fIDIRECTORY_LOWER:DIRECTORY_UPPER:DIRECTORY_WORK:DIRECTORY_MERGED[;DIRECTORY_UPPER:DIRECTORY_LOWER:DIRECTORY_WORK:DIRECTORY_MERGED]\fR\fR
+.RS 4
+Specify container overlay mounts, see Documentation/filesystems/overlayfs\&.txt\&.
+.RE
+.SH "SCRIPTS"
+.sp
+The following container scripts are available:
+.PP
+\fBcurl\fR
+.RS 4
+Basic script to create Debian based container, see container\-create\-curl(1)\&.
+.RE
+.PP
+\fBdebootstrap\fR
+.RS 4
+Basic script to create Debian based container, see container\-create\-debootstrap(1)\&.
+.RE
+.PP
+\fBdebconf\fR
+.RS 4
+Advanced script to automatically create Debian based container, see container\-create\-debconf(1)\&.
+.RE
+.PP
+\fBdefault\fR
+.RS 4
+Symlink (if existing) to a container script which is used if no script was specified\&. On Debian based system this can be managed through update\-alternatives(1), i\&.e\&.
+\fIsudo update\-alternatives \-\-config container_script\fR\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBCreate example\&.net container using curl script:\fR
+.RS 4
+sudo container create \-n example\&.net \-s curl
+.RE
+.PP
+\fBCreate example\&.net container using debootstrap script:\fR
+.RS 4
+sudo container create \-n example\&.net \-s debootstrap
+.RE
+.PP
+\fBCreate example\&.net container using debconf script:\fR
+.RS 4
+sudo container create \-n example\&.net \-s debconf
+.RE
+.PP
+\fBCreate example\&.net container with the default create script and start it:\fR
+.RS 4
+sudo container create,start \-n example\&.net
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-enter.1 b/share/man/container-enter.1
new file mode 100644
index 0000000..fc80fe1
--- /dev/null
+++ b/share/man/container-enter.1
@@ -0,0 +1,67 @@
+'\" t
+.\" Title: container-console
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-CONSOLE" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-enter \- Enter a container namespace
+.SH "SYNOPSIS"
+.sp
+\fBcontainer enter\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container enter enters a container namespace\&.
+.sp
+While \fIcontainer console\fR shows a full login prompt where any valid user and password combination can be used, the \fIcontainer enter\fR command bypasses this and drops to a root shell\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBEnter to example\&.net container namespace:\fR
+.RS 4
+sudo container enter \-n example\&.net
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-key.1 b/share/man/container-key.1
new file mode 100644
index 0000000..4af75af
--- /dev/null
+++ b/share/man/container-key.1
@@ -0,0 +1,80 @@
+'\" t
+.\" Title: container-key
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-KEY" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-key \- Manage GnuPG keyring for container operations
+.SH "SYNOPSIS"
+.sp
+\fBcontainer key\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container key manages the GnuPG keyring for container operations\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-a, \-\-add=\fR\fB\fIKEY\fR\fR
+.RS 4
+Add a key to the keyring\&.
+.RE
+.PP
+\fB\-l, \-\-list\*(Aq\fR
+.RS 4
+List keys in the keyring\&.
+.RE
+.PP
+\fB\-r, \-\-remove=\fR\fB\fIKEY\fR\fR
+.RS 4
+Remove a key from the keyring\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBAdd a key to the keyring:\fR
+.RS 4
+gpg \-\-keyserver hkps://hkps\&.pool\&.sks\-keyservers\&.net \-\-recv 0x1E9B3AED2D9FA8F6 gpg \-\-armor \-\-export 0x1E9B3AED2D9FA8F6 | sudo container key \-\-add \-
+.RE
+.PP
+\fBRemove a key from the keyring:\fR
+.RS 4
+sudo container key \-\-remove 0x1E9B3AED2D9FA8F6
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-limit.1 b/share/man/container-limit.1
new file mode 100644
index 0000000..57258b3
--- /dev/null
+++ b/share/man/container-limit.1
@@ -0,0 +1,120 @@
+'\" t
+.\" Title: container-limit
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-LIMIT" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-limit \- Limit ressources of a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer limit\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container limit command limits ressources available to a container at runtime\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.PP
+\fB\-\-blockio\-device\-weight=\fR\fB\fIDEVICE WEIGHT\fR\fR
+.RS 4
+Specify device specific blockio weight, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-\-blockio\-read\-bandwidth=\fR\fB\fIDEVICE BYTES\fR\fR
+.RS 4
+Specify device specific blockio read bandwidth, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-b, \-\-blockio\-weight=\fR\fB\fIWEIGHT\fR\fR
+.RS 4
+Specify general blockio weight, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-\-blockio\-write\-bandwidth=\fR\fB\fIDEVICE BYTES\fR\fR
+.RS 4
+Specify device specific blockio write bandwidth, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-c, \-\-cpu\-quota=\fR\fB\fIQUOTA\fR\fR
+.RS 4
+Specify CPU quota, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-\-cpu\-shares=\fR\fB\fISHARES\fR\fR
+.RS 4
+Specify CPU shares, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-m, \-\-memory\-limit=\fR\fB\fIBYTES\fR\fR
+.RS 4
+Specify memory limit, see systemd\&.resource\-control(5)\&.
+.RE
+.PP
+\fB\-t, \-\-tasks\-max=\fR\fB\fINUMBER\fR\fR
+.RS 4
+Specify tasks max, see systemd\&.resource\-control(5)\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBSet blockio weight for the example\&.net container:\fR
+.RS 4
+sudo container limit \-n example\&.net \-\-blockio\-weight 100
+.RE
+.PP
+\fBSet CPU quota for the example\&.net container:\fR
+.RS 4
+sudo container limit \-n example\&.net \-\-cpu\-quota 10%
+.RE
+.PP
+\fBSet memory limit for the example\&.net container to 1GB:\fR
+.RS 4
+sudo container limit \-n example\&.net \-\-memory\-limit 1G
+.RE
+.PP
+\fBSet tasks max for the example\&.net container to 100:\fR
+.RS 4
+sudo container limit \-n example\&.net \-\-tasks\-max 100
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-list.1 b/share/man/container-list.1
new file mode 100644
index 0000000..dff50ee
--- /dev/null
+++ b/share/man/container-list.1
@@ -0,0 +1,158 @@
+'\" t
+.\" Title: container-list
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-LIST" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-list \- List container on the system
+.SH "SYNOPSIS"
+.sp
+\fBcontainer list\fR [\fIOPTIONS\fR] \fBcontainer ls\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container list command lists container on the system\&.
+.SH "OPTIONS"
+.sp
+The following container options are available, defaults to \fB\-\-started \-\-stopped\fR:
+.PP
+\fB\-a, \-\-all\fR
+.RS 4
+List all available container (started, stopped, and other)\&.
+.RE
+.PP
+\fB\-\-csv\-separator=\fR\fB\fISEPARATOR\fR\fR
+.RS 4
+Specify custom CSV separator, defaults to
+\fI,\fR\&.
+.RE
+.PP
+\fB\-f, \-\-format=\fR\fB\fIFORMAT\fR\fR
+.RS 4
+Use format to list container\&. Currently available formats are
+\fIcli\fR
+(default),
+\fIcsv\fR,
+\fIjson\fR,
+\fInwdiag\fR,
+\fIshell\fR,
+\fIsh\fR,
+\fIyaml\fR, or
+\fIxml\fR\&.
+.RE
+.PP
+\fB\-h, \-\-host=\fR\fB\fIHOSTNAME\fR\fR
+.RS 4
+List only container that are enabled for automatic start on the specified hostname\&. Defaults to list containers of the local system only\&. Using
+\fIall\fR
+shows all container regardless of any automatic start configuration\&.
+.RE
+.PP
+\fB\-\-nwdiag\-color=\fR\fB\fICOLOR\fR\fR
+.RS 4
+Specify custom nwdiag color for the host box, defaults to
+\fI#3465a4\fR\&.
+.RE
+.PP
+\fB\-\-nwdiag\-label=\fR\fB\fILABEL\fR\fR
+.RS 4
+Specify custom nwdiag label for the diagram, defaults to empty\&.
+.RE
+.PP
+\fB\-o, \-\-other\fR
+.RS 4
+List only container that are not enable for automatic start on the current system\&.
+.RE
+.PP
+\fB\-s, \-\-started\fR
+.RS 4
+List only started container\&.
+.RE
+.PP
+\fB\-t, \-\-stopped\fR
+.RS 4
+List only stopped container\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBList all started and stopped containers of the local system:\fR
+.RS 4
+sudo container list
+.RE
+.PP
+\fBList all started and other containers:\fR
+.RS 4
+sudo container list \-s \-o
+.RE
+.PP
+\fBCreate a CSV export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f csv
+.RE
+.PP
+\fBCreate a JSON export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f json
+.RE
+.PP
+\fBCreate a nwdiag export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f nwdiag
+.RE
+.PP
+\fBCreate a SVG image via nwdiag of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f nwdiag | nwdiag \-T svg \-o cnt\-list\&.svg \-
+.RE
+.PP
+\fBCreate a shell export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f shell sudo container list \-f sh
+.RE
+.PP
+\fBCreate a YAML export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f yaml
+.RE
+.PP
+\fBCreate a XML export of all started and stopped containers:\fR
+.RS 4
+sudo container list \-f xml
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-log.1 b/share/man/container-log.1
new file mode 100644
index 0000000..81ae9db
--- /dev/null
+++ b/share/man/container-log.1
@@ -0,0 +1,93 @@
+'\" t
+.\" Title: container-log
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-LOG" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-log \- Show container log
+.SH "SYNOPSIS"
+.sp
+\fBcontainer log\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container log command shows the container log\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-d, \-\-date\fR
+.RS 4
+Show only log entries of the specified date as
+\fIYYYY\-MM\-DD\fR
+or a date range like
+\fItoday\-7\fR\&.
+.RE
+.PP
+\fB\-n, \-\-name\fR
+.RS 4
+Show only log entries for the specified container\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBShow all log entries:\fR
+.RS 4
+sudo container log
+.RE
+.PP
+\fBShow only log entries of today:\fR
+.RS 4
+sudo container log \-d today
+.RE
+.PP
+\fBShow only log entries of yesterday:\fR
+.RS 4
+sudo container log \-d yesterday
+.RE
+.PP
+\fBShow all log entries of the example\&.net container:\fR
+.RS 4
+sudo container log \-n example\&.net
+.RE
+.PP
+\fBShow only log entries of the example\&.net container of the last 30 days:\fR
+.RS 4
+sudo container log \-d today\-30 \-n example\&.net
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-move.1 b/share/man/container-move.1
new file mode 100644
index 0000000..641b8af
--- /dev/null
+++ b/share/man/container-move.1
@@ -0,0 +1,80 @@
+'\" t
+.\" Title: container-remove
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-REMOVE" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-move \- Rename a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer move\fR [\fIOPTIONS\fR] \fBcnt mv\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container move commands renames a container\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-new=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify new container name\&.
+.RE
+.PP
+\fB\-f, \-\-force\fR
+.RS 4
+Do not prompt before moving\&.
+.RE
+.PP
+\fB\-o, \-\-old\fR
+.RS 4
+Specify old container name\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBRename example\&.net container to example\&.org:\fR
+.RS 4
+sudo container move \-n example\&.org \-o example\&.net
+.RE
+.PP
+\fBRename example\&.net container to example\&.org without prompt:\fR
+.RS 4
+sudo container move \-n example\&.org \-o example\&.net \-f
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-remove.1 b/share/man/container-remove.1
new file mode 100644
index 0000000..6df0d87
--- /dev/null
+++ b/share/man/container-remove.1
@@ -0,0 +1,97 @@
+'\" t
+.\" Title: container-remove
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-REMOVE" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-remove \- Remove a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer remove\fR [\fIOPTIONS\fR] \fBcnt rm\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container remove command removes a container\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&. Specifying
+\fIALL\fR
+will remove all stopped container\&.
+.RE
+.PP
+\fB\-\-allow\-stop\fR
+.RS 4
+Stop container prior removal\&.
+.RE
+.PP
+\fB\-f, \-\-force\fR
+.RS 4
+Do not prompt before removal\&.
+.RE
+.PP
+\fB\-v, \-\-verbose\fR
+.RS 4
+Explain what is being done\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBRemove example\&.net container from the system:\fR
+.RS 4
+sudo container remove \-n example\&.net
+.RE
+.PP
+\fBRemove example\&.net container from the system without prompt:\fR
+.RS 4
+sudo container remove \-n example\&.net \-f
+.RE
+.PP
+\fBRemove a running container from the system, without prompt:\fR
+.RS 4
+sudo container remove \-n example\&.net \-f \-\-allow\-stop
+.RE
+.PP
+\fBRemove all container:\fR
+.RS 4
+sudo container remove \-n ALL
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-restart.1 b/share/man/container-restart.1
new file mode 100644
index 0000000..b777605
--- /dev/null
+++ b/share/man/container-restart.1
@@ -0,0 +1,72 @@
+'\" t
+.\" Title: container-restart
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-RESTART" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-restart \- Restart a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer restart\fR [\fIOPTIONS\fR] \fBcnt rs\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container restart command restarts a container\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&. Specifying
+\fIALL\fR
+will restart all started container\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBRestart example\&.net container:\fR
+.RS 4
+sudo container restart \-n example\&.net
+.RE
+.PP
+\fBRestart all container:\fR
+.RS 4
+sudo container restart \-n ALL
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-shell.1 b/share/man/container-shell.1
new file mode 100644
index 0000000..b26e66f
--- /dev/null
+++ b/share/man/container-shell.1
@@ -0,0 +1,132 @@
+'\" t
+.\" Title: container
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-shell \- Manage systemd\-nspawn containers (shell)
+.SH "SYNOPSIS"
+.sp
+\fBcontainer\-shell\fR
+.SH "DESCRIPTION"
+.sp
+compute\-tools provides the system integration for managing containers using systemd\-nspawn\&.
+.SH "COMMANDS"
+.sp
+All container commands are available, see container(1)\&. Additionally, the following commands are specific to container\-shell:
+.PP
+\fBabout:\fR
+.RS 4
+shows introduction (manpage)\&.
+.RE
+.PP
+\fBhelp:\fR
+.RS 4
+shows available commands within the container\-shell\&.
+.RE
+.PP
+\fBhelp COMMAND:\fR
+.RS 4
+shows help (manpage) for a specific container command\&.
+.RE
+.PP
+\fBlogout\fR, \fBexit:\fR
+.RS 4
+exits container\-shell\&.
+.RE
+.SH "USAGE"
+.sp
+Although the container\-shell can be started from a running system like any other program, the main intend is to use the container\-shell via SSH\&. That way otherwise unprivileged users have possibility to manage containers without needing a regular shell login on the container server\&.
+.sp
+For usage over SSH a unprivileged user should be created:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+sudo adduser \-\-gecos "compute\-tools,,," \e
+ \-\-home /var/lib/open\-infrastructure/container\-shell \e
+ \-\-shell /usr/bin/container\-shell
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The container\-shell can then be allowed for specific SSH keys via /var/lib/open\-infrastructure/container\-shell/\&.ssh/authorized_keys like so:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command="/usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,no\-agent\-forwarding,no\-pty ssh\-ed25519 [\&.\&.\&.]
+.fi
+.if n \{\
+.RE
+.\}
+.SH "RESTRICTED SHELL"
+.sp
+The container\-shell by default grants any user that has access to it to use all available container commands\&.
+.sp
+Through two corresponding environment variables users can be allowed or disallowed to use specific container commands\&. In connection with SSH this makes it possible to grant certain SSH keys (and by that, users) privileges to operate container servers without having to give them root access, a login shell at all and prevents them from doing things they are not trusted to do\&.
+.sp
+Example (blacklisting): In order to allow all commands except for removing and stopping containers, the following variable can be used:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command="CONTAINER_COMMANDS_DISABLE=\*(Aqremove stop\*(Aq /usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,no\-agent\-forwarding,no\-pty ssh\-rsa [\&.\&.\&.]
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Example (whitelisting): The other way around works too\&. To disallow all commands except for listing containers and showing the compute\-tools version, the following variable can be used:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command="CONTAINER_COMMANDS_ENABLE=\*(Aqlist version\*(Aq /usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,no\-agent\-forwarding,no\-pty ssh\-rsa [\&.\&.\&.]
+.fi
+.if n \{\
+.RE
+.\}
+.SH "SEE ALSO"
+.sp
+machinectl(1), systemd\-nspawn(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-start.1 b/share/man/container-start.1
new file mode 100644
index 0000000..d856312
--- /dev/null
+++ b/share/man/container-start.1
@@ -0,0 +1,77 @@
+'\" t
+.\" Title: container-start
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-START" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-start \- Start a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer start\fR [\fIOPTIONS\fR] \fBcnt s\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container start command starts a container\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&. Specifying
+\fIALL\fR
+will start all stopped container\&.
+.RE
+.PP
+\fB\-f, \-\-force\*(Aq\fR
+.RS 4
+Removing stray lock file if existing\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBStart example\&.net container:\fR
+.RS 4
+sudo container start \-n example\&.net
+.RE
+.PP
+\fBStart all container:\fR
+.RS 4
+sudo container start \-n ALL
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-status.1 b/share/man/container-status.1
new file mode 100644
index 0000000..1cab479
--- /dev/null
+++ b/share/man/container-status.1
@@ -0,0 +1,65 @@
+'\" t
+.\" Title: container-status
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-STATUS" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-status \- Show container status
+.SH "SYNOPSIS"
+.sp
+\fBcontainer status\fR [\fIOPTIONS\fR] \fBcnt st\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container\-status command displays the status of a container\&.
+.SH "OPTIONS"
+.sp
+The following container\-status options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBshow status of example\&.net container:\fR
+.RS 4
+sudo container status \-n example\&.net
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-stop.1 b/share/man/container-stop.1
new file mode 100644
index 0000000..24fc7f5
--- /dev/null
+++ b/share/man/container-stop.1
@@ -0,0 +1,82 @@
+'\" t
+.\" Title: container-stop
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-STOP" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-stop \- Stop a container
+.SH "SYNOPSIS"
+.sp
+\fBcontainer stop\fR [\fIOPTIONS\fR] \fBcnt t\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container stop command stops a container by running the proper shutdown sequence\&.
+.SH "OPTIONS"
+.sp
+The following container options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&. Specifying
+\fIALL\fR
+will stop all started container\&.
+.RE
+.PP
+\fB\-f, \-\-force\fR
+.RS 4
+Instead of running the proper shutdown sequence, terminate all processes of the container imediatly\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBShutdown example\&.net container:\fR
+.RS 4
+sudo container stop \-n example\&.net
+.RE
+.PP
+\fBImmediately stop example\&.net container:\fR
+.RS 4
+sudo container stop \-n example\&.net \-f
+.RE
+.PP
+\fBStop all container:\fR
+.RS 4
+sudo container stop \-n ALL
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-top.1 b/share/man/container-top.1
new file mode 100644
index 0000000..617da64
--- /dev/null
+++ b/share/man/container-top.1
@@ -0,0 +1,65 @@
+'\" t
+.\" Title: container-top
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-TOP" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-top \- Dynamic list container on the system
+.SH "SYNOPSIS"
+.sp
+\fBcontainer top\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container top command dynamically lists container on the system\&.
+.SH "OPTIONS"
+.sp
+The following container options are available, defaults to \fB\-\-delay 1\fR:
+.PP
+\fB\-d, \-\-delay=\fR\fB\fISECONDS[\&.TENTHS]\fR\fR
+.RS 4
+Specifies the delay between screen updates, defaults to 1\&.
+.RE
+.SH "EXAMPLES"
+.PP
+\fBDynamically list containers of the local system:\fR
+.RS 4
+sudo container top
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container-version.1 b/share/man/container-version.1
new file mode 100644
index 0000000..03edb07
--- /dev/null
+++ b/share/man/container-version.1
@@ -0,0 +1,60 @@
+'\" t
+.\" Title: container-version
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER\-VERSION" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container-version \- Show container version
+.SH "SYNOPSIS"
+.sp
+\fBcontainer version\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+The container version command shows the container version number\&.
+.SH "OPTIONS"
+.sp
+This command has no options\&.
+.SH "EXAMPLES"
+.PP
+\fBShow container version:\fR
+.RS 4
+container version
+.RE
+.SH "SEE ALSO"
+.sp
+compute\-tools(7), container(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/man/container.1 b/share/man/container.1
new file mode 100644
index 0000000..2c405f3
--- /dev/null
+++ b/share/man/container.1
@@ -0,0 +1,185 @@
+'\" t
+.\" Title: container
+.\" Author: [see the "AUTHORS" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 20190304
+.\" Manual: Open Infrastructure
+.\" Source: compute-tools
+.\" Language: English
+.\"
+.TH "CONTAINER" "1" "20190304" "compute\-tools" "Open Infrastructure"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+container \- Manage systemd\-nspawn containers
+.SH "SYNOPSIS"
+.sp
+\fBcontainer\fR \fICOMMAND\fR [\fIOPTIONS\fR] \fBcontainer\fR \fICOMMAND1\fR,\fICOMMAND2\fR,\&... \fICOMMANDn\fR
+.SH "DESCRIPTION"
+.sp
+compute\-tools provides the system integration for managing containers using systemd\-nspawn\&.
+.SH "OPTIONS"
+.sp
+The following container common options are available:
+.PP
+\fB\-n, \-\-name=\fR\fB\fINAME\fR\fR
+.RS 4
+Specify container name\&.
+.RE
+.SH "COMMANDS"
+.sp
+The following container commands are available:
+.PP
+\fBcreate\fR
+.RS 4
+Create a new container, see container\-create(1)\&.
+.RE
+.PP
+\fBstart\fR
+.RS 4
+Start a container, see container\-start(1)\&.
+.RE
+.PP
+\fBrestart\fR
+.RS 4
+Restart a container, see container\-restart(1)\&.
+.RE
+.PP
+\fBstop\fR
+.RS 4
+Stop a container, see container\-stop(1)\&.
+.RE
+.PP
+\fBremove\fR
+.RS 4
+Remove a container, see container\-remove(1)\&.
+.RE
+.PP
+\fBmove\fR
+.RS 4
+Rename a container, see container\-move(1)\&.
+.RE
+.PP
+\fBconsole\fR
+.RS 4
+Attach console to a container, see container\-console(1)\&.
+.RE
+.PP
+\fBenter\fR
+.RS 4
+Enter a container namespace, see container\-enter(1)\&.
+.RE
+.PP
+\fBkey\fR
+.RS 4
+Manage GnuPG keyring for container operations, see container\-key(1)\&.
+.RE
+.PP
+\fBlimit\fR
+.RS 4
+Limit ressources of a container, see container\-limit(1)\&.
+.RE
+.PP
+\fBlist\fR
+.RS 4
+List container on the system, see container\-list(1)\&.
+.RE
+.PP
+\fBlog\fR
+.RS 4
+Show container log, see container\-log(1)\&.
+.RE
+.PP
+\fBstatus\fR
+.RS 4
+Show container status, see container\-status(1)\&.
+.RE
+.PP
+\fBtop\fR
+.RS 4
+Dynamic list of container on the system, see container\-top(1)\&.
+.RE
+.PP
+\fBversion\fR
+.RS 4
+Show container version, see container\-version(1)\&.
+.RE
+.SH "FILES"
+.sp
+The following files are used:
+.PP
+\fB/etc/open\-infrastructure/container\fR
+.RS 4
+Container configuration files\&.
+.RE
+.PP
+\fB/usr/bin/container\fR, \fB/usr/bin/cnt\fR
+.RS 4
+Container program\&.
+.RE
+.PP
+\fB/usr/bin/container\-shell\fR, \fB/usr/bin/cntsh\fR
+.RS 4
+Container shell program\&.
+.RE
+.PP
+\fB/usr/lib/open\-infrastructure/container\fR
+.RS 4
+Container commands\&.
+.RE
+.PP
+\fB/usr/share/open\-infrastructure/container\fR
+.RS 4
+Container shared data\&.
+.RE
+.PP
+\fB/usr/share/doc/compute\-tools\fR
+.RS 4
+Container documentation files\&.
+.RE
+.PP
+\fB/var/cache/open\-infrastructure/container\fR
+.RS 4
+Container cache directory\&.
+.RE
+.PP
+\fB/var/lib/machines\fR
+.RS 4
+Container root directory\&.
+.RE
+.PP
+\fB/var/log/open\-infrastructure\fR
+.RS 4
+Container log files\&.
+.RE
+.SH "SEE ALSO"
+.sp
+machinectl(1), systemd\-nspawn(1)\&.
+.SH "HOMEPAGE"
+.sp
+More information about compute\-tools and the Open Infrastructure project can be found on the homepage at https://open\-infrastructure\&.net\&.
+.SH "CONTACT"
+.sp
+Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List <software@lists\&.open\-infrastructure\&.net>\&.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs\&.debian\&.org\&.
+.SH "AUTHORS"
+.sp
+compute\-tools were written by Daniel Baumann <daniel\&.baumann@open\-infrastructure\&.net> and others\&.
diff --git a/share/scripts/debconf b/share/scripts/debconf
index fbabab4..46f0381 100755
--- a/share/scripts/debconf
+++ b/share/scripts/debconf
@@ -139,15 +139,6 @@ Chroot ()
${@}
}
-CIDR ()
-{
- x=${1##*255.}
- set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*}
-
- x=${1%%$3*}
- echo $(( $2 + (${#x}/4) ))
-}
-
Upgrade_system ()
{
DIRECTORY="${1}"
@@ -474,11 +465,14 @@ EOF
if [ -n "${DIG}" ]
then
- IPV4_ADDRESS1="$(${DIG} +short ${NAME} | tail -n1)"
+ IPV4_ADDRESS1="$(${DIG} A +short ${NAME} | tail -n1)"
IPV4_ADDRESS1_PART1="$(echo ${IPV4_ADDRESS1} | cut -d. -f1)"
IPV4_ADDRESS1_PART2="$(echo ${IPV4_ADDRESS1} | cut -d. -f2)"
IPV4_ADDRESS1_PART3="$(echo ${IPV4_ADDRESS1} | cut -d. -f3)"
IPV4_ADDRESS1_PART4="$(echo ${IPV4_ADDRESS1} | cut -d. -f4)"
+
+ IPV6_ADDRESS1="$(${DIG} AAAA +short ${NAME} | tail -n1)"
+ # TODO: address parts
fi
sed -e "s|@NAME@|${NAME}|g" \
@@ -487,6 +481,7 @@ EOF
-e "s|@IPV4_ADDRESS1_PART2@|${IPV4_ADDRESS1_PART2}|g" \
-e "s|@IPV4_ADDRESS1_PART3@|${IPV4_ADDRESS1_PART3}|g" \
-e "s|@IPV4_ADDRESS1_PART4@|${IPV4_ADDRESS1_PART4}|g" \
+ -e "s|@IPV6_ADDRESS1@|${IPV6_ADDRESS1}|g" \
"${FILE}" >> "${DIRECTORY}/preseed.cfg"
done
@@ -631,27 +626,50 @@ Configure_network ()
fi
# Create /etc/hosts
- case "${NETWORK1_IPV4_METHOD}" in
- none|dhcp)
+ rm -f "${DIRECTORY}/etc/hosts.tmp"
-cat > "${DIRECTORY}/etc/hosts.tmp" << EOF
-127.0.0.1 localhost ${NAME}
+ if [ -n "${NETWORK1_IPV4_ADDRESS}" ]
+ then
-# The following lines are desirable for IPv6 capable hosts
-::1 ip6-localhost ip6-loopback
-fe00::0 ip6-localnet
-ff00::0 ip6-mcastprefix
-ff02::1 ip6-allnodes
-ff02::2 ip6-allrouters
+cat >> "${DIRECTORY}/etc/hosts.tmp" << EOF
+${NETWORK1_IPV4_ADDRESS} ${NAME}
EOF
- ;;
+ fi
+
+ if [ -n "${NETWORK1_IPV6_ADDRESS}" ]
+ then
+
+cat >> "${DIRECTORY}/etc/hosts.tmp" << EOF
+${NETWORK1_IPV6_ADDRESS} ${NAME}
+EOF
- static)
+ fi
+
+ if [ -n "${NETWORK1_IPV4_ADDRESS}" ] || [ -n "${NETWORK1_IPV6_ADDRESS}" ]
+ then
+ echo >> "${DIRECTORY}/etc/hosts.tmp"
+ fi
+
+ if [ -z "${NETWORK1_IPV4_ADDRESS}" ] && [ -z "${NETWORK1_IPV6_ADDRESS}" ]
+ then
+ # localhost only
+
+cat > "${DIRECTORY}/etc/hosts.tmp" << EOF
+127.0.0.1 localhost ${NAME}
+::1 localhost ${NAME}
+EOF
+
+ else
cat > "${DIRECTORY}/etc/hosts.tmp" << EOF
127.0.0.1 localhost
-${NETWORK1_IPV4_ADDRESS} ${NAME}
+::1 localhost
+EOF
+
+ fi
+
+cat >> "${DIRECTORY}/etc/hosts.tmp" << EOF
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
@@ -661,9 +679,6 @@ ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF
- ;;
- esac
-
mv "${DIRECTORY}/etc/hosts.tmp" "${DIRECTORY}/etc/hosts"
}
@@ -684,54 +699,66 @@ Configure_systemd_networkd ()
eval IPV4_POST_UP="$`echo NETWORK${NUMBER}_IPV4_POST_UP`"
eval IPV4_POST_DOWN="$`echo NETWORK${NUMBER}_IPV4_POST_DOWN`"
- if [ -z "${IPV4_METHOD}" ]
- then
- continue
- fi
+ eval IPV6_COMMENT="$`echo NETWORK${NUMBER}_IPV6_COMMENT`"
+ eval IPV6_METHOD="$`echo NETWORK${NUMBER}_IPV6_METHOD`"
+ eval IPV6_ADDRESS="$`echo NETWORK${NUMBER}_IPV6_ADDRESS`"
+ eval IPV6_GATEWAY="$`echo NETWORK${NUMBER}_IPV6_GATEWAY`"
+ eval IPV6_NETMASK="$`echo NETWORK${NUMBER}_IPV6_NETMASK`"
+ eval IPV6_POST_UP="$`echo NETWORK${NUMBER}_IPV6_POST_UP`"
+ eval IPV6_POST_DOWN="$`echo NETWORK${NUMBER}_IPV6_POST_DOWN`"
- IPV4_SUFFIX="$(CIDR ${IPV4_NETMASK})"
- IPV4_CIDR="${IPV4_ADDRESS}/${IPV4_SUFFIX}"
+ if [ "${IPV4_METHOD}" != "none" ] || [ "${IPV6_METHOD}" != "none" ]
+ then
cat > "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
[Match]
Name=eno${NUMBER}
+EOF
+
+ fi
+
+ if [ -n "${IPV4_METHOD}" ] && [ "${IPV4_METHOD}" != "none" ]
+ then
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
[Network]
EOF
- if [ -n "${IPV4_COMMENT}" ]
- then
- echo "Description=${IPV4_COMMENT}" >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network"
- fi
+ if [ -n "${IPV4_COMMENT}" ]
+ then
+ echo "Description=${IPV4_COMMENT}" >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network"
+ fi
- case "${IPV4_METHOD}" in
- dhcp)
+ case "${IPV4_METHOD}" in
+ dhcp)
cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
DHCP=ipv4
EOF
- ;;
+ ;;
- static)
+ static)
cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
DHCP=no
-Address=${IPV4_CIDR}
+Address=${IPV4_ADDRESS}/${IPV4_NETMASK}
EOF
- if [ -n "${IPV4_GATEWAY}" ]
- then
+ if [ -n "${IPV4_GATEWAY}" ]
+ then
cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
Gateway=${IPV4_GATEWAY}
EOF
- fi
- esac
+ fi
+ ;;
+ esac
- if [ -n "${IPV4_POST_UP}" ]
- then
+ if [ -n "${IPV4_POST_UP}" ]
+ then
cat > "${DIRECTORY}/etc/systemd/system/cnt-ipv4-post-up-eno${NUMBER}.service" << EOF
[Unit]
@@ -747,11 +774,11 @@ ExecStart=/bin/sh -c "${IPV4_POST_UP}"
WantedBy=multi-user.target
EOF
- chroot "${DIRECTORY}" systemctl enable cnt-ipv4-post-up-eno${NUMBER}.service
- fi
+ chroot "${DIRECTORY}" systemctl enable cnt-ipv4-post-up-eno${NUMBER}.service
+ fi
- if [ -n "${IPV4_POST_DOWN}" ]
- then
+ if [ -n "${IPV4_POST_DOWN}" ]
+ then
cat > "${DIRECTORY}/etc/systemd/system/cnt-ipv4-post-down-eno${NUMBER}.service" << EOF
[Unit]
@@ -767,7 +794,90 @@ ExecStart=/bin/sh -c "${IPV4_POST_DOWN}"
WantedBy=multi-user.target
EOF
- chroot "${DIRECTORY}" systemctl enable cnt-ipv4-post-down-eno${NUMBER}.service
+ chroot "${DIRECTORY}" systemctl enable cnt-ipv4-post-down-eno${NUMBER}.service
+ fi
+ fi
+
+ if [ -n "${IPV6_METHOD}" ] && [ "${IPV6_METHOD}" != "none" ]
+ then
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+
+[Network]
+EOF
+
+ if [ -n "${IPV6_COMMENT}" ]
+ then
+ echo "Description=${IPV6_COMMENT}" >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network"
+ fi
+
+ case "${IPV6_METHOD}" in
+ dhcp)
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+DHCP=ipv6
+EOF
+
+ ;;
+
+ static)
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+DHCP=no
+Ipv6AcceptRA=no
+Address=${IPV6_ADDRESS}/${IPV6_NETMASK}
+EOF
+
+ if [ -n "${IPV6_GATEWAY}" ]
+ then
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+Gateway=${IPV6_GATEWAY}
+EOF
+
+ fi
+ ;;
+ esac
+
+ if [ -n "${IPV6_POST_UP}" ]
+ then
+
+cat > "${DIRECTORY}/etc/systemd/system/cnt-ipv6-post-up-eno${NUMBER}.service" << EOF
+[Unit]
+Description=${SOFTWARE} IPV6_POST_UP
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=oneshot
+ExecStart=/bin/sh -c "${IPV6_POST_UP}"
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+ chroot "${DIRECTORY}" systemctl enable cnt-ipv6-post-up-eno${NUMBER}.service
+ fi
+
+ if [ -n "${IPV6_POST_DOWN}" ]
+ then
+
+cat > "${DIRECTORY}/etc/systemd/system/cnt-ipv6-post-down-eno${NUMBER}.service" << EOF
+[Unit]
+Description=${SOFTWARE} IPV6_POST_DOWN
+After=network.target
+Wants=network.target
+
+[Service]
+Type=oneshot
+ExecStart=/bin/sh -c "${IPV6_POST_DOWN}"
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+ chroot "${DIRECTORY}" systemctl enable cnt-ipv6-post-down-eno${NUMBER}.service
+ fi
fi
NUMBER="$((${NUMBER} + 1))"
@@ -796,8 +906,9 @@ Commands ()
for NUMBER in $(seq 2 ${NETWORK_NUMBER})
do
eval IPV4_METHOD="$`echo NETWORK${NUMBER}_IPV4_METHOD`"
+ eval IPV6_METHOD="$`echo NETWORK${NUMBER}_IPV6_METHOD`"
- if [ -z "${IPV4_METHOD}" ]
+ if [ -z "${IPV4_METHOD}" ] && [ -z "${IPV6_METHOD}" ]
then
continue
fi
diff --git a/share/scripts/debconf.d/0002-preseed-debconf b/share/scripts/debconf.d/0002-preseed-debconf
index 9aca6bf..8877654 100755
--- a/share/scripts/debconf.d/0002-preseed-debconf
+++ b/share/scripts/debconf.d/0002-preseed-debconf
@@ -83,11 +83,13 @@ do
if [ -n "${DIG}" ]
then
- IPV4_ADDRESS1="$(${DIG} +short ${NAME} | tail -n1)"
+ IPV4_ADDRESS1="$(${DIG} A +short ${NAME} | tail -n1)"
IPV4_ADDRESS1_PART1="$(echo ${IPV4_ADDRESS1} | cut -d. -f1)"
IPV4_ADDRESS1_PART2="$(echo ${IPV4_ADDRESS1} | cut -d. -f2)"
IPV4_ADDRESS1_PART3="$(echo ${IPV4_ADDRESS1} | cut -d. -f3)"
IPV4_ADDRESS1_PART4="$(echo ${IPV4_ADDRESS1} | cut -d. -f4)"
+
+ IPV6_ADDRESS1="$(${DIG} AAAA +short ${NAME} | tail -n1)"
fi
sed -e "s|@NAME@|${NAME}|g" \
@@ -96,6 +98,7 @@ do
-e "s|@IPV4_ADDRESS1_PART2@|${IPV4_ADDRESS1_PART2}|g" \
-e "s|@IPV4_ADDRESS1_PART3@|${IPV4_ADDRESS1_PART3}|g" \
-e "s|@IPV4_ADDRESS1_PART4@|${IPV4_ADDRESS1_PART4}|g" \
+ -e "s|@IPV6_ADDRESS1@|${IPV6_ADDRESS1}|g" \
"${DEBCONF_PRESEED_FILE}" > "${DIRECTORY}/preseed.cfg"
# Apply user specified preseed files
diff --git a/share/scripts/debconf.d/0003-debconf b/share/scripts/debconf.d/0003-debconf
index 684261a..02f80a6 100755
--- a/share/scripts/debconf.d/0003-debconf
+++ b/share/scripts/debconf.d/0003-debconf
@@ -674,19 +674,27 @@ Network_defaults ()
NETWORK1_VETH="${NETWORK1_VETH:-$VETH_NAME}"
NETWORK1_BRIDGE="${NETWORK1_BRIDGE:-bridge0}"
+
NETWORK1_IPV4_METHOD="${NETWORK1_IPV4_METHOD:-dhcp}"
NETWORK1_IPV4_ADDRESS="${NETWORK1_IPV4_ADDRESS:-192.168.1.2}"
- NETWORK1_IPV4_NETMASK="${NETWORK1_IPV4_NETMASK:-255.255.255.0}"
+ NETWORK1_IPV4_NETMASK="${NETWORK1_IPV4_NETMASK:-24}"
+
+ NETWORK1_IPV6_METHOD="${NETWORK1_IPV6_METHOD:-none}"
+ NETWORK1_IPV6_ADDRESS="${NETWORK1_IPV6_ADDRESS:-fc00::2}"
+ NETWORK1_IPV6_NETMASK="${NETWORK1_IPV6_NETMASK:-7}"
- if [ "${NETWORK1_IPV4_METHOD}" = "static" ] && [ -e /etc/resolv.conf ]
+ if [ "${NETWORK1_IPV4_METHOD}" = "static" ] || [ "${NETWORK1_IPV6_METHOD}" = "static" ]
then
- NAMESERVER_SERVER="${NAMESERVER_SERVER:-$(if [ -e /etc/resolv.conf ]; then awk '/^nameserver / {$1=""; print $0}' /etc/resolv.conf; fi)}"
- # Workaround to get rid of newlines since debconf can not handle multiline return value in assignments
- NAMESERVER_SERVER="$(echo ${NAMESERVER_SERVER})"
+ if [ -e /etc/resolv.conf ]
+ then
+ NAMESERVER_SERVER="${NAMESERVER_SERVER:-$(awk '/^nameserver / {$1=""; print $0}' /etc/resolv.conf)}"
+ # Workaround to get rid of newlines since debconf can not handle multiline return value in assignments
+ NAMESERVER_SERVER="$(echo ${NAMESERVER_SERVER})"
- NAMESERVER_DOMAIN="${NAMESERVER_DOMAIN:-$(if [ -e /etc/resolv.conf ]; then awk '/^domain / {$1=""; print $0}' /etc/resolv.conf; fi)}"
- NAMESERVER_SEARCH="${NAMESERVER_SEARCH:-$(if [ -e /etc/resolv.conf ]; then awk '/^search / {$1=""; print $0}' /etc/resolv.conf; fi)}"
- NAMESERVER_OPTIONS="${NAMESERVER_OPTIONS:-$(if [ -e /etc/resolv.conf ]; then awk '/^options / {$1=""; print $0}' /etc/resolv.conf; fi)}"
+ NAMESERVER_DOMAIN="${NAMESERVER_DOMAIN:-$(awk '/^domain / {$1=""; print $0}' /etc/resolv.conf)}"
+ NAMESERVER_SEARCH="${NAMESERVER_SEARCH:-$(awk '/^search / {$1=""; print $0}' /etc/resolv.conf)}"
+ NAMESERVER_OPTIONS="${NAMESERVER_OPTIONS:-$(awk '/^options / {$1=""; print $0}' /etc/resolv.conf)}"
+ fi
fi
}
@@ -719,6 +727,27 @@ Network ()
db_get container/network1/ipv4-post-down
NETWORK1_IPV4_POST_DOWN="${RET}" # string (w/ empty)
+ db_get container/network1/ipv6-method
+ NETWORK1_IPV6_METHOD="${RET}" # select
+
+ db_get container/network1/ipv6-comment
+ NETWORK1_IPV6_COMMENT="${RET}" # string (w/ empty)
+
+ db_get container/network1/ipv6-address
+ NETWORK1_IPV6_ADDRESS="${RET}" # string (w/o empty)
+
+ db_get container/network1/ipv6-gateway
+ NETWORK1_IPV6_GATEWAY="${RET}" # string (w/ empty)
+
+ db_get container/network1/ipv6-netmask
+ NETWORK1_IPV6_NETMASK="${RET}" # string (w/o empty)
+
+ db_get container/network1/ipv6-post-up
+ NETWORK1_IPV6_POST_UP="${RET}" # string (w/ empty)
+
+ db_get container/network1/ipv6-post-down
+ NETWORK1_IPV6_POST_DOWN="${RET}" # string (w/ empty)
+
db_get container/nameserver/server
NAMESERVER_SERVER="${RET}" # string (w/ empty)
@@ -760,6 +789,27 @@ Network ()
db_set container/network1/ipv4-post-down "${NETWORK1_IPV4_POST_DOWN}"
db_fset container/network1/ipv4-post-down seen false
+ db_set container/network1/ipv6-method "${NETWORK1_IPV6_METHOD}"
+ db_fset container/network1/ipv6-method seen false
+
+ db_set container/network1/ipv6-comment "${NETWORK1_IPV6_COMMENT}"
+ db_fset container/network1/ipv6-comment seen false
+
+ db_set container/network1/ipv6-address "${NETWORK1_IPV6_ADDRESS}"
+ db_fset container/network1/ipv6-address seen false
+
+ db_set container/network1/ipv6-gateway "${NETWORK1_IPV6_GATEWAY}"
+ db_fset container/network1/ipv6-gateway seen false
+
+ db_set container/network1/ipv6-netmask "${NETWORK1_IPV6_NETMASK}"
+ db_fset container/network1/ipv6-netmask seen false
+
+ db_set container/network1/ipv6-post-up "${NETWORK1_IPV6_POST_UP}"
+ db_fset container/network1/ipv6-post-up seen false
+
+ db_set container/network1/ipv6-post-down "${NETWORK1_IPV6_POST_DOWN}"
+ db_fset container/network1/ipv6-post-down seen false
+
db_set container/nameserver/server "${NAMESERVER_SERVER}"
db_fset container/nameserver/server seen false
@@ -772,16 +822,16 @@ Network ()
db_set container/nameserver/options "${NAMESERVER_OPTIONS}"
db_fset container/nameserver/options seen false
- db_settitle container/title
- db_input high container/network1/ipv4-method || true
- db_go
-
db_get container/network1/bridge
NETWORK1_BRIDGE="${RET}" # select
db_get container/network1/veth
NETWORK1_VETH="${RET}" # select
+ db_settitle container/title
+ db_input high container/network1/ipv4-method || true
+ db_go
+
db_get container/network1/ipv4-method
NETWORK1_IPV4_METHOD="${RET}" # select
@@ -813,16 +863,57 @@ Network ()
db_settitle container/title
db_input high container/network1/ipv4-post-down || true
db_go
+ ;;
+ esac
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-method || true
+ db_go
+
+ db_get container/network1/ipv6-method
+ NETWORK1_IPV6_METHOD="${RET}" # select
+
+ case "${NETWORK1_IPV6_METHOD}" in
+ none|dhcp)
+ ;;
+
+ static)
+ db_settitle container/title
+ db_input high container/network1/ipv6-comment || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-address || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-gateway || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-netmask || true
+ db_go
db_settitle container/title
- db_input high container/nameserver/server || true
+ db_input high container/network1/ipv6-post-up || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-post-down || true
db_go
;;
esac
+ if [ "${NETWORK1_IPV4_METHOD}" = "static" ] || [ "${NETWORK1_IPV6_METHOD}" = "static" ]
+ then
+ db_settitle container/title
+ db_input high container/nameserver/server || true
+ db_go
+ fi
+
NUMBER="1"
- while db_get container/network${NUMBER}/ipv4-method && [ "${RET}" ]
+ while ( db_get container/network${NUMBER}/ipv4-method && [ "${RET}" ] ) || ( db_get container/network${NUMBER}/ipv6-method && [ "${RET}" ] )
do
if db_get container/network${NUMBER}/bridge
then
@@ -834,6 +925,13 @@ Network ()
eval NETWORK${NUMBER}_VETH="\"${RET}\"" # string (w/o empty)
fi
+ NUMBER="$((${NUMBER} + 1))"
+ done
+
+ NETWORK_NUMBER="$((${NUMBER} - 1))"
+
+ for NUMBER in $(seq 1 ${NETWORK_NUMBER})
+ do
if db_get container/network${NUMBER}/ipv4-comment
then
eval NETWORK${NUMBER}_IPV4_COMMENT="\"${RET}\"" # string (w/ empty)
@@ -868,11 +966,45 @@ Network ()
then
eval NETWORK${NUMBER}_IPV4_POST_DOWN="\"${RET}\"" # string (w/ empty)
fi
-
- NUMBER="$((${NUMBER} + 1))"
done
- NETWORK_NUMBER="$((${NUMBER} - 1))"
+ for NUMBER in $(seq 1 ${NETWORK_NUMBER})
+ do
+ if db_get container/network${NUMBER}/ipv6-comment
+ then
+ eval NETWORK${NUMBER}_IPV6_COMMENT="\"${RET}\"" # string (w/ empty)
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-method
+ then
+ eval NETWORK${NUMBER}_IPV6_METHOD="\"${RET}\"" # select
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-address
+ then
+ eval NETWORK${NUMBER}_IPV6_ADDRESS="\"${RET}\"" # string (w/o empty)
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-gateway
+ then
+ eval NETWORK${NUMBER}_IPV6_GATEWAY="\"${RET}\"" # string (w/ empty)
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-netmask
+ then
+ eval NETWORK${NUMBER}_IPV6_NETMASK="\"${RET}\"" # string (w/o empty)
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-post-up
+ then
+ eval NETWORK${NUMBER}_IPV6_POST_UP="\"${RET}\"" # string (w/ empty)
+ fi
+
+ if db_get container/network${NUMBER}/ipv6-post-down
+ then
+ eval NETWORK${NUMBER}_IPV6_POST_DOWN="\"${RET}\"" # string (w/ empty)
+ fi
+ done
db_get container/nameserver/server
NAMESERVER_SERVER="${RET}" # string (w/ empty)
@@ -918,6 +1050,27 @@ Network ()
eval POST_DOWN="$`echo NETWORK${NUMBER}_IPV4_POST_DOWN`"
echo "NETWORK${NUMBER}_IPV4_POST_DOWN=\"${POST_DOWN}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval COMMENT="$`echo NETWORK${NUMBER}_IPV6_COMMENT`"
+ echo "NETWORK${NUMBER}_IPV6_COMMENT=\"${COMMENT}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval METHOD="$`echo NETWORK${NUMBER}_IPV6_METHOD`"
+ echo "NETWORK${NUMBER}_IPV6_METHOD=\"${METHOD}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval ADDRESS="$`echo NETWORK${NUMBER}_IPV6_ADDRESS`"
+ echo "NETWORK${NUMBER}_IPV6_ADDRESS=\"${ADDRESS}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval GATEWAY="$`echo NETWORK${NUMBER}_IPV6_GATEWAY`"
+ echo "NETWORK${NUMBER}_IPV6_GATEWAY=\"${GATEWAY}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval NETMASK="$`echo NETWORK${NUMBER}_IPV6_NETMASK`"
+ echo "NETWORK${NUMBER}_IPV6_NETMASK=\"${NETMASK}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval POST_UP="$`echo NETWORK${NUMBER}_IPV6_POST_UP`"
+ echo "NETWORK${NUMBER}_IPV6_POST_UP=\"${POST_UP}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
+
+ eval POST_DOWN="$`echo NETWORK${NUMBER}_IPV6_POST_DOWN`"
+ echo "NETWORK${NUMBER}_IPV6_POST_DOWN=\"${POST_DOWN}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
done
echo "NAMESERVER_SERVER=\"${NAMESERVER_SERVER}\"" >> "${DEBCONF_TMPDIR}/debconf.default"
diff --git a/share/scripts/debconf.d/0003-debconf.templates b/share/scripts/debconf.d/0003-debconf.templates
index 13899ef..73952a8 100644
--- a/share/scripts/debconf.d/0003-debconf.templates
+++ b/share/scripts/debconf.d/0003-debconf.templates
@@ -150,6 +150,9 @@ Default:
Description: Ethernet Network Mask (IPv4)?
What should be the netmask of the current system?
.
+ Note that only the suffix is supported, e.g. '24'
+ for /24 or '16' for /16.
+ .
This defaults to empty.
Template: container/network1/ipv4-post-up
@@ -168,6 +171,66 @@ Description: Ethernet post-down Command (IPv4)?
.
This defaults to empty.
+Template: container/network1/ipv6-method
+Type: select
+Choices: static, none
+Default:
+Description: Ethernet Interface Method (IPv6)?
+ What method should be used to configure the ethernet interface?
+ .
+ This defaults to none.
+
+Template: container/network1/ipv6-comment
+Type: string
+Default:
+Description: Ethernet Interface Comment (IPv6)?
+ What optional comment would you like to give to the ethernet interface?
+ .
+ This defaults to empty.
+
+Template: container/network1/ipv6-address
+Type: string
+Default:
+Description: Ethernet IP Address (IPv6)?
+ What should be the IP address of the current system?
+ .
+ This defaults to fc00::1 (unique local unicast).
+
+Template: container/network1/ipv6-gateway
+Type: string
+Default:
+Description: Ethernet Gateway Address (IPv6)?
+ What should be the gateway address of the current system?
+ .
+ This defaults to empty.
+
+Template: container/network1/ipv6-netmask
+Type: string
+Default:
+Description: Ethernet Network Mask (IPv6)?
+ What should be the netmask of the current system?
+ .
+ Note that only the suffix is supported, e.g. '64'
+ for /64 or '48' for /48.
+ .
+ This defaults to empty.
+
+Template: container/network1/ipv6-post-up
+Type: string
+Default:
+Description: Ethernet post-up Command (IPv6)?
+ What should be the post-up command for eno1?
+ .
+ This defaults to empty.
+
+Template: container/network1/ipv6-post-down
+Type: string
+Default:
+Description: Ethernet post-down Command (IPv6)?
+ What should be the post-down command for eno1?
+ .
+ This defaults to empty.
+
Template: container/nameserver/server
Type: string
Default: