feat: add debian12
This commit is contained in:
		
							
								
								
									
										0
									
								
								autoinstall/meta-data
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								autoinstall/meta-data
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										475
									
								
								autoinstall/preseed.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										475
									
								
								autoinstall/preseed.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,475 @@ | |||||||
|  | #_preseed_V1 | ||||||
|  | #### Contents of the preconfiguration file (for booksworm) | ||||||
|  | # Preseeding only locale sets language, country and locale. | ||||||
|  | #d-i debian-installer/locale string en_US.UTF-8 | ||||||
|  |  | ||||||
|  | # The values can also be preseeded individually for greater flexibility. | ||||||
|  | d-i debian-installer/language string en | ||||||
|  | d-i debian-installer/country string FR | ||||||
|  | d-i debian-installer/locale string en_US.UTF-8 | ||||||
|  | # Optionally specify additional locales to be generated. | ||||||
|  | d-i localechooser/supported-locales multiselect en_US.UTF-8, fr_FR.UTF-8 | ||||||
|  | #d-i debian-installer/fallbacklocale select fr_FR.UTF-8 | ||||||
|  | #d-i debian-installer/locale select en_US.UTF-8 | ||||||
|  |  | ||||||
|  | # Keyboard selection. | ||||||
|  | d-i keyboard-configuration/xkb-keymap select fr | ||||||
|  | d-i console-keymaps-at/keymap select fr-latin9 | ||||||
|  | d-i debian-installer/keymap string fr-latin9 | ||||||
|  |  | ||||||
|  | ### Network configuration | ||||||
|  | # Disable network configuration entirely. This is useful for cdrom | ||||||
|  | # installations on non-networked devices where the network questions, | ||||||
|  | # warning and long timeouts are a nuisance. | ||||||
|  | #d-i netcfg/enable boolean false | ||||||
|  |  | ||||||
|  | # netcfg will choose an interface that has link if possible. This makes it | ||||||
|  | # skip displaying a list if there is more than one interface. | ||||||
|  | d-i netcfg/choose_interface select auto | ||||||
|  |  | ||||||
|  | # To set a different link detection timeout (default is 3 seconds). | ||||||
|  | # Values are interpreted as seconds. | ||||||
|  | d-i netcfg/link_wait_timeout string 5 | ||||||
|  |  | ||||||
|  | # If you have a slow dhcp server and the installer times out waiting for | ||||||
|  | # it, this might be useful. | ||||||
|  | d-i netcfg/dhcp_timeout string 60 | ||||||
|  | #d-i netcfg/dhcpv6_timeout string 60 | ||||||
|  |  | ||||||
|  | # Automatic network configuration is the default. | ||||||
|  | # If you prefer to configure the network manually, uncomment this line and | ||||||
|  | # the static network configuration below. | ||||||
|  | #d-i netcfg/disable_autoconfig boolean true | ||||||
|  |  | ||||||
|  | # If you want the preconfiguration file to work on systems both with and | ||||||
|  | # without a dhcp server, uncomment these lines and the static network | ||||||
|  | # configuration below. | ||||||
|  | #d-i netcfg/dhcp_failed note | ||||||
|  | #d-i netcfg/dhcp_options select Configure network manually | ||||||
|  |  | ||||||
|  | # Static network configuration. | ||||||
|  | # | ||||||
|  | # IPv4 example | ||||||
|  | #d-i netcfg/get_ipaddress string 192.168.1.42 | ||||||
|  | #d-i netcfg/get_netmask string 255.255.255.0 | ||||||
|  | #d-i netcfg/get_gateway string 192.168.1.1 | ||||||
|  | #d-i netcfg/get_nameservers string 192.168.1.1 | ||||||
|  | #d-i netcfg/confirm_static boolean true | ||||||
|  | # | ||||||
|  | # IPv6 example | ||||||
|  | #d-i netcfg/get_ipaddress string fc00::2 | ||||||
|  | #d-i netcfg/get_netmask string ffff:ffff:ffff:ffff:: | ||||||
|  | #d-i netcfg/get_gateway string fc00::1 | ||||||
|  | #d-i netcfg/get_nameservers string fc00::1 | ||||||
|  | #d-i netcfg/confirm_static boolean true | ||||||
|  |  | ||||||
|  | # Any hostname and domain names assigned from dhcp take precedence over | ||||||
|  | # values set here. However, setting the values still prevents the questions | ||||||
|  | # from being shown, even if values come from dhcp. | ||||||
|  | d-i netcfg/get_hostname string unassigned-hostname | ||||||
|  | d-i netcfg/get_domain string unassigned-domain | ||||||
|  |  | ||||||
|  | # If you want to force a hostname, regardless of what either the DHCP | ||||||
|  | # server returns or what the reverse DNS entry for the IP is, uncomment | ||||||
|  | # and adjust the following line. | ||||||
|  | #d-i netcfg/hostname string somehost | ||||||
|  |  | ||||||
|  | # Disable that annoying WEP key dialog. | ||||||
|  | d-i netcfg/wireless_wep string | ||||||
|  | # The wacky dhcp hostname that some ISPs use as a password of sorts. | ||||||
|  | #d-i netcfg/dhcp_hostname string radish | ||||||
|  |  | ||||||
|  | # If you want to completely disable firmware lookup (i.e. not use firmware | ||||||
|  | # files or packages that might be available on installation images): | ||||||
|  | #d-i hw-detect/firmware-lookup string never | ||||||
|  |  | ||||||
|  | # If non-free firmware is needed for the network or other hardware, you can | ||||||
|  | # configure the installer to always try to load it, without prompting. Or | ||||||
|  | # change to false to disable asking. | ||||||
|  | d-i hw-detect/load_firmware boolean false | ||||||
|  |  | ||||||
|  | ### Network console | ||||||
|  | # Use the following settings if you wish to make use of the network-console | ||||||
|  | # component for remote installation over SSH. This only makes sense if you | ||||||
|  | # intend to perform the remainder of the installation manually. | ||||||
|  | #d-i anna/choose_modules string network-console | ||||||
|  | #d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key | ||||||
|  | #d-i network-console/password password r00tme | ||||||
|  | #d-i network-console/password-again password r00tme | ||||||
|  |  | ||||||
|  | ### Mirror settings | ||||||
|  | # Mirror protocol: | ||||||
|  | # If you select ftp, the mirror/country string does not need to be set. | ||||||
|  | # Default value for the mirror protocol: http. | ||||||
|  | #d-i mirror/protocol string ftp | ||||||
|  | d-i mirror/country string FR | ||||||
|  | d-i mirror/http/hostname string deb.debian.org | ||||||
|  | d-i mirror/http/directory string /debian | ||||||
|  | d-i mirror/http/proxy string | ||||||
|  |  | ||||||
|  | # Suite to install. | ||||||
|  | #d-i mirror/suite string testing | ||||||
|  | # Suite to use for loading installer components (optional). | ||||||
|  | #d-i mirror/udeb/suite string testing | ||||||
|  |  | ||||||
|  | ### Account setup | ||||||
|  | # Skip creation of a root account (normal user account will be able to | ||||||
|  | # use sudo). | ||||||
|  | d-i passwd/root-login boolean true | ||||||
|  | # Alternatively, to skip creation of a normal user account. | ||||||
|  | d-i passwd/make-user boolean false | ||||||
|  |  | ||||||
|  | # Root password, either in clear text | ||||||
|  | d-i passwd/root-password password packer | ||||||
|  | d-i passwd/root-password-again password packer | ||||||
|  | # or encrypted using a crypt(3)  hash. | ||||||
|  | #d-i passwd/root-password-crypted password [$6$vnNlrAnstgaHYy3U$G2cn0/JQ.U1ssiugJNT4HAbFoOdlduSigYF7wP8DdpJin6W9ddbbjJXPSAU98.8jLn18wSfDNkBqesxdz6pm50] | ||||||
|  |  | ||||||
|  | # To create a normal user account. | ||||||
|  | #d-i passwd/user-fullname string packer | ||||||
|  | #d-i passwd/username string packer | ||||||
|  | # Normal user's password, either in clear text | ||||||
|  | #d-i passwd/user-password password packer | ||||||
|  | #d-i passwd/user-password-again password packer | ||||||
|  | # or encrypted using a crypt(3) hash. | ||||||
|  | #d-i passwd/user-password-crypted password [$6$vnNlrAnstgaHYy3U$G2cn0/JQ.U1ssiugJNT4HAbFoOdlduSigYF7wP8DdpJin6W9ddbbjJXPSAU98.8jLn18wSfDNkBqesxdz6pm50] | ||||||
|  | # Create the first user with the specified UID instead of the default. | ||||||
|  | #d-i passwd/user-uid string 1010 | ||||||
|  |  | ||||||
|  | # The user account will be added to some standard initial groups. To | ||||||
|  | # override that, use this. | ||||||
|  | #d-i passwd/user-default-groups string audio cdrom video | ||||||
|  |  | ||||||
|  | ### Clock and time zone setup | ||||||
|  | # Controls whether or not the hardware clock is set to UTC. | ||||||
|  | d-i clock-setup/utc boolean true | ||||||
|  |  | ||||||
|  | # You may set this to any valid setting for $TZ; see the contents of | ||||||
|  | # /usr/share/zoneinfo/ for valid values. | ||||||
|  | d-i time/zone string Europe/Paris | ||||||
|  |  | ||||||
|  | # Controls whether to use NTP to set the clock during the install | ||||||
|  | d-i clock-setup/ntp boolean true | ||||||
|  | # NTP server to use. The default is almost always fine here. | ||||||
|  | d-i clock-setup/ntp-server string 0.fr.pool.ntp.org | ||||||
|  |  | ||||||
|  | ### Partitioning | ||||||
|  | ## Partitioning example | ||||||
|  | # If the system has free space you can choose to only partition that space. | ||||||
|  | # This is only honoured if partman-auto/method (below) is not set. | ||||||
|  | #d-i partman-auto/init_automatically_partition select biggest_free | ||||||
|  |  | ||||||
|  | # Alternatively, you may specify a disk to partition. If the system has only | ||||||
|  | # one disk the installer will default to using that, but otherwise the device | ||||||
|  | # name must be given in traditional, non-devfs format (so e.g. /dev/sda | ||||||
|  | # and not e.g. /dev/discs/disc0/disc). | ||||||
|  | # For example, to use the first SCSI/SATA hard disk: | ||||||
|  | d-i partman-auto/disk string /dev/sda | ||||||
|  | # In addition, you'll need to specify the method to use. | ||||||
|  | # The presently available methods are: | ||||||
|  | # - regular: use the usual partition types for your architecture | ||||||
|  | # - lvm:     use LVM to partition the disk | ||||||
|  | # - crypto:  use LVM within an encrypted partition | ||||||
|  | d-i partman-auto/method string lvm | ||||||
|  |  | ||||||
|  | # You can define the amount of space that will be used for the LVM volume | ||||||
|  | # group. It can either be a size with its unit (eg. 20 GB), a percentage of | ||||||
|  | # free space or the 'max' keyword. | ||||||
|  | d-i partman-auto-lvm/guided_size string max | ||||||
|  |  | ||||||
|  | # If one of the disks that are going to be automatically partitioned | ||||||
|  | # contains an old LVM configuration, the user will normally receive a | ||||||
|  | # warning. This can be preseeded away... | ||||||
|  | d-i partman-lvm/device_remove_lvm boolean true | ||||||
|  | # The same applies to pre-existing software RAID array: | ||||||
|  | #d-i partman-md/device_remove_md boolean true | ||||||
|  | # And the same goes for the confirmation to write the lvm partitions. | ||||||
|  | d-i partman-lvm/confirm boolean true | ||||||
|  | d-i partman-lvm/confirm_nooverwrite boolean true | ||||||
|  |  | ||||||
|  | # You can choose one of the three predefined partitioning recipes: | ||||||
|  | # - atomic: all files in one partition | ||||||
|  | # - home:   separate /home partition | ||||||
|  | # - multi:  separate /home, /var, and /tmp partitions | ||||||
|  | d-i partman-auto/choose_recipe select atomic | ||||||
|  |  | ||||||
|  | # Or provide a recipe of your own... | ||||||
|  | # If you have a way to get a recipe file into the d-i environment, you can | ||||||
|  | # just point at it. | ||||||
|  | #d-i partman-auto/expert_recipe_file string /hd-media/recipe | ||||||
|  |  | ||||||
|  | # If not, you can put an entire recipe into the preconfiguration file in one | ||||||
|  | # (logical) line. This example creates a small /boot partition, suitable | ||||||
|  | # swap, and uses the rest of the space for the root partition: | ||||||
|  | #d-i partman-auto/expert_recipe string                         \ | ||||||
|  | #      boot-root ::                                            \ | ||||||
|  | #              40 50 100 ext3                                  \ | ||||||
|  | #                      $primary{ } $bootable{ }                \ | ||||||
|  | #                      method{ format } format{ }              \ | ||||||
|  | #                      use_filesystem{ } filesystem{ ext3 }    \ | ||||||
|  | #                      mountpoint{ /boot }                     \ | ||||||
|  | #              .                                               \ | ||||||
|  | #              500 10000 1000000000 ext3                       \ | ||||||
|  | #                      method{ format } format{ }              \ | ||||||
|  | #                      use_filesystem{ } filesystem{ ext3 }    \ | ||||||
|  | #                      mountpoint{ / }                         \ | ||||||
|  | #              .                                               \ | ||||||
|  | #              64 512 300% linux-swap                          \ | ||||||
|  | #                      method{ swap } format{ }                \ | ||||||
|  | #              . | ||||||
|  |  | ||||||
|  | # The full recipe format is documented in the file partman-auto-recipe.txt | ||||||
|  | # included in the 'debian-installer' package or available from D-I source | ||||||
|  | # repository. This also documents how to specify settings such as file | ||||||
|  | # system labels, volume group names and which physical devices to include | ||||||
|  | # in a volume group. | ||||||
|  |  | ||||||
|  | ## Partitioning for EFI | ||||||
|  | # If your system needs an EFI partition you could add something like | ||||||
|  | # this to the recipe above, as the first element in the recipe: | ||||||
|  | #               538 538 1075 free                              \ | ||||||
|  | #                      $iflabel{ gpt }                         \ | ||||||
|  | #                      $reusemethod{ }                         \ | ||||||
|  | #                      method{ efi }                           \ | ||||||
|  | #                      format{ }                               \ | ||||||
|  | #               .                                              \ | ||||||
|  | # | ||||||
|  | # The fragment above is for the amd64 architecture; the details may be | ||||||
|  | # different on other architectures. The 'partman-auto' package in the | ||||||
|  | # D-I source repository may have an example you can follow. | ||||||
|  |  | ||||||
|  | # This makes partman automatically partition without confirmation, provided | ||||||
|  | # that you told it what to do using one of the methods above. | ||||||
|  | d-i partman-partitioning/confirm_write_new_label boolean true | ||||||
|  | d-i partman/choose_partition select finish | ||||||
|  | d-i partman/confirm boolean true | ||||||
|  | d-i partman/confirm_nooverwrite boolean true | ||||||
|  |  | ||||||
|  | # Force UEFI booting ('BIOS compatibility' will be lost). Default: false. | ||||||
|  | #d-i partman-efi/non_efi_system boolean true | ||||||
|  | # Ensure the partition table is GPT - this is required for EFI | ||||||
|  | #d-i partman-partitioning/choose_label select gpt | ||||||
|  | #d-i partman-partitioning/default_label string gpt | ||||||
|  |  | ||||||
|  | # When disk encryption is enabled, skip wiping the partitions beforehand. | ||||||
|  | #d-i partman-auto-crypto/erase_disks boolean false | ||||||
|  |  | ||||||
|  | ## Partitioning using RAID | ||||||
|  | # The method should be set to "raid". | ||||||
|  | #d-i partman-auto/method string raid | ||||||
|  | # Specify the disks to be partitioned. They will all get the same layout, | ||||||
|  | # so this will only work if the disks are the same size. | ||||||
|  | #d-i partman-auto/disk string /dev/sda /dev/sdb | ||||||
|  |  | ||||||
|  | # Next you need to specify the physical partitions that will be used. | ||||||
|  | #d-i partman-auto/expert_recipe string \ | ||||||
|  | #      multiraid ::                                         \ | ||||||
|  | #              1000 5000 4000 raid                          \ | ||||||
|  | #                      $primary{ } method{ raid }           \ | ||||||
|  | #              .                                            \ | ||||||
|  | #              64 512 300% raid                             \ | ||||||
|  | #                      method{ raid }                       \ | ||||||
|  | #              .                                            \ | ||||||
|  | #              500 10000 1000000000 raid                    \ | ||||||
|  | #                      method{ raid }                       \ | ||||||
|  | #              . | ||||||
|  |  | ||||||
|  | # Last you need to specify how the previously defined partitions will be | ||||||
|  | # used in the RAID setup. Remember to use the correct partition numbers | ||||||
|  | # for logical partitions. RAID levels 0, 1, 5, 6 and 10 are supported; | ||||||
|  | # devices are separated using "#". | ||||||
|  | # Parameters are: | ||||||
|  | # <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \ | ||||||
|  | #          <devices> <sparedevices> | ||||||
|  |  | ||||||
|  | #d-i partman-auto-raid/recipe string \ | ||||||
|  | #    1 2 0 ext3 /                    \ | ||||||
|  | #          /dev/sda1#/dev/sdb1       \ | ||||||
|  | #    .                               \ | ||||||
|  | #    1 2 0 swap -                    \ | ||||||
|  | #          /dev/sda5#/dev/sdb5       \ | ||||||
|  | #    .                               \ | ||||||
|  | #    0 2 0 ext3 /home                \ | ||||||
|  | #          /dev/sda6#/dev/sdb6       \ | ||||||
|  | #    . | ||||||
|  |  | ||||||
|  | # For additional information see the file partman-auto-raid-recipe.txt | ||||||
|  | # included in the 'debian-installer' package or available from D-I source | ||||||
|  | # repository. | ||||||
|  |  | ||||||
|  | # This makes partman automatically partition without confirmation. | ||||||
|  | d-i partman-md/confirm boolean true | ||||||
|  | d-i partman-partitioning/confirm_write_new_label boolean true | ||||||
|  | d-i partman/choose_partition select finish | ||||||
|  | d-i partman/confirm boolean true | ||||||
|  | d-i partman/confirm_nooverwrite boolean true | ||||||
|  |  | ||||||
|  | ## Controlling how partitions are mounted | ||||||
|  | # The default is to mount by UUID, but you can also choose "traditional" to | ||||||
|  | # use traditional device names, or "label" to try filesystem labels before | ||||||
|  | # falling back to UUIDs. | ||||||
|  | d-i partman/mount_style select uuid | ||||||
|  |  | ||||||
|  | ### Base system installation | ||||||
|  | # Configure APT to not install recommended packages by default. Use of this | ||||||
|  | # option can result in an incomplete system and should only be used by very | ||||||
|  | # experienced users. | ||||||
|  | d-i base-installer/install-recommends boolean false | ||||||
|  |  | ||||||
|  | # The kernel image (meta) package to be installed; "none" can be used if no | ||||||
|  | # kernel is to be installed. | ||||||
|  | #d-i base-installer/kernel/image string linux-image-686 | ||||||
|  |  | ||||||
|  | ### Apt setup | ||||||
|  | # Choose, if you want to scan additional installation media | ||||||
|  | # (default: false). | ||||||
|  | d-i apt-setup/cdrom/set-first boolean false | ||||||
|  | # You can choose to install non-free firmware. | ||||||
|  | #d-i apt-setup/non-free-firmware boolean true | ||||||
|  | # You can choose to install non-free and contrib software. | ||||||
|  | #d-i apt-setup/non-free boolean true | ||||||
|  | #d-i apt-setup/contrib boolean true | ||||||
|  | # Uncomment the following line, if you don't want to have the sources.list | ||||||
|  | # entry for a DVD/BD installation image active in the installed system | ||||||
|  | # (entries for netinst or CD images will be disabled anyway, regardless of | ||||||
|  | # this setting). | ||||||
|  | #d-i apt-setup/disable-cdrom-entries boolean true | ||||||
|  | # Uncomment this if you don't want to use a network mirror. | ||||||
|  | d-i apt-setup/use_mirror boolean true | ||||||
|  | # Select which update services to use; define the mirrors to be used. | ||||||
|  | # Values shown below are the normal defaults. | ||||||
|  | #d-i apt-setup/services-select multiselect security, updates | ||||||
|  | d-i apt-setup/security_host string security.debian.org | ||||||
|  |  | ||||||
|  | # Additional repositories, local[0-9] available | ||||||
|  | #d-i apt-setup/local0/repository string \ | ||||||
|  | #       http://local.server/debian stable main | ||||||
|  | #d-i apt-setup/local0/comment string local server | ||||||
|  | # Enable deb-src lines | ||||||
|  | #d-i apt-setup/local0/source boolean true | ||||||
|  | # URL to the public key of the local repository; you must provide a key or | ||||||
|  | # apt will complain about the unauthenticated repository and so the | ||||||
|  | # sources.list line will be left commented out. | ||||||
|  | #d-i apt-setup/local0/key string http://local.server/key | ||||||
|  | # or one can provide it in-line by base64 encoding the contents of the | ||||||
|  | # key file (with `base64 -w0`) and specifying it thus: | ||||||
|  | #d-i apt-setup/local0/key string base64://LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCi4uLgo= | ||||||
|  | # The content of the key file is checked to see if it appears to be ASCII-armoured. | ||||||
|  | # If so it will be saved with an ".asc" extension, otherwise it gets a '.gpg' extension. | ||||||
|  | # "keybox database" format is currently not supported. (see generators/60local in apt-setup's source) | ||||||
|  |  | ||||||
|  | # By default the installer requires that repositories be authenticated | ||||||
|  | # using a known gpg key. This setting can be used to disable that | ||||||
|  | # authentication. Warning: Insecure, not recommended. | ||||||
|  | #d-i debian-installer/allow_unauthenticated boolean true | ||||||
|  |  | ||||||
|  | # Uncomment this to add multiarch configuration for i386 | ||||||
|  | #d-i apt-setup/multiarch string i386 | ||||||
|  |  | ||||||
|  | ### Package selection | ||||||
|  | tasksel tasksel/first multiselect standard, ssh-server | ||||||
|  |  | ||||||
|  | # Or choose to not get the tasksel dialog displayed at all (and don't install | ||||||
|  | # any packages): | ||||||
|  | #d-i pkgsel/run_tasksel boolean false | ||||||
|  |  | ||||||
|  | # Individual additional packages to install | ||||||
|  | d-i pkgsel/include string ca-certificates cloud-init qemu-guest-agent sudo | ||||||
|  | # Whether to upgrade packages after debootstrap. | ||||||
|  | # Allowed values: none, safe-upgrade, full-upgrade | ||||||
|  | d-i pkgsel/upgrade select safe-upgrade | ||||||
|  |  | ||||||
|  | # You can choose, if your system will report back on what software you have | ||||||
|  | # installed, and what software you use. The default is not to report back, | ||||||
|  | # but sending reports helps the project determine what software is most | ||||||
|  | # popular and should be included on the first CD/DVD. | ||||||
|  | popularity-contest popularity-contest/participate boolean false | ||||||
|  |  | ||||||
|  | ### Boot loader installation | ||||||
|  | # Grub is the boot loader (for x86). | ||||||
|  |  | ||||||
|  | # This is fairly safe to set, it makes grub install automatically to the UEFI | ||||||
|  | # partition/boot record if no other operating system is detected on the machine. | ||||||
|  | d-i grub-installer/only_debian boolean true | ||||||
|  |  | ||||||
|  | # This one makes grub-installer install to the UEFI partition/boot record, if | ||||||
|  | # it also finds some other OS, which is less safe as it might not be able to | ||||||
|  | # boot that other OS. | ||||||
|  | d-i grub-installer/with_other_os boolean false | ||||||
|  |  | ||||||
|  | # Due notably to potential USB sticks, the location of the primary drive can | ||||||
|  | # not be determined safely in general, so this needs to be specified: | ||||||
|  | #d-i grub-installer/bootdev  string /dev/sda | ||||||
|  | # To install to the primary device (assuming it is not a USB stick): | ||||||
|  | d-i grub-installer/bootdev string default | ||||||
|  |  | ||||||
|  | # Alternatively, if you want to install to a location other than the UEFI | ||||||
|  | # parition/boot record, uncomment and edit these lines: | ||||||
|  | #d-i grub-installer/only_debian boolean false | ||||||
|  | #d-i grub-installer/with_other_os boolean false | ||||||
|  | #d-i grub-installer/bootdev  string (hd0,1) | ||||||
|  | # To install grub to multiple disks: | ||||||
|  | #d-i grub-installer/bootdev  string (hd0,1) (hd1,1) (hd2,1) | ||||||
|  |  | ||||||
|  | # Optional password for grub, either in clear text | ||||||
|  | #d-i grub-installer/password password r00tme | ||||||
|  | #d-i grub-installer/password-again password r00tme | ||||||
|  | # or encrypted using an MD5 hash, see grub-md5-crypt(8). | ||||||
|  | #d-i grub-installer/password-crypted password [MD5 hash] | ||||||
|  |  | ||||||
|  | # Use the following option to add additional boot parameters for the | ||||||
|  | # installed system (if supported by the bootloader installer). | ||||||
|  | # Note: options passed to the installer will be added automatically. | ||||||
|  | #d-i debian-installer/add-kernel-opts string nousb | ||||||
|  |  | ||||||
|  | ### Finishing up the installation | ||||||
|  | # During installations from serial console, the regular virtual consoles | ||||||
|  | # (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next | ||||||
|  | # line to prevent this. | ||||||
|  | #d-i finish-install/keep-consoles boolean true | ||||||
|  |  | ||||||
|  | # Avoid that last message about the install being complete. | ||||||
|  | d-i finish-install/reboot_in_progress note | ||||||
|  |  | ||||||
|  | # This will prevent the installer from ejecting the CD during the reboot, | ||||||
|  | # which is useful in some situations. | ||||||
|  | d-i cdrom-detect/eject boolean true | ||||||
|  |  | ||||||
|  | # This is how to make the installer shutdown when finished, but not | ||||||
|  | # reboot into the installed system. | ||||||
|  | #d-i debian-installer/exit/halt boolean true | ||||||
|  | # This will power off the machine instead of just halting it. | ||||||
|  | #d-i debian-installer/exit/poweroff boolean true | ||||||
|  |  | ||||||
|  | ### Preseeding other packages | ||||||
|  | # Depending on what software you choose to install, or if things go wrong | ||||||
|  | # during the installation process, it's possible that other questions may | ||||||
|  | # be asked. You can preseed those too, of course. To get a list of every | ||||||
|  | # possible question that could be asked during an install, do an | ||||||
|  | # installation, and then run these commands: | ||||||
|  | #   debconf-get-selections --installer > file | ||||||
|  | #   debconf-get-selections >> file | ||||||
|  |  | ||||||
|  | #### Advanced options | ||||||
|  | ### Running custom commands during the installation | ||||||
|  | # d-i preseeding is inherently not secure. Nothing in the installer checks | ||||||
|  | # for attempts at buffer overflows or other exploits of the values of a | ||||||
|  | # preconfiguration file like this one. Only use preconfiguration files from | ||||||
|  | # trusted locations! To drive that home, and because it's generally useful, | ||||||
|  | # here's a way to run any shell command you'd like inside the installer, | ||||||
|  | # automatically. | ||||||
|  |  | ||||||
|  | # This first command is run as early as possible, just after | ||||||
|  | # preseeding is read. | ||||||
|  | #d-i preseed/early_command string anna-install some-udeb | ||||||
|  | # This command is run immediately before the partitioner starts. It may be | ||||||
|  | # useful to apply dynamic partitioner preseeding that depends on the state | ||||||
|  | # of the disks (which may not be visible when preseed/early_command runs). | ||||||
|  | #d-i partman/early_command \ | ||||||
|  | #       string debconf-set partman-auto/disk "$(list-devices disk | head -n1)" | ||||||
|  | # This command is run just before the install finishes, but when there is | ||||||
|  | # still a usable /target directory. You can chroot to /target and use it | ||||||
|  | # directly, or use the apt-install and in-target commands to easily install | ||||||
|  | # packages and run commands in the target system. | ||||||
|  | #d-i preseed/late_command string | ||||||
|  | d-i preseed/late_command string in-target sed -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' -i /etc/ssh/sshd_config | ||||||
							
								
								
									
										76
									
								
								autoinstall/user-data
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								autoinstall/user-data
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | |||||||
|  | #cloud-config | ||||||
|  | autoinstall: | ||||||
|  |   version: 1 | ||||||
|  |   refresh-installer: | ||||||
|  |     update: false | ||||||
|  |   apt: | ||||||
|  |     preserve_sources_list: false | ||||||
|  |     primary: | ||||||
|  |     - arches: [amd64] | ||||||
|  |       uri: http://archive.ubuntu.com/ubuntu | ||||||
|  |   storage: | ||||||
|  |     version: 1 | ||||||
|  |     config: | ||||||
|  |     - { id: vdisk, ptable: msdos, path: /dev/sda, wipe: superblock, grub_device: true, type: disk } | ||||||
|  |  | ||||||
|  |     # # Linux EFI boot partition (256MB) | ||||||
|  |     # - { device: vdisk, size: 268435456, flag: 'boot', number: 1, grub_device: true, type: partition, id: efi-partition } | ||||||
|  |     # - { fstype: fat32, volume: efi-partition, type: format, id: efi-format, label: ESP } | ||||||
|  |     # - { path: /boot/efi, device: efi-format, type: mount, id: mount-efi } | ||||||
|  |  | ||||||
|  |     # Linux boot partition (512MB) | ||||||
|  |     - { device: vdisk, size: 536870912, number: 1, flag: boot, type: partition, id: boot-partition } | ||||||
|  |     - { fstype: ext4, volume: boot-partition, type: format, id: boot-format } | ||||||
|  |     - { path: /boot, device: boot-format, type: mount, id: mount-boot, options: "rw,nodev,nosuid,noexec" } | ||||||
|  |  | ||||||
|  |     # Partition for LVM | ||||||
|  |     - { device: vdisk, size: -1, number: 2,type: partition, id: lvm-partition } | ||||||
|  |     - { name: monverre, devices: [ lvm-partition ], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 } | ||||||
|  |  | ||||||
|  |     # LV for root (12GB) | ||||||
|  |     - { name: sys, volgroup: lvm_volgroup-0, size: 12884901888, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_partition-sys } | ||||||
|  |     - { fstype: ext4, volume: lvm_partition-sys, type: format, id: format-lvm-sys } | ||||||
|  |     - { path: /, device: format-lvm-sys, type: mount, id: mount-lvm-sys } | ||||||
|  |  | ||||||
|  |     # LV for home (4GB) | ||||||
|  |     - { name: home, volgroup: lvm_volgroup-0, size: 4294967296, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_partition-home } | ||||||
|  |     - { fstype: ext4, volume: lvm_partition-home, type: format, id: format-lvm-home } | ||||||
|  |     - { path: /home, device: format-lvm-home, type: mount, id: mount-lvm-home, options: "rw,nodev,nosuid,noexec" } | ||||||
|  |  | ||||||
|  |     # LV for tmp (2GB) | ||||||
|  |     - { name: tmp, volgroup: lvm_volgroup-0, size: 2147483648, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_partition-tmp } | ||||||
|  |     - { fstype: ext4, volume: lvm_partition-tmp, type: format, id: format-lvm-tmp } | ||||||
|  |     - { path: /tmp, device: format-lvm-tmp, type: mount, id: mount-lvm-tmp, options: "rw,nodev,nosuid" } | ||||||
|  |     swap: | ||||||
|  |       size: 0 | ||||||
|  |   ssh: | ||||||
|  |     allow_public_ssh_keys: true | ||||||
|  |     allow-pw: true | ||||||
|  |     disable-root: false | ||||||
|  |     install-server: true | ||||||
|  |     ssh_quiet_keygen: true | ||||||
|  |   locale: en_US | ||||||
|  |   keyboard: | ||||||
|  |     layout: fr | ||||||
|  |   network: | ||||||
|  |     network: | ||||||
|  |       version: 2 | ||||||
|  |       ethernets: | ||||||
|  |         enp6s18: | ||||||
|  |           dhcp4: true | ||||||
|  |   packages: | ||||||
|  |     - linux-image-virtual-hwe-22.04 | ||||||
|  |     - qemu-guest-agent | ||||||
|  |     - sudo | ||||||
|  |     - wireguard | ||||||
|  |   user-data: | ||||||
|  |     package_upgrade: false | ||||||
|  |     timezone: Europe/Paris | ||||||
|  |     users: | ||||||
|  |       - name: packer | ||||||
|  |         groups: [adm, sudo] | ||||||
|  |         lock-passwd: false | ||||||
|  |         sudo: ALL=(ALL) NOPASSWD:ALL | ||||||
|  |         shell: /bin/bash | ||||||
|  |         # password crypted with sha512. default value = "packer" | ||||||
|  |         passwd: $6$lhHsNpj6wyEXs7sn$cOf53uNhEBuNOGeYBMZkCrRS.WzsnwkhY0caiAbbXw4AwumP.7W7e8n0r71vbDey7AMYNsLI5ZEaeqKr.DtYM/ | ||||||
							
								
								
									
										228
									
								
								debian12.pkr.hcl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								debian12.pkr.hcl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,228 @@ | |||||||
|  | packer { | ||||||
|  |   required_plugins { | ||||||
|  |     name = { | ||||||
|  |       version = "~> 1" | ||||||
|  |       source  = "github.com/hashicorp/proxmox" | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "bios_type" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "boot_command" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "boot_wait" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "bridge_firewall" { | ||||||
|  |   type    = bool | ||||||
|  |   default = false | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "bridge_name" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "cloud_init" { | ||||||
|  |   type = bool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "iso_file" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "iso_storage_pool" { | ||||||
|  |   type    = string | ||||||
|  |   default = "local" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "machine_default_type" { | ||||||
|  |   type    = string | ||||||
|  |   default = "pc" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "network_model" { | ||||||
|  |   type    = string | ||||||
|  |   default = "virtio" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "os_type" { | ||||||
|  |   type    = string | ||||||
|  |   default = "l26" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "proxmox_api_token_id" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "proxmox_api_token_secret" { | ||||||
|  |   type      = string | ||||||
|  |   sensitive = true | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "proxmox_api_url" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "proxmox_node" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "qemu_agent_activation" { | ||||||
|  |   type    = bool | ||||||
|  |   default = true | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "scsi_controller_type" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "ssh_timeout" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "tags" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "io_thread" { | ||||||
|  |   type = bool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "cpu_type" { | ||||||
|  |   type    = string | ||||||
|  |   default = "x86-64-v3" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "vm_info" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "disk_discard" { | ||||||
|  |   type    = bool | ||||||
|  |   default = true | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "disk_format" { | ||||||
|  |   type    = string | ||||||
|  |   default = "qcow2" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "disk_size" { | ||||||
|  |   type    = string | ||||||
|  |   default = "16G" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "disk_type" { | ||||||
|  |   type    = string | ||||||
|  |   default = "scsi" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "nb_core" { | ||||||
|  |   type    = number | ||||||
|  |   default = 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "nb_cpu" { | ||||||
|  |   type    = number | ||||||
|  |   default = 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "nb_ram" { | ||||||
|  |   type    = number | ||||||
|  |   default = 1024 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "ssh_username" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "ssh_password" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "ssh_handshake_attempts" { | ||||||
|  |   type = number | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "storage_pool" { | ||||||
|  |   type    = string | ||||||
|  |   default = "local-zfs" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "vm_id" { | ||||||
|  |   type    = number | ||||||
|  |   default = 99999 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | variable "vm_name" { | ||||||
|  |   type = string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | locals { | ||||||
|  |   packer_timestamp = formatdate("YYYYMMDD-hhmm", timestamp()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | source "proxmox-iso" "debian12" { | ||||||
|  |   bios                     = "${var.bios_type}" | ||||||
|  |   boot_command             = ["${var.boot_command}"] | ||||||
|  |   boot_wait                = "${var.boot_wait}" | ||||||
|  |   cloud_init               = "${var.cloud_init}" | ||||||
|  |   cloud_init_storage_pool  = "${var.storage_pool}" | ||||||
|  |   communicator             = "ssh" | ||||||
|  |   cores                    = "${var.nb_core}" | ||||||
|  |   cpu_type                 = "${var.cpu_type}" | ||||||
|  |   http_directory           = "autoinstall" | ||||||
|  |   insecure_skip_tls_verify = true | ||||||
|  |   iso_file                 = "${var.iso_file}" | ||||||
|  |   machine                  = "${var.machine_default_type}" | ||||||
|  |   memory                   = "${var.nb_ram}" | ||||||
|  |   node                     = "${var.proxmox_node}" | ||||||
|  |   os                       = "${var.os_type}" | ||||||
|  |   proxmox_url              = "${var.proxmox_api_url}" | ||||||
|  |   qemu_agent               = "${var.qemu_agent_activation}" | ||||||
|  |   scsi_controller          = "${var.scsi_controller_type}" | ||||||
|  |   sockets                  = "${var.nb_cpu}" | ||||||
|  |   ssh_handshake_attempts   = "${var.ssh_handshake_attempts}" | ||||||
|  |   ssh_pty                  = true | ||||||
|  |   ssh_timeout              = "${var.ssh_timeout}" | ||||||
|  |   ssh_username             = "${var.ssh_username}" | ||||||
|  |   ssh_password             = "${var.ssh_password}" | ||||||
|  |   tags                     = "${var.tags}" | ||||||
|  |   template_description     = "${var.vm_info} - ${local.packer_timestamp}" | ||||||
|  |   token                    = "${var.proxmox_api_token_secret}" | ||||||
|  |   unmount_iso              = true | ||||||
|  |   username                 = "${var.proxmox_api_token_id}" | ||||||
|  |   vm_id                    = "${var.vm_id}" | ||||||
|  |   vm_name                  = "${var.vm_name}" | ||||||
|  |  | ||||||
|  |   efi_config { | ||||||
|  |     efi_storage_pool  = "${var.storage_pool}" | ||||||
|  |     pre_enrolled_keys = false | ||||||
|  |     efi_type          = "4m" | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   disks { | ||||||
|  |     discard      = "${var.disk_discard}" | ||||||
|  |     disk_size    = "${var.disk_size}" | ||||||
|  |     format       = "${var.disk_format}" | ||||||
|  |     io_thread    = "${var.io_thread}" | ||||||
|  |     storage_pool = "${var.storage_pool}" | ||||||
|  |     type         = "${var.disk_type}" | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   network_adapters { | ||||||
|  |     bridge   = "${var.bridge_name}" | ||||||
|  |     firewall = "${var.bridge_firewall}" | ||||||
|  |     model    = "${var.network_model}" | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | build { | ||||||
|  |   sources = ["source.proxmox-iso.debian12"] | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user