3.4 KiB
Virtual machine creation
Virtual machine specifications
- Memory: 4 GB
- CPU: 1 processor, 2 cores
- Hard Disk: SCSI, 300 MB
- CD/DVD: IDE
- Network Adapter: Bridged
In case you're setting up a VMWare virtual machine, select OS type Other Linux 3.x kernel 64-bit and after the VM is created, manually edit the *.vmx
file using a text editor and add mem.hotadd = "FALSE"
. Failing to do so will result in system unable to boot. Other hypervisors don't need this adjustment.
Virtual machine installation
Download Alpine Virtual 3.9.0 x86_64 from https://alpinelinux.org/downloads/ and boot from it. At the login prompt, use the root user without password to log in.
# Set up interfaces (leave the default choices)
setup-interfaces
ifup eth0
# Download and launch the setup script
wget dl.dasm.cz/_vm.sh
sh _vm.sh
The script will perform installation and configuration of Alpine linux, LXC and the whole VMMgr platform. Virtual machine is protected by LUKS-on-LVM disk encryption. The encryption password, which is simultaneously also a password for VMMgr web administration interface, will be asked for at the beginning of the script execution. Root access is disabled.
After the script finishes and shuts down the virtual machine, remove CD/DVD drive from the virtual machine settings and extend the HDD to 80 GB. This is to minimize the overall size of the OVA (Open Virtual Appliance) file to which the VM will be exported.
Build environment installation
Follow the VM creation steps as above, but comment the line disabling the root login in _vm.sh
file before its execution. After the script finishes and HDD size is adjusted, add serial port in the virtual machine settings and set it to use Unix socket or named pipe (eg. \\.\pipe\alpine
). Then start the VM and connect to the serial port using screen, PuTTY or any other terminal client.
First time setup
# Install git and OpenSSH client
apk --no-cache add git openssh-client
# Create SSH key
ssh-keygen -t ecdsa
Assign the newly generated key to your GitLab account
# Clone the repository
git clone --recurse-submodules ssh://git@gitlab.dasm.cz:2222/Spotter-Cluster/Spotter-Cluster.git
# Install the build toolchain
Spotter-Cluster/_build/install-toolchain.sh
After the script finishes, it is possible to connect via SSH (provided you have personal key in authorized_keys
) as the toolchain sets up also openssh-server. The serial connection will work only until disconnected. If it should work indefinitely, run
sed -i 's/ttyS0::once/ttyS0::respawn/' /etc/inittab
kill -1 1
Building the packages
There are 3 distinct packaging systems.
- Just a plain tar for basic OS setup used by
_vm.sh
installation script. - Abuild for the native Alpine linux packages (APK) used for ACME client and VMMgr packaging.
lxc-build
/lxc-pack
for LXC container building and packaging.
Before any building and packaging can be started, build toolchain including signing keys needs to be set up. This is done via install-toolchain.sh
script.
One the setup is complete, build and packaging can be done manually on per-container basis or a full build of all components can be run via build-all.sh
script. The full build process takes considerable amount of time, so it is advised to have a persistent build VM.