Merge pull request #1763 from s-makin/doc-move-pages

[docs] Add content and change to reST
This commit is contained in:
Dan Bungert 2023-09-08 06:33:07 -06:00 committed by GitHub
commit afc0f3faa3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 2567 additions and 178 deletions

View File

@ -9,3 +9,13 @@ documentation. As the RTD version is not yet ready, documentation changes
should be made to `../documentation` until this README is updated to say
otherwise. As such, please make any desired documentation changes to
`../documentation`.
# Local preview
To build this documentation, you can run `make install` from this folder to
create the virtual environment.
Then run the `make run` command, which will build a html version of the docs,
and serve the docs in the virtual environment. This is very convenient if you
are working on them and want your saved changes to be reflected as a working
preview.

View File

@ -0,0 +1,176 @@
.. _configure-storage:
Configuring storage
*******************
There are a lot of options for storage configuration with the Subiquity
installer. This guide will walk you through some of the common options for an
Ubuntu Server installation.
Guided options
==============
.. image:: figures/configure-storage-guided-options.png
:alt:
Selecting "Use an entire disk" on the Guided storage configuration screen will
install Ubuntu onto the selected disk, replacing any partitions or data already
there.
You can choose whether or not to set up LVM, and if you do, whether or not to
encrypt the volume with LUKS. If you encrypt the volume, you need to choose a
passphrase that will need to be entered each time the system boots.
If you select "Custom storage layout", no configuration will be applied to the
disks.
In either case, the installer moves onto the main storage customisation screen.
The main storage screen
=======================
.. image:: figures/configure-storage-main-screen.png
:alt:
This screen presents a summary of the current storage configuration. Each
device or partition of a device corresponds to a different row (which can be
selected), and pressing :kbd:`Enter` or :kbd:`space` while a device is selected
opens a menu of actions that apply to that device.
Partitions
==========
.. image:: figures/configure-storage-partitions.png
:alt:
To add a partition to a device, select "Add GPT Partition" for that device.
.. image:: figures/configure-storage-GPT-partition.png
:alt:
You can leave "Size" blank to use all the remaining space on the device.
RAID
====
.. image:: figures/configure-storage-raid.png
:alt:
`Linux software RAID <https://raid.wiki.kernel.org/index.php/Linux_Raid>`_
(where RAID stands for "Redundant Array of Inexpensive Disks") can be used to
combine several disks into a single device that is (usually) tolerant to any
one disk failure.
A software RAID device can be created out of entire disks or unformatted
partitions. Select the "Create software RAID ("MD")" button to open the
creation dialog.
The server installer supports devices with RAID level 0, 1, 5, 6 or 10 being
created. It does not allow customising other options such as metadata format or
RAID10 layout at this time. See the
`Linux RAID documentation <https://raid.wiki.kernel.org/index.php/Linux_Raid>`_
for more details.
A software RAID device can be formatted and mounted directly, can be
partitioned into several partitions, and can even be used as part of another
RAID device or LVM volume group.
Logical Volume Manager (LVM)
============================
.. image:: figures/configure-storage-lvm.png
:alt:
The LVM is a system of managing logical volumes, or filesystems, that is much
more advanced and flexible than the traditional method of partitioning a disk
into one or more segments and formatting that partition with a filesystem. It
can be used to combine several disks into one larger pool of storage but it
offers advantages even in a single disk system, such as snapshots and easy
resizing of logical volumes.
As with RAID, a LVM volume group can be created out of entire disks or
unformatted partitions. Select the "Create LVM volume group" button to open
the creation dialog.
Once a volume group has been created, it can be divided into named logical
volumes which can then be formatted and mounted. It generally makes sense to
leave some space in the volume group for storage of snapshots and creation of
more logical volumes as needed.
The server installer does not supported configuring any of the many, many
options that LVM supports when creating volume groups and logical volumes.
Selecting boot devices
======================
.. image:: figures/configure-storage-boot-devices.png
:alt:
On all architectures other than s390x, the bootloader needs to be installed to
a disk in such a way that the system firmware can find it on boot. By default,
the first device to have a partition created on it is selected as a boot device
but this can be changed later.
On amd64 and arm64 systems, multiple disks can be selected as boot devices,
which means a system can be configured so that it will continue to boot after
a failure of any one drive (assuming the root filesystem is placed on a RAID).
The bootloader will be installed to each of these drives, and the operating
system configured to install new versions of GRUB to each drive as it is
updated.
amd64 systems use GRUB as the bootloader. amd64 systems can boot in either UEFI
or legacy (sometimes called "BIOS") mode (many systems can be configured to
boot in either mode) and the bootloader is located completely differently in
the two modes.
Legacy mode
-----------
In legacy mode, the bootloader is read from the first "sector" of a hard drive
(exactly which hard drive is up to the system firmware, which can usually be
configured in a vendor-specific way). The installer will write GRUB to the
start of all disks selected as a boot devices. As GRUB does not entirely fit
in one sector, a small unformatted partition is needed at the start of the
disk, which will automatically be created when a disk is selected as a boot
device (a disk with an existing GPT partition table can only be used as a boot
device if it has this partition).
UEFI mode
---------
In UEFI mode, the bootloader loaded from a "EFI System Partition" (ESP), which
is a partition with a particular type GUID. The installer automatically creates
an ESP (with minimum size 538 MiB) on a disk when it is selected as a boot
device and will install GRUB there (a disk with an existing partition table can
only be used as a boot device if it has an ESP -- bootloaders for multiple
operating systems can be installed into a single ESP). UEFI defines a standard
way to configure the way in which the operating system is chosen on boot, and
the installer uses this to configure the system to boot the just-installed
operating system. One of the ESPs must be mounted at ``/boot/efi``.
Supported arm64 servers boot using UEFI, and are configured the same way as an
UEFI-booting amd64 system.
ppc64el systems also load their bootloader (Petitboot, a small linux kernel)
from a "PReP" partition with a special flag, so in most ways they are similar
to a UEFI system. The installer only supports one PReP partition at this time.
Limitations and workarounds
===========================
Currently, the installer cannot **edit** partition tables. You can use existing
partitions or reformat a drive entirely, but you cannot (for example) remove a
large partition and replace it with two smaller ones.
The installer allows the creation of LVM volume groups and logical volumes and
MD raid devices, but does not allow tweaking of the parameters -- for example,
all logical volumes are linear and all MD raid devices use the default metadata
format (1.2).
These limits can both be worked around in the same way: drop to a shell and use
the usual shell commands to edit the partition table or create the LV or RAID
with desired parameters, and then select these partitions or devices as mount
points in the installer. Any changes you make while the installer is running
but before altering the storage configuration will reflected in the installer.
The installer cannot yet configure iSCSI mounts or btrfs subvolumes.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -7,5 +7,11 @@ knowledge and become better at using and configuring Subiquity.
-----
About the Server installer
==========================
.. toctree::
:maxdepth: 1
operate-server-installer
configure-storage

View File

@ -0,0 +1,96 @@
.. _operate-server-installer:
Operating the Server installer
******************************
This document explains how to use the installer in general terms. For a
step-by-step guide through the screens of the installer, you can use our
`screen-by-screen reference guide <https://discourse.ubuntu.com/t/draft-using-the-server-installer-step-by-step/16690>`_.
Get the installer
=================
Installer images are made (approximately) daily and are available from
https://cdimage.ubuntu.com/ubuntu-server/daily-live/current/. These are not
tested as extensively as the images from release day, but they contain the
latest packages and installer, so fewer updates will be required during or
after installation.
You can download the server installer for amd64 from
https://ubuntu.com/download/server and other architectures from
http://cdimage.ubuntu.com/releases/20.04/release/.
Installer UI navigation
=======================
In general, the installer can be used with the :kbd:`up` and :kbd:`down` arrows
and :kbd:`space` or :kbd:`Enter` keys and a little typing.
:kbd:`Tab` and :kbd:`Shift` + :kbd:`Tab` move the focus down and up respectively.
:kbd:`Home` / :kbd:`End` / :kbd:`Page Up` / :kbd:`Page Down` can be used to
navigate through long lists more quickly in the usual way.
Running the installer over serial
=================================
By default, the installer runs on the first virtual terminal, ``tty1``. This
is what is displayed on any connected monitor by default. However, servers do
not always have a monitor. Some out-of-band management systems provide a
remote virtual terminal, but sometimes it is necessary to run the installer on
the serial port. To do this, the kernel command line needs to
`have an appropriate console <https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html>`_
specified on it -- a common value is ``console=ttyS0`` but this is not
something that can be generically documented.
When running on serial, the installer starts in a basic mode that uses only
the ASCII character set and black and white colours. If you are connecting from
a terminal emulator such as gnome-terminal that supports Unicode and rich
colours you can switch to "rich mode" which uses Unicode, colours and supports
many languages.
.. _connect-via-ssh:
Connecting to the installer over SSH
====================================
If the only available terminal is very basic, an alternative is to connect via
SSH. If the network is up by the time the installer starts, instructions are
offered on the initial screen in basic mode. Otherwise, instructions are
available from the help menu once networking is configured.
In addition, connecting via SSH is assumed to be capable of displaying all
Unicode characters, enabling more translations to be used than can be displayed
on a virtual terminal.
Help menu
=========
The help menu is always in the top right of the screen. It contains help --
both general and for the currently displayed screen -- and some general actions.
Switching to a shell prompt
---------------------------
You can switch to a shell at any time by selecting "Enter shell" from the help
menu, or pressing :kbd:`Control` + :kbd:`Z` or :kbd:`F2`.
If you are accessing the installer via ``tty1``, you can also access a shell
by switching to a different virtual terminal (:kbd:`Control` + :kbd:`Alt` +
arrow, or :kbd:`Control` + :kbd:`Alt` + number keys, to move between virtual
terminals).
Global keys
===========
There are some global keys you can press at any time:
==================================== =============================================
Key Action
==================================== =============================================
:kbd:`ESC` Go back
:kbd:`F1` Open help menu
:kbd:`Control` + :kbd:`Z`, :kbd:`F2` Switch to shell
:kbd:`Control` + :kbd:`L`, :kbd:`F3` Redraw screen
:kbd:`Control` + :kbd:`T`, :kbd:`F4` Toggle rich mode (colour, Unicode) on and off
==================================== =============================================

View File

@ -0,0 +1,125 @@
.. _autoinstall-quickstart-s390x:
Autoinstall quick start for s390x
*********************************
The intent of this page is to provide simple instructions to perform an
autoinstall in a VM on your machine on s390x.
This page is just a slightly adapted page of the
`autoinstall quickstart page<autoinstall_quickstart>` mapped to s390x.
Download an ISO
===============
At the time of writing (just after the Kinetic release), the best place to go
is here:
https://cdimage.ubuntu.com/ubuntu/releases/22.10/release/
..code-block:: bash
wget https://cdimage.ubuntu.com/ubuntu/releases/22.10/release/ubuntu-22.10-live-server-s390x.iso -P ~/Downloads
Mount the ISO
=============
.. code-block:: bash
mkdir -p ~/iso
sudo mount -r ~/Downloads/ubuntu-22.10-live-server-s390x.iso ~/iso
Write your autoinstall config
=============================
This means creating cloud-init config as follows:
.. code-block:: bash
mkdir -p ~/www
cd ~/www
cat > user-data << 'EOF'
#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu-server
password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
username: ubuntu
EOF
touch meta-data
The crypted password is just ``ubuntu``.
Serve the cloud-init config over HTTP
=====================================
Leave this running in one terminal window:
.. code-block:: bash
cd ~/www
python3 -m http.server 3003
Create a target disk
====================
Proceed with a second terminal window:
.. code-block:: bash
sudo apt install qemu-utils
...
qemu-img create -f qcow2 disk-image.qcow2 10G
Formatting 'disk-image.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16
qemu-img info disk-image.qcow2
image: disk-image.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
Run the install!
================
.. code-block:: bash
sudo apt install qemu-kvm
...
You may need to add the default user to the ``kvm`` group: <<BR>>
.. code-block:: bash
sudo usermod -a -G kvm ubuntu # re-login to make the changes take effect
kvm -no-reboot -name auto-inst-test -nographic -m 2048 \
-drive file=disk-image.qcow2,format=qcow2,cache=none,if=virtio \
-cdrom ~/Downloads/ubuntu-22.10-live-server-s390x.iso \
-kernel ~/iso/boot/kernel.ubuntu \
-initrd ~/iso/boot/initrd.ubuntu \
-append 'autoinstall ds=nocloud-net;s=http://_gateway:3003/ console=ttysclp0'
This will boot, download the config from the server (set up in the previous
step) and run the install.
The installer reboots at the end but the ``-no-reboot`` flag to ``kvm`` means
that ``kvm`` will exit when this happens. It should take about 5 minutes.
Boot the installed system
=========================
.. code-block:: bash
kvm -no-reboot -name auto-inst-test -nographic -m 2048 \
-drive file=disk-image.qcow2,format=qcow2,cache=none,if=virtio
This will boot into the freshly installed system and you should be able to log
in as ``ubuntu/ubuntu``.

View File

@ -0,0 +1,192 @@
.. _autoinstall_quickstart:
Autoinstall quick start
***********************
The intent of this page is to provide simple instructions to perform an
autoinstall in a VM on your machine.
This page assumes that you are installing a recent Ubuntu release. However,
for older releases, you can substitute the name of the ISO image but the
instructions should otherwise be the same.
This page also assumes you are on the AMD64 architecture. There is a
:ref:`version for s390x<autoinstall-quickstart-s390x>` too.
Providing the autoinstall data over the network
===============================================
This method is the one that generalises most easily to doing an entirely
network-based install, where a machine netboots and then is automatically
installed.
Download the ISO
----------------
Go to the `Ubuntu ISO download page`_ and download the latest Ubuntu
live-server ISO.
Mount the ISO
-------------
.. code-block:: bash
sudo mount -r ~/Downloads/ubuntu-<release-number>-live-server-amd64.iso /mnt
Where you should change `<release-number>` to match the number of the LTS or
release you have downloaded (e.g., `22.04.3` for Jammy or `23.04` for the Lunar
interim release).
Write your autoinstall config
-----------------------------
This means creating cloud-init config as follows:
.. code-block:: bash
mkdir -p ~/www
cd ~/www
cat > user-data << 'EOF'
#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu-server
password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
username: ubuntu
EOF
touch meta-data
The crypted password is just "ubuntu".
Serve the cloud-init config over HTTP
-------------------------------------
Leave this running in one terminal window:
.. code-block:: bash
cd ~/www
python3 -m http.server 3003
Create a target disk
--------------------
.. code-block::
truncate -s 10G image.img
Run the install!
----------------
As before, you will need to change `<release-number>` in the following command
to match the release ISO you downloaded.
.. code-block:: bash
kvm -no-reboot -m 2048 \
-drive file=image.img,format=raw,cache=none,if=virtio \
-cdrom ~/Downloads/ubuntu-<release-number>-live-server-amd64.iso \
-kernel /mnt/casper/vmlinuz \
-initrd /mnt/casper/initrd \
-append 'autoinstall ds=nocloud-net;s=http://_gateway:3003/'
This will boot, download the config from the server (set up in the previous
step) and run the install. The installer reboots at the end but the
``-no-reboot`` flag to ``kvm`` means that ``kvm`` will exit when this happens.
It should take about 5 minutes.
Boot the installed system
-------------------------
.. code-block:: bash
kvm -no-reboot -m 2048 \
-drive file=image.img,format=raw,cache=none,if=virtio
This will boot into the freshly installed system and you should be able to log
in as ``ubuntu/ubuntu``.
Using another volume to provide the autoinstall config
======================================================
This is the method to use when you want to create media that you can just plug
into a system to have it be installed.
Download the live-server ISO
----------------------------
Go to the `Ubuntu ISO download page`_ and download the latest Ubuntu
live-server ISO.
Create your user-data and meta-data files
-----------------------------------------
.. code-block:: bash
mkdir -p ~/cidata
cd ~/cidata
cat > user-data << 'EOF'
#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu-server
password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
username: ubuntu
EOF
touch meta-data
The crypted password is just ``ubuntu``.
Create an ISO to use as a cloud-init data source
------------------------------------------------
.. code-block:: bash
sudo apt install cloud-image-utils
cloud-localds ~/seed.iso user-data meta-data
Create a target disk
--------------------
.. code-block:: bash
truncate -s 10G image.img
Run the install!
----------------
As before, you will need to change `<release-number>` in the following command
to match the release ISO you downloaded.
.. code-block:: bash
kvm -no-reboot -m 2048 \
-drive file=image.img,format=raw,cache=none,if=virtio \
-drive file=~/seed.iso,format=raw,cache=none,if=virtio \
-cdrom ~/Downloads/ubuntu-<release-number>-live-server-amd64.iso
This will boot and run the install. Unless you interrupt boot to add
'autoinstall' to the kernel command line, the installer will prompt for
confirmation before touching the disk.
The installer reboots at the end but the ``-no-reboot`` flag to ``kvm`` means
that ``kvm`` will exit when this happens.
The whole process should take about 5 minutes.
Boot the installed system
-------------------------
.. code-block:: bash
kvm -no-reboot -m 2048 \
-drive file=image.img,format=raw,cache=none,if=virtio
This will boot into the freshly installed system and you should be able to log
in as ``ubuntu/ubuntu``.
.. LINKS
.. _Ubuntu ISO download page: https://releases.ubuntu.com/

View File

@ -12,8 +12,20 @@ understand and adapt the steps to fit your specific requirements.
-----
How do I...?
============
Getting started with Autoinstall
================================
.. toctree::
:maxdepth: 1
Autoinstall quick-start guide <autoinstall-quickstart>
Autoinstall quick-start guide for s390x <autoinstall-quickstart-s390x>
Found a problem?
================
.. toctree::
:maxdepth: 1
report-bugs

56
doc/howto/report-bugs.rst Normal file
View File

@ -0,0 +1,56 @@
.. _report-bugs:
How to report a problem
***********************
We always hope, of course, that every install with the server installer
succeeds. But reality doesn't always work that way and there will sometimes be
failures of various kinds. This section explains the most useful way to report
any failures so that we can fix the bugs causing them, and we'll keep the topic
up to date as the installer changes.
Update Subiquity
================
The first thing to do is to update your Subiquity snap using `snap refresh`.
Not only because we fix issues that cause failures over time but also because
we've been working on features to make failure reporting easier.
Crash reports
=============
A failure will result in a crash report being generated which bundles up all
the information we need to fully diagnose a failure. These live in
``/var/crash`` in the installer environment, and for Ubuntu 19.10 and newer
this is persisted to the install media by default (if there is space).
When an error occurs you are presented with a dialog that allows you to upload
the report to the error tracker and offers options for continuing. Uploads to
the error tracker are non-interactive and anonymous, so they are useful for
tracking which kinds of errors are affecting most users, but they do not give
us a way to ask you to help diagnose the failure.
Create Launchpad bug report
===========================
You can create a Launchpad bug report, which lets us establish this kind
of two way communication, based on the contents of a crash report by using the
standard ``apport-cli`` tool that is part of Ubuntu. Copy the crash report to
another system, run:
.. code-block:: bash
apport-cli /path/to/report.crash
and follow the prompts.
You can also run ``apport-cli`` in the installer environment by switching to a
shell but ``apport`` won't be able to open a browser to allow you to complete
the report so you'll have to type the URL by hand on another machine.
.. note::
Bugs for the Subiquity autoinstaller are `tracked in Launchpad <https://bugs.launchpad.net/subiquity>`_.

View File

@ -76,6 +76,7 @@ constructive feedback.
:hidden:
:maxdepth: 2
Introduction to Autoinstall<intro-to-autoinstall>
tutorial/index
howto/index
reference/index

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,589 @@
.. _autoinstall_schema:
Autoinstall schema
******************
The server installer validates the provided autoinstall config against a
:ref:`JSON schema<autoinstall_JSON_schema>`.
How the config is validated
===========================
Although the schema is presented below as a single document, and if you want
to pre-validate your config you should validate it against this document, the
config is not actually validated against this document at run time. What
happens instead is that some sections are loaded, validated, and applied
first, before all other sections are validated. In detail:
1. The reporting section is loaded, validated and applied.
2. The error commands are loaded and validated.
3. The early commands are loaded and validated.
4. The early commands, if any, are run.
5. The config is reloaded, and now all sections are loaded and validated.
This is so that validation errors in most sections can be reported via the
reporting and error-commands configuration, as all other errors are.
.. _autoinstall_JSON_schema:
Schema
======
The `JSON schema`_ for autoinstall data is as follows:
.. code-block:: JSON
"type": "object",
"properties": {
"version": {
"type": "integer",
"minimum": 1,
"maximum": 1
},
"early-commands": {
"type": "array",
"items": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"reporting": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
],
"additionalProperties": true
}
},
"error-commands": {
"type": "array",
"items": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"user-data": {
"type": "object"
},
"packages": {
"type": "array",
"items": {
"type": "string"
}
},
"debconf-selections": {
"type": "string"
},
"locale": {
"type": "string"
},
"refresh-installer": {
"type": "object",
"properties": {
"update": {
"type": "boolean"
},
"channel": {
"type": "string"
}
},
"additionalProperties": false
},
"kernel": {
"type": "object",
"properties": {
"package": {
"type": "string"
},
"flavor": {
"type": "string"
}
},
"oneOf": [
{
"type": "object",
"required": [
"package"
]
},
{
"type": "object",
"required": [
"flavor"
]
}
]
},
"keyboard": {
"type": "object",
"properties": {
"layout": {
"type": "string"
},
"variant": {
"type": "string"
},
"toggle": {
"type": [
"string",
"null"
]
}
},
"required": [
"layout"
],
"additionalProperties": false
},
"source": {
"type": "object",
"properties": {
"search_drivers": {
"type": "boolean"
},
"id": {
"type": "string"
}
}
},
"network": {
"oneOf": [
{
"type": "object",
"properties": {
"version": {
"type": "integer",
"minimum": 2,
"maximum": 2
},
"ethernets": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"macaddress": {
"type": "string"
},
"driver": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"wifis": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"macaddress": {
"type": "string"
},
"driver": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"bridges": {
"type": "object"
},
"bonds": {
"type": "object"
},
"tunnels": {
"type": "object"
},
"vlans": {
"type": "object"
}
},
"required": [
"version"
]
},
{
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"version": {
"type": "integer",
"minimum": 2,
"maximum": 2
},
"ethernets": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"macaddress": {
"type": "string"
},
"driver": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"wifis": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"macaddress": {
"type": "string"
},
"driver": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"bridges": {
"type": "object"
},
"bonds": {
"type": "object"
},
"tunnels": {
"type": "object"
},
"vlans": {
"type": "object"
}
},
"required": [
"version"
]
}
},
"required": [
"network"
]
}
]
},
"ubuntu-pro": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 24,
"maxLength": 30,
"pattern": "^C[1-9A-HJ-NP-Za-km-z]+$",
"description": "A valid token starts with a C and is followed by 23 to 29 Base58 characters.\nSee https://pkg.go.dev/github.com/btcsuite/btcutil/base58#CheckEncode"
}
}
},
"ubuntu-advantage": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 24,
"maxLength": 30,
"pattern": "^C[1-9A-HJ-NP-Za-km-z]+$",
"description": "A valid token starts with a C and is followed by 23 to 29 Base58 characters.\nSee https://pkg.go.dev/github.com/btcsuite/btcutil/base58#CheckEncode"
}
},
"deprecated": true,
"description": "Compatibility only - use ubuntu-pro instead"
},
"proxy": {
"type": [
"string",
"null"
],
"format": "uri"
},
"apt": {
"type": "object",
"properties": {
"preserve_sources_list": {
"type": "boolean"
},
"primary": {
"type": "array"
},
"mirror-selection": {
"type": "object",
"properties": {
"primary": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"const": "country-mirror"
},
{
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"arches": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"uri"
]
}
]
}
}
}
},
"geoip": {
"type": "boolean"
},
"sources": {
"type": "object"
},
"disable_components": {
"type": "array",
"items": {
"type": "string",
"enum": [
"universe",
"multiverse",
"restricted",
"contrib",
"non-free"
]
}
},
"preferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"package": {
"type": "string"
},
"pin": {
"type": "string"
},
"pin-priority": {
"type": "integer"
}
},
"required": [
"package",
"pin",
"pin-priority"
]
}
},
"fallback": {
"type": "string",
"enum": [
"abort",
"continue-anyway",
"offline-install"
]
}
}
},
"storage": {
"type": "object"
},
"identity": {
"type": "object",
"properties": {
"realname": {
"type": "string"
},
"username": {
"type": "string"
},
"hostname": {
"type": "string"
},
"password": {
"type": "string"
}
},
"required": [
"username",
"hostname",
"password"
],
"additionalProperties": false
},
"ssh": {
"type": "object",
"properties": {
"install-server": {
"type": "boolean"
},
"authorized-keys": {
"type": "array",
"items": {
"type": "string"
}
},
"allow-pw": {
"type": "boolean"
}
}
},
"snaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"channel": {
"type": "string"
},
"classic": {
"type": "boolean"
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"active-directory": {
"type": "object",
"properties": {
"admin-name": {
"type": "string"
},
"domain-name": {
"type": "string"
}
},
"additionalProperties": false
},
"codecs": {
"type": "object",
"properties": {
"install": {
"type": "boolean"
}
}
},
"drivers": {
"type": "object",
"properties": {
"install": {
"type": "boolean"
}
}
},
"oem": {
"type": "object",
"properties": {
"install": {
"oneOf": [
{
"type": "boolean"
},
{
"type": "string",
"const": "auto"
}
]
}
},
"required": [
"install"
]
},
"timezone": {
"type": "string"
},
"updates": {
"type": "string",
"enum": [
"security",
"all"
]
},
"late-commands": {
"type": "array",
"items": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"shutdown": {
"type": "string",
"enum": [
"reboot",
"poweroff"
]
}
},
"required": [
"version"
],
"additionalProperties": true
}
Regeneration
============
The schema above can be regenerated by running ``make schema`` in a Subiquity
source checkout.
.. LINKS
.. _JSON schema: https://json-schema.org/

View File

@ -5,16 +5,13 @@ Our reference section contains support information for Subiquity.
This includes details on the network requirements, API definitions, support
matrices and so on.
-----
Autoinstall reference manual
============================
.. toctree::
:maxdepth: 1
autoinstall-reference.rst
-----
.. toctree::
:maxdepth: 1
Autoinstall configuration <autoinstall-reference.rst>
Autoinstall JSON schema <autoinstall-schema.rst>

View File

@ -0,0 +1,123 @@
Basic server installation
*************************
This chapter provides an overview of how to install Ubuntu Server Edition. You
can also refer to this guide on
:ref:`how to operate the installer <operate-server-installer>` for more
information on using the installer, and to this
:doc:`screen-by-screen reference guide <screen-by-screen>` for more
information about each of the installer screens.
Preparing to install
====================
This section explains various aspects to consider before starting the
installation.
System requirements
-------------------
Ubuntu Server Edition provides a common, minimalist base for a variety of
server applications, such as file/print services, web hosting, email hosting,
etc. This version supports four 64-bit architectures:
* amd64 (Intel/AMD 64-bit)
* arm64 (64-bit ARM)
* ppc64el (POWER8 and POWER9)
* s390x (IBM Z and LinuxONE)
The recommended system requirements are:
* CPU: 1 gigahertz or better
* RAM: 1 gigabyte or more
* Disk: a minimum of 2.5 gigabytes
Perform a system back up
------------------------
Before installing Ubuntu Server Edition you should make sure all data on the
system is backed up.
If this is not the first time an operating system has been installed on your
computer, it is likely you will need to re-partition your disk to make room
for Ubuntu.
Any time you partition your disk, you should be prepared to lose everything on
the disk should you make a mistake or something goes wrong during partitioning.
The programs used in installation are quite reliable, most have seen years of
use, but they also perform destructive actions.
Download the server ISO
-----------------------
You can obtain the amd64 server download from https://releases.ubuntu.com/.
Select the version you wish to install and select the "server install image"
download. Note that the server download includes the installer.
There are platform-specific how-to guides for installations on:
* `s390x LPAR <https://discourse.ubuntu.com/t/interactive-live-server-installation-on-ibm-z-lpar-s390x/16601>`_
* `z/VM <https://discourse.ubuntu.com/t/interactive-live-server-installation-on-ibm-z-vm-s390x/16604>`_
* `ppc64el <https://discourse.ubuntu.com/t/using-a-virtual-cdrom-and-petitboot-to-start-a-live-server-installation-on-ibm-power-ppc64el/16694>`_
Create a bootable USB
---------------------
There are many ways to boot the installer but the simplest and most common way
is to
`create a bootable USB stick <https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-ubuntu>`_
to boot the system to be installed with
(`tutorials for other operating systems <https://ubuntu.com/search?q=%22create+a+bootable+USB+stick%22>`_
are also available).
Perform the installation
========================
Now that you have prepared your install medium, you are ready to install.
Boot the installer
------------------
Plug the USB stick into the system to be installed and start it.
Most computers will automatically boot from USB or DVD, though in some cases
this is disabled to improve boot times. If you don't see the boot message and
the "Welcome" screen which should appear after it, you will need to set your
computer to boot from the install media.
There should be an on-screen message when the computer starts, telling you what
key to press for settings or a boot menu. Depending on the manufacturer, this
could be :kbd:`Escape`, :kbd:`F2`, :kbd:`F10` or :kbd:`F12`. Restart your
computer and hold down this key until the boot menu appears, then select the
drive with the Ubuntu install media.
If you are still having problems, check out the
`Ubuntu Community documentation on booting from
CD/DVD <https://help.ubuntu.com/community/BootFromCD>`_.
After a few moments, the installer will start in its language selection screen.
.. image:: figures/basic-installation-start-screen.png
:alt: Welcome screen of the Server installer showing the language selection options
Using the installer
-------------------
The installer is designed to be easy to use and have sensible defaults so for
a first install you can mostly just accept the defaults for the most
straightforward install:
* Choose your language
* Update the installer (if offered)
* Select your keyboard layout
* Do not configure networking (the installer attempts to configure wired
network interfaces via DHCP, but you can continue without networking if this
fails)
* Do not configure a proxy or custom mirror unless you have to in your network
* For storage, leave "use an entire disk" checked, and choose a disk to install
to, then select "Done" on the configuration screen and confirm the install
* Enter a username, hostname and password
* On the SSH and snap screens, select "Done"
* You will now see log messages as the install is completed
* Select restart when this is complete, and log in using the username and
password provided

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -11,8 +11,8 @@ capable of.
-----
Introduction to autoinstall
===========================
For Ubuntu Server
=================
This tutorial introduces the core concepts of autoinstall and is recommended as
the first step.
@ -20,4 +20,6 @@ the first step.
.. toctree::
:maxdepth: 1
intro-to-autoinstall.rst
basic-server-installation
screen-by-screen

View File

@ -0,0 +1,174 @@
Screen-by-screen installer
**************************
The installer is designed to be easy to use without documentation. However,
this guide provides more information on each of the screens of the installer to
help walk you through an installation.
Language selection
==================
.. image:: figures/sbs-language.png
:alt:
This screen selects the language for the installer and the default language
for the installed system.
More languages can be displayed if you
`connect via SSH <https://discourse.ubuntu.com/t/draft-using-the-server-installer/16689#connect-via-ssh>`_.
Refresh
=======
.. image:: figures/sbs-refresh.png
:alt:
This screen is shown if there is an update available for the installer. This
allows you to get any improvements and bug fixes made since release.
If you choose to update, the new version will be downloaded and the installer
will restart at the same point of the installation.
Keyboard
========
.. image:: figures/sbs-keyboard.png
:alt:
Choose the layout and variant of keyboard attached to the system, if any. When
running in a virtual terminal, it is possible to guess the layout and variant
by answering questions about the keyboard.
Zdev (s390x only)
=================
.. code-block::
====================================================================
Zdev setup
====================================================================
ID ONLINE NAMES ^
generic-ccw │
0.0.0009 > │
0.0.000c > │
0.0.000d > │
0.0.000e > │
dasd-eckd │
0.0.0190 > │
0.0.0191 > │
0.0.019d > │
0.0.019e >┌────────────┐
0.0.0200 >│< (close) │
0.0.0300 >│ Enable │
0.0.0400 >│ Disable │
0.0.0592 >└────────────┘ v
[ Continue ]
[ Back ]
This screen is only shown on s390x and allows z-specific configuration of
devices.
The list of devices can be long. :kbd:`Home` / :kbd:`End` / :kbd:`PageUp`
/ :kbd:`PageDown` can be used to navigate through the list more quickly.
Network
=======
.. image:: figures/sbs-network.png
:alt:
This screen allows the configuration of the network. Ubuntu Server uses NetPlan
to configure networking and the UI of the installer can configure a subset of
NetPlan's capabilities. In particular it can configure DHCP or static
addressing, VLANs and bonds.
If networking is present (defined as "at least one interface has a default
route") then the installer will install updates from the archive at the end of
installation.
Proxy
=====
.. image:: figures/sbs-proxy.png
:alt:
The proxy configured on this screen is used for accessing the package
repository and the snap store both in the installer environment and in the
installed system.
Mirror
======
.. image:: figures/sbs-mirror.png
:alt:
The installer will attempt to use ``geoip`` to look up an appropriate default
package mirror for your location. If you want or need to use a different
mirror, enter its URL here.
Storage
=======
.. image:: figures/sbs-storage.png
:alt:
Storage configuration is a complicated topic and :ref:`has its own page for documentation <configure-storage>`.
.. image:: figures/sbs-confirm-storage.png
:alt:
Once the storage configuration is confirmed, the install begins in the
background.
Identity
========
.. image:: figures/sbs-identity.png
:alt:
The default user will be an administrator, able to use ``sudo`` (this is why a
password is needed, even if SSH public key access is enabled on the next
screen).
SSH
===
.. image:: figures/sbs-ssh.png
:alt:
A default Ubuntu install has no open ports. It is very common to administer
servers via SSH so the installer allows it to be installed with the click of a
button.
You can import keys for the default user from GitHub or Launchpad.
If you import a key, then password authentication is disabled by default but it
can be re-enabled again at a later time if you wish.
Snaps
=====
.. image:: figures/sbs-snaps.png
:alt:
If a network connection is enabled, a selection of snaps that are useful in a
server environment are presented and can be selected for installation.
Installation logs
=================
.. image:: figures/sbs-logs.png
:alt:
The final screen of the installer shows the progress of the installer and
allows viewing of the full log file. Once the install has completed and
security updates installed, the installer waits for confirmation before
restarting.
.. image:: figures/sbs-complete.png
:alt: