Create ISO images to automate Debian installations, by appending a preseed file to Debian official images.
Project description
Debseed
Create ISO images to automate Debian installations, by appending a preseed file to Debian official images.
Prerequisites
This application must be run on Linux and requires python3, xorriso and isolinux. Example on Debian:
sudo apt install python3-pip xorriso isolinux
Installation
Install the application using pip:
pip3 install debseed
Or, if you wish to automatically publish the generated ISO files to a VMWare datastore, install the application with additional dependencies:
pip3 install debseed[vmware]
Usage examples
Download latest Debian ISO file and generate a custom ISO file from it, using the generic edition:
debseed update
Generate a custom ISO file from a specific image and preseed file:
debseed generate debian-11.5.0-amd64-netinst.iso path/to/preseed.cfg
To print full usage instructions, run:
debseed --help
Configuration
Configuration of Debseed is defined in the following files (by decreasing priority):
local.conf
in current working directory~/.config/debseed/debseed.conf
in home directoryC:/ProgramData/debseed/debseed.conf
(Windows) or/etc/debseed/debseed.conf
(Linux)
Configuration section [debseed]
contains general-purpose application settings.
Specific sets of generation parameters, called editions, are configured in their own configuration section. For example, section named default
is configured using configuration section [debseed:default]
.
See example.
Development
Create Python virtual environment (example on a Debian workstation):
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip wheel
pip install -r requirements_all.txt
Run commands:
python -m debseed --help
Clean repository:
find . \( -name __pycache__ -o -name build -o -name dist -o -name "*.egg-info" \) -not -path "./.venv/*" -exec rm -rf {} \;
Create Python redistribuable package:
pip wheel --no-deps -w dist .
Prepare Twine for package upload (if necessary):
pip install twine
$env:REQUESTS_CA_BUNDLE="...ca-certificates.crt"
Check package (in particular, verify version in file name):
twine check dist/...
Upload le paquet:
twine upload --repository ... dist/...
Troubleshooting
Display information about an ISO file
Using command isoinfo
from Debian package genisoimage
:
isoinfo -d -i path.iso
Extract initial ramdisk
cd debseed.tmp/...
mkdir extracted-initrd
cd extracted-initrd
cpio -idm < ../initrd
Update Debian signing GPG key
gpg --keyserver hkp://keyring.debian.org:80 --keyserver-options http-proxy=http://... --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg --output debseed/assets/debian-cd-signing.gpg --export DF9B9C49EAA9298432589D76DA87E80D6294BE9B
Create local NAT network 10.0.2.2/24 for Hyper-V VMs
To reproduces VirtualBox default networking, where 10.0.2.2
is the address of the host as seen from the VMs, configure an internal virtual switch in Hyper-V, using the following Powershell commands (with elevated privileges):
New-VMSwitch -Name "10.0.2 Switch" -SwitchType Internal -Notes "For VMs in network 10.0.2.2/24"
New-NetIPAddress -IPAddress 10.0.2.2 -PrefixLength 24 -InterfaceAlias "vEthernet (10.0.2 Switch)"
Get-NetNat | ? Name -Eq "10.0.2 Nat" | Remove-NetNat -Confirm:$False
New-NetNat -Name "10.0.2 Nat" -InternalIPInterfaceAddressPrefix 10.0.2.0/24
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file debseed-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: debseed-0.1.3-py3-none-any.whl
- Upload date:
- Size: 39.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 598864e80000170d3abad52b60c0265148e038b3877a07cd03fcb31458d8a751 |
|
MD5 | 421a5c670e796ca700f9bac60a30989f |
|
BLAKE2b-256 | ed49f2392077cf7f58cf8d16d3fda7f4976013271105f4b73a5de052110dadc7 |