AutomatedServerInstalls
Differences between revisions 1 and 60 (spanning 59 versions)
Size: 4181
Comment:
|
← Revision 60 as of 2020-06-11 04:19:11 ⇥
Size: 61
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
||<#FF5555> '''This document is entirely a description of something that does not yet exist''' || = Automated Server Installs for 20.04 (and maybe 18.04.4?) = ||<#FF5555> '''This document is entirely a description of something that does not yet exist''' || == Introduction == The server installer for 20.04 supports a new mode of operation: automated (or unattended, or hands-off) installation, autoinstallation for short. This lets you answer all those configuration questions ahead of time in an ''autoinstall file'' and lets the installation process run without any interaction. == Differences from preseeding == ''preseeds'' are the way to automate an installer based on debian-installer (aka d-i). autoinstalls for the new server installer differ from preseeds in the following main ways: * the file format is completely different (yaml vs debconf-set-selections format) * when the answer to a question is not present in a preseed, d-i stops and asks the user for input. autoinstalls are not like this: if there is any autoinstall config at all, the installer takes the default for any unanswered question == Providing the autoinstall file == The autoinstall file can be provided in the following ways: * As /autoinstall.cfg in the initrd * As /autoinstall.cfg on the install media (in any partition!) * Via a http or https (or maybe tftp) URL on the kernel command line And maybe these ways if people think they would be useful: * As a b64encoded gzipped blob on the kernel command line * Given as a URL via DHCP == Creating an autoinstall file == When any system is installed using the server installer, an autoinstall file for repeating the install is created at {{{/var/log/installer/autoinstall.cfg}}}. Alternatively there is a snap, ``autoinstall-editor``, that can be used to either edit or create from scratch an autoinstall file (it is actually mostly the same code as that that runs the installation in interactive mode). {{{ # start editing new config file $ autoinstall-editor # dump out to stdout a complete autoinstall config file with default answers everywhere $ autoinstall-editor --create # edit existing autoinstall file $ autoinstall-editor autoinstall.cfg }}} == The format of an autoinstall file == The autoinstall file is YAML. Here is an example file that shows off most features: {{{#!yaml version: 1 early_commands: - ping -c1 198.162.1.1 locale: en_US keyboard: layout: en variant: uk network: version: 2 network: eth0: dhcp4: yes proxy: http://squid.internal:3128/ mirror: http://repo.internal/ filesystem: recipe: name: lvm identity: username: mwhudson password: $crypted_pass ssh: authorized_keys: - $key allow_pw: no snaps: - go/stable debconf_selections: | bind9 bind9/run-resolvconf boolean false packages: - libreoffice - dns-server^ late_commands: - rm -rf /etc/init.d }}} Many keys and values correspond straightforwardly to questions the installer asks (e.g. keyboard selection). There are some new options though: * `early_commands`: shell commands run after the installer has started, but before anything else (in particular, before scanning the system for block devices) * `debconf_selections` & `packages`: packages and configuration for them to be installed after installation has completed * `late_commands`: shell commands to run after the install has completed and any updates and packages installed, just before the system reboots === Filesystem configuration === Filesystem configuration is a complex topic and the description of the desired configuration in the autoinstall file can necessarily also be complex. The installer does support "recipes", simple ways of expressing common configurations. ==== Supported recipes ==== lvm & simple ==== action-based config ==== For full flexibility, the installer allows filesystem configuration to be done using a syntax which is a superset of that supported by curtin, described at https://curtin.readthedocs.io/en/latest/topics/storage.html. |
moved to https://ubuntu.com/server/docs/install/autoinstall |
FoundationsTeam/AutomatedServerInstalls (last edited 2020-06-11 04:19:11 by mwhudson)