The input file to
v-i, called the "spec file", is a specification of the installation target. This is the specification of that file.
The keys that the installer understands are:
hostname---the name of the installed system, what
drive---the boot drive
extra_drives---additional drives to format and add to the volume group
extra_lvs---additional logical volumes to create
extra_playbooks---additional Ansible playbooks to run
ansible_vars---variables for Ansible
ansible_vars_files---files with variables for Ansible
luks---cleartext password for full disk encryption
debian_release---which release of Debian to install
root_fstype---file system type of the root file system
drive fields are required, everything else is optional. No field may exist more than once.
The fields are described in more detail in sections below.
The name of the installed system. This gets put into
/etc/hostname which the system will read when it boots.
A plain text string. The installer doesn't verify it, but if the contents isn't suitable, the target system name will be wrong.
The full path name of the block device for the boot drive of the installed system, as seen by the installer. The boot loader will be installed on this drive,
/boot will be a partition, and the rest of the drive will be a physical volume for the volume group the installer creates. The drive will effectively be wiped: partitions removed, physical volumes removed, all blocks on SSDs discarded, etc, but not overwritten.
Example: first SATA drive
Example: first NVMe drive
A list of full path names of block devices of additional drives to use as physical volumes in the volume group the installer creates. The drives will be wiped the same way as the boot drive.
The installer will remove all volume groups and physical volumes even on drives not mentioned in
extra_drives. It will discard all blocks only in the named drives, however.
extra_drives: - /dev/sdb - /dev/sd
Additional logical volumes for the installer to create. The value for this key is a list of key/value mappings describing the Luvs to create, where the inner keys are:
name---name of of the LV
size---size of the LV, in a format accepted by
fstype---type of the file system for the LV, defaults to
mounted---where the LV should be mounted
extra_lvs: - name: home size: 202G fstype: btrfs mounted: /home
A list of additional Ansible playbooks to run on the installed system. The installer first runs its own standard playbook, and the additional playbooks can make changes after that. The playbooks need to be present in the installer.
extra_playbooks: - foo.yml
Variable definitions for Ansible playbooks. Note that these will be set for all playbooks the installer runs.
ansible_vars: user_pub: | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPQe6lsTapAxiwhhEeE/ixuK+5N8esCsMWoekQqjtxjP
ansible_vars, but list of files with variable definitions to give to Ansible.
ansible_vars_files: - hostid.yml
The cleartext password for full disk encryption (LUKS). You probably want to change this after installing, but for very high risk situations, be aware the reading SSD flash chips can let an attacker access the old LUKS header after the change.
Code name of Debian release to install. Defaults to
Type of the root file system. Defaults to
ext4. (This is a little-tested feature of
v-i. Please report if it works for you.)