Cobbler is an open-source Linux provisioning server that helps in automating OS installs, updates, and package deployment across networks. In this tutorial, we will learn how to install and set up Cobbler on Void Linux.
Before we begin the installation process, make sure you have the following prerequisites:
To ensure that you have the latest system packages, update the system by running the command:
sudo xbps-install -Su
This command will update all the packages installed on your system.
Cobbler is not available in Void Linux official repositories, but we can still install it from the source code. Here's how:
First, we need to install the required dependencies for Cobbler. Run the following command:
sudo xbps-install -S python3-pip python3-devel python3-setuptools python3-libselinux-devel python3-distro python3-netifaces wget rsync dhcp tftp-hpa
Next, download the latest version of Cobbler from the official website using the following command:
wget https://github.com/cobbler/cobbler/archive/refs/tags/cobbler-3.3.3.tar.gz
Extract the downloaded archive using the following command:
tar -xvf cobbler-3.3.3.tar.gz
Navigate to the extracted directory and install Cobbler using the following command:
cd cobbler-cobbler-3.3.3/
sudo python3 setup.py install
Wait for the installation to complete.
After installing Cobbler, we need to configure it to work with Void Linux. Here's how:
To add Void Linux as a system to Cobbler, we need to create a new profile. Run the following command to create a new profile:
sudo cobbler profile add \
--name=void \
--distro=void \
--kickstart=/etc/cobbler/void-ks.cfg \
--kopts="nomodeset console=ttyS0,115200n8" \
--kickstart-metadata=/usr/share/cobbler/kickstarts/void-ks.cfg
This command will add a new profile named void
with a kickstart file at /etc/cobbler/void-ks.cfg
and other configuration parameters.
A kickstart file contains instructions for the installer on how to install the operating system. Here is an example of a kickstart file for Void Linux that you can use:
# System language
lang en_US.UTF-8
# Keyboard layouts
keyboard us
# Network information
network --bootproto=dhcp --device=eno1
# Root password
rootpw --iscrypted $6$yIFx85lj2QIvY9ph$05JryZpgnxy6wR68LJFBeIKneC4ps4uJ5V5dr3exYX7VfhRemJdmuS1JP4OcvBcAVQ7hzC4OyNj5YEusq3kY41
# System timezone
timezone America/New_York --utc
# Add user
user --name=admin --groups=adm,lp,wheel --gecos="admin" --key="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDDgMOiYbhwkMewjbHJEw7hqxpq3nlhUhjzMMlMyMDwl/eFzRvZLo9QLmtzMKrNOhsrjDXUuR6Uibaa6y4b7vl2q5EYV5I5TCzZSpt7ZDpMD+tIleEj8iapOpAGyAerudFWIvSK9WauSn8JcxaGMzMEryMUVCJtTpDfBAtyT56EAQ== admin@example.com"
# Firewall configuration
firewall --enabled
# Disable all services on boot
services --disabled=avahi-daemon
# Partition clearing information
zerombr
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype=ext4 --size=256
part pv.01 --size=1 --grow
volgroup vg0 pv.01
logvol / --fstype=ext4 --name=lv_root --vgname=vg0 --size=4096 --grow
logvol swap --fstype=swap --name=lv_swap --vgname=vg0 --size=2048
# Install packages
%packages
@base-system
procps-ng
nano
%end
# Post-installation scripts
%post
echo "Hello, World!"
%end
Create the above file at /etc/cobbler/void-ks.cfg
.
Cobbler uses DHCP and TFTP to serve files to the clients during OS installation. To configure DHCP and TFTP services, edit the /etc/dhcpd.conf
file and add the following configuration:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option domain-name-servers 8.8.8.8;
option routers 192.168.1.1;
option domain-name "[YOUR DOMAIN NAME]";
filename "pxelinux.0";
}
Replace [YOUR DOMAIN NAME]
with your domain name.
Now, edit the /etc/inetd.conf
file and add the following configuration:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Restart the DHCP and TFTP services using the following commands:
sudo service dhcpd restart
sudo service tftpd-hpa restart
Start the Cobbler service using the following command:
sudo systemctl start cobblerd.service
Enable the Cobbler service to start automatically at boot time using the following command:
sudo systemctl enable cobblerd.service
That's it! You have successfully installed and configured Cobbler on Void Linux. Now you can use Cobbler to automatically install and deploy operating systems across your network.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!