Scripts and configuration templates to prepare a virtual appliance for linuxmuster.net 7.4 based on Ubuntu Server 26.04.
lmn-appliance prepares the appliance for rollout:
- It brings the operating system up to date,
- sets up the linuxmuster.net package repository,
- installs the linuxmuster-prepare package, and
- then starts the preparation script lmn-prepare,
- which installs the packages required for the respective appliance profile,
- configures the network,
- sets the root password to Muster!, and
- optionally sets up LVM in the case of the server profile.
Installation:
- Download the script:
wget https://raw.githubusercontent.com/linuxmuster/linuxmuster-prepare/master/lmn-appliance - Make it executable:
chmod +x lmn-appliance - Run the script:
./lmn-appliance <options>
If lmn-appliance is called without options, it only sets up the linuxmuster.net package repository and updates the system. In that case, the appliance preparation must be completed afterwards with lmn-prepare (see lmn-prepare -h for options).
| Parameter | Value | Description |
|---|---|---|
-t, --hostname= |
<hostname> |
Hostname of the appliance; if omitted, the profile name is used. |
-n, --ipnet= |
<ip/bitmask> |
IP address and bitmask of the host (default is 10.0.0.[1,2,3]/16, depending on the profile). |
-p, --profile= |
<server|ubuntu> |
Appliance profile; if -n was not specified, the IP address for server is set automatically (10.0.0.1). For ubuntu, an address/bitmask must be provided with -n. |
-w, --swapsize= |
<#> |
Swap file size in GiB (default 2). |
-f, --firewall= |
<ip> |
Firewall/nameserver address (default x.x.x.254). |
-g, --gateway= |
<ip> |
Gateway address (default is the firewall IP). |
-d, --domain= |
<domain> |
Domain name (default: linuxmuster.lan). |
-u, --unattended |
- | No prompts, use default values. |
-b, --reboot |
- | Final reboot (only in combination with unattended). |
-h, --help |
- | Show help. |
- server: The linuxmuster-base7 package with all its dependencies is installed.
- ubuntu: No additional packages are installed; hostname must be specified with
-t, --hostname=<hostname>and IP/netmask with-n, --ipnet=<ip/bitmask>.
lmn-appliance -u -p server- Sets up the server profile with default values:
- Hostname server,
- IP/Bitmask 10.0.0.1/16,
- Domain name linuxmuster.lan,
- Gateway/DNS 10.0.0.254
lmn-appliance -u -p server -n 10.0.0.1/24- Sets up the server profile with a custom IP network:
- Hostname server,
- IP/Bitmask 10.0.0.1/24,
- Domain name linuxmuster.lan,
- Gateway/DNS 10.0.0.254
lmn-appliance -p ubuntu -t testhost -n 192.168.0.1/16- Sets up the appliance as follows:
- Hostname testhost,
- IP/Bitmask 192.168.0.1/16,
- Domain name linuxmuster.lan,
- Gateway/DNS 192.16.0.254
- Set up the appliance with 2 hard disks, for example:
- HD 1: 25G (root filesystem)
- HD 2: 100G (data mounted at /srv)
- Perform a Ubuntu Server 18.04 minimal installation.
- Install the system into a single partition on HD 1 (no swap partition),
- create an ext4 partition on HD 2 and mount it at /srv with the following entry in
/etc/fstab:/dev/vdb1 /srv ext4 defaults 0 1
- After the first boot, log in as root and download the prepare script:
# wget https://raw.githubusercontent.com/linuxmuster/linuxmuster-prepare/master/lmn-appliance - Make the script executable and run it:
./lmn-appliance -p server -u - Shut down the appliance and create a snapshot.
- The setup can then be run.
The quota option for ext4 partitions can no longer be enabled at runtime while the filesystem is mounted. A Dracut module is therefore created under /usr/lib/dracut/modules.d/99linuxmuster that integrates a pre-mount script into the initrd. This script enables the quota option via tune2fs during the boot process before the filesystems are mounted.
General Ubuntu appliances consider only a single hard disk during preparation. The procedure is otherwise analogous to that of the server. See the examples for script invocations above.