From 39cb83e1e80b2ee7e8f2d5611a022ae9f1df46fe Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 19 Mar 2019 20:57:32 +0100 Subject: Merging upstream version 20190319. Signed-off-by: Daniel Baumann --- share/man/compute-tools.7 | 272 +++++++++++++++++++++++++ share/man/container-auto.1 | 80 ++++++++ share/man/container-console.1 | 67 ++++++ share/man/container-create-curl.1 | 165 +++++++++++++++ share/man/container-create-debconf.1 | 180 ++++++++++++++++ share/man/container-create-debootstrap.1 | 128 ++++++++++++ share/man/container-create.1 | 139 +++++++++++++ share/man/container-enter.1 | 67 ++++++ share/man/container-key.1 | 80 ++++++++ share/man/container-limit.1 | 120 +++++++++++ share/man/container-list.1 | 158 ++++++++++++++ share/man/container-log.1 | 93 +++++++++ share/man/container-move.1 | 80 ++++++++ share/man/container-remove.1 | 97 +++++++++ share/man/container-restart.1 | 72 +++++++ share/man/container-shell.1 | 132 ++++++++++++ share/man/container-start.1 | 77 +++++++ share/man/container-status.1 | 65 ++++++ share/man/container-stop.1 | 82 ++++++++ share/man/container-top.1 | 65 ++++++ share/man/container-version.1 | 60 ++++++ share/man/container.1 | 185 +++++++++++++++++ share/scripts/debconf | 217 +++++++++++++++----- share/scripts/debconf.d/0002-preseed-debconf | 5 +- share/scripts/debconf.d/0003-debconf | 187 +++++++++++++++-- share/scripts/debconf.d/0003-debconf.templates | 63 ++++++ 26 files changed, 2865 insertions(+), 71 deletions(-) create mode 100644 share/man/compute-tools.7 create mode 100644 share/man/container-auto.1 create mode 100644 share/man/container-console.1 create mode 100644 share/man/container-create-curl.1 create mode 100644 share/man/container-create-debconf.1 create mode 100644 share/man/container-create-debootstrap.1 create mode 100644 share/man/container-create.1 create mode 100644 share/man/container-enter.1 create mode 100644 share/man/container-key.1 create mode 100644 share/man/container-limit.1 create mode 100644 share/man/container-list.1 create mode 100644 share/man/container-log.1 create mode 100644 share/man/container-move.1 create mode 100644 share/man/container-remove.1 create mode 100644 share/man/container-restart.1 create mode 100644 share/man/container-shell.1 create mode 100644 share/man/container-start.1 create mode 100644 share/man/container-status.1 create mode 100644 share/man/container-stop.1 create mode 100644 share/man/container-top.1 create mode 100644 share/man/container-version.1 create mode 100644 share/man/container.1 (limited to 'share') 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 +.\" 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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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 +.\" 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 \&. +.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 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: -- cgit v1.2.3