====================================================
Installing from a Bonded Internet ISO for Debian 10
====================================================

Nodes can be provisioned using the ISO images available from the
management server. These bootable images automatically install and
configure Bonding on a device. Images are available in the ISO format
and must be `written to a USB
disk <../../provisioning-nodes/creating-bootable-usb-disks-from-iso-images.html>`__ or
burned to a CD-R/CD-RW. Only 64-bit (amd64) images are
available.

Due to its simplicity, this is the recommended installation method for
small to medium-sized installations.

Not all installation packages are contained in the ISOs. Packages and
configuration are downloaded during the installation process, so you
must have Internet access while provisioning with the custom ISOs.

.. note::
    Installation media for this should be regenerated regularly to ensure that
    the most recent version of bonding is being installed.

The Debian 10 installation media will provision a device with a base image of
Debian 10 which already has bonding installed. This method will install
whichever version of bonding the installer was created with.

The installation process expects networking to be available so that it can
download the initial configuration. By default, DHCP will be performed on all
interfaces until a working network is found. If a DHCP server is not available
see :ref:`custom-networking-during-installation` to configure static
networking.

The installer will ask you to confirm you want to overwrite the existing disk
and then install the image onto the device. The installer will then ask you for
the node key. You can leave this blank to setup as a default bonder, or enter a
key to download and apply the node's configuration.


Downloading ISO files
----------------------

The provisioning ISOs are available in the Space section of the
application, under the Node Setup tab of a space page. This tab is shown
only to users who have the "node setup" permission.

First load the list of spaces:

|image0|

Then select the space whose ISO you want to download:

|image1|

Finally, load the Node Setup tab:

|image2|

If no ISOs are listed, the space has been configured not to have its own
ISO files. In this case, do one of the following:

#. `Update the space settings <../../../spaces/managing-spaces.html>`__ so that
   ISOs are created for the space, or ask an administrator to do so if
   you don't have the appropriate permissions.
#. Ask an administrator in the parent space for the URL of an ISO file
   from the parent space. The ISO can be used to image a node in your
   own space, but will have the default root password specified in the
   parent space.

Mounting the ISO
-----------------

The ISO file needs to be made available to the node hardware somehow.
After loading the ISO, you'll also need to update the BIOS so the
hardware boots from it; please refer to your hardware instructions or
review the steps for some `common bonder
hardware <../../updating-hardware-bios-serial-and-boot-settings.html>`__.

Use one of the following methods:

Virtual guest CD-ROM
+++++++++++++++++++++

When imaging a virtual guest, use your virtualization provider's console
to mount the ISO in the guest's CD drive.

.. seealso::
    See our `documentation on virtualization best practices <../../supported-environments-for-nodes.html#virtualization-best-practices>`__ for configuration requirements
    and recommendations.

USB disk
+++++++++

Create a bootable USB disk from the ISO file by following the
instructions at `Creating bootable USB disks from ISO
images <../../provisioning-nodes/creating-bootable-usb-disks-from-iso-images.html>`__.

DVD
++++

.. note::
    The  Debian 10 installation media is too large to fit on a CD.

For instructions on burning ISO images to DVD, refer to documentation from your
DVD-ROM drive manufacturer or operating system vendor.

Terminal interface
-------------------

If the installation disk or CD is not the highest boot priority, the BIOS will
have a boot menu that will let you select or reorder device boot order. Some
common keys are :code:`tab`, :code:`F12`, :code:`F10`, :code:`F8` or
:code:`F2`. Consult manufacturer documentation details.

|image3|

The initial boot menu will present the following install options:

* Install bonding: the install will prompt for a node key and download the node's configuration from the management server.
* Install default bonder: the install will not prompt for a node key and will provision the device as a default bonder.

For each of the above there are 3 console options:

* Graphical console: install using a physical display and keyboard connected to the device.
* Serial console 1: install using the first serial interface of the device,
  with 115,200 baud, no parity, 8 data bits, 1 stop bit, and no flow control.
* Serial console 2: install using the second serial interface of the device,
  with all of the same remaining options listed above.

.. note::
    Devices come with a variety of default serial settings. You may need to
    update the serial settings of the device to 115,200 baud. To change the
    settings, refer to the manufacturer's documentation or read `these examples
    <../../updating-hardware-bios-serial-and-boot-settings.html>`__.

After the install option is selected, you may be prompted destroying all data
on the disk. Select "Yes" to continue with the bonding install.

|image4|

|image5|

.. |image0| image:: /attachments/10715533/11668216.png
.. |image1| image:: /attachments/10715533/11668218.png
.. |image2| image:: /attachments/10715533/11668219.png
.. |image3| image:: /attachments/10715533/grub-menu.png
.. |image4| image:: /attachments/10715533/destroy-data.png
.. |image5| image:: /attachments/10715533/install.png


.. _custom-networking-during-installation:

Setting custom network parameters during installation
-----------------------------------------------------

When installing on a network that does not have a DHCP server available,
static configuration can be set via the ``GNU GRUB`` menu that is shown when
the ISO boots.

While the menu is displayed, use the arrow keys to select the desired
installation type but do not hit the enter key. Instead, hit the ``e`` key to
edit the menu entry. Using the arrow keys, move to the line that starts with
``$linux`` and ends with ``ip=dhcp``. Change ``ip=dhcp`` to the appropriate
static configuration options with with the following format::

    ip=<ip-address>::<gateway>:<netmask>::<interface>:none:<nameserver>

For example, assuming an interface of ``enp2s0``, an IP of ``192.168.4.10/24``
a gateway of ``192.168.1.1``, and a nameserver of ``8.8.8.8``, use the
following parameters::

    ip=192.168.1.10::192.168.1.1:255.255.255.0::enp2s0:none:8.8.8.8

Hit ``Ctrl-x`` or ``F10`` to continue with the install.

If you are having issues, you can add the ``rd.debug`` option as well to see
what the boot process is doing.

Note that the interfaces will be named according to `predictable interface
naming rules
<https://freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/>`__.
The name of the interface will be consistent for a specific hardware
configuration. If you do not know what the name of the desired device will be,
add the following option::

    rd.break=pre-mount

This will bring up a shell allowing inspection of the system. To list the
interfaces, run::

    ip addr

If you are familiar with ``ip`` commands, you may also set up and test the
network manually in this shell. Hitting ``Ctrl-d`` will continue the
installation process.
