-
Notifications
You must be signed in to change notification settings - Fork 4
Added a minimal guide clarifying network-based installation #123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 8 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
56fe7b6
Added a minimal guide clarifying network based installation
teclator 4190a2a
Changes based on CR
teclator 23feccc
Fixed PXE server documentation link
teclator bee9e36
Apply suggestions from code review
teclator 5e4e8fb
Use :::note
teclator 466a851
Small improvements.
teclator 3410ec9
Fix :::note
teclator db5cac7
Some changes from CR.
teclator 971f6d8
Some small change specially to line lengths
teclator 5e58bc5
Fixed squashfs img location
teclator 015db3e
Use a reference link for dracut documentation
teclator db9cc75
Added newline to renaming interface warning
teclator 6918b3f
Small change
teclator File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# Agama network-based installation | ||
|
||
The Agama installer ships as a Live ISO image generated by [kiwi-ng](https://osinside.github.io/kiwi/index.html). | ||
|
||
It can be booted directly from an USB stick, CD/DVD or from the network using | ||
the initrd and the kernel extracted from the ISO as it is documented [here](https://osinside.github.io/kiwi/working_with_images/network_live_iso_boot.html#booting-a-live-iso-image-from-network). | ||
|
||
As the remote boot process of a live ISO image places the ISO file into a ramdisk | ||
by default it is recommended to also extract the compressed root file system | ||
(squashfs.img). | ||
|
||
Once extracted, these files must be copied to an appropriate location accessible via FTP, TFTP, HTTP, HTTPS... | ||
|
||
```bash | ||
sudo mount -oro,loop /srv/install/iso/agama-installer.iso /mnt | ||
sudo cp /mnt/boot/x86_64/loader/linux /srv/tftpboot/boot/images/agama/x86_64/ | ||
sudo cp /mnt/boot/x86_64/loader/initrd /srv/tftpboot/boot/images/agama/x86_64/ | ||
sudo cp /mnt/LiveOS/squashfs.img /srv/tftpboot/boot/images/agama/x86_64/ | ||
``` | ||
|
||
How to set up a PXE server is out of scope of this guide but some documentation for SLES can be found at [PXE Server](#pxe-server-documentation). | ||
|
||
## Important changes from YaST installer | ||
|
||
There are some important changes that affect the installation workflow and specially the [kernel boot options](#kernel-boot-options). | ||
|
||
- Linuxrc is not included and [dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) takes care of booting the installer. | ||
teclator marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
- NetworkManager is the default network backend. | ||
|
||
We tried to provide some [compatibility with Linuxrc options](https://agama-project.github.io/docs/user/reference/boot_options/linuxrc_compatibility) but we recommend migrating to [dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) specific ones because not all the use cases are supported. | ||
|
||
## Kernel boot options | ||
|
||
As there is no Linuxrc anymore, the options given as kernel parameters should be replaced by [dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) specific ones like the network configuration and the installer sources. | ||
|
||
For Agama specific options check the [boot options](https://agama-project.github.io/docs/user/reference/boot_options) | ||
section. | ||
|
||
### Specify the installer image location | ||
|
||
It already requires network configuration enforcing `rd.neednet=1`. | ||
|
||
- `root=live:http://192.168.0.1/agama/boot/x86_64/squashfs.img ip=dhcp` | ||
|
||
Sets the SquashFS image or ISO to be fetched by the livenet | ||
[dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) module | ||
|
||
- `inst.install_url=http://192.168.0.1/agama/install/x86_84` | ||
|
||
Sets the repositories to be used by the installer instead of the ones defined | ||
teclator marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
in the product definition. It is not necessary in case of an online | ||
installation with a registered product. | ||
|
||
### Network configuration | ||
|
||
Network will be configured by | ||
[dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) only if | ||
really required so, there are some kernel boot options like `root=live:<URL>` | ||
that already requires or enforces the network to be configured, but not all | ||
the kernel options (e.g., `inst.install_url`, `ip`) do so, therefore, to ensure | ||
the network is configured by | ||
[dracut](https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html) | ||
set `rd.neednet=1`. | ||
|
||
:::warning | ||
|
||
If explicit network configuration is provided using the `ip=` kernel boot option, | ||
Agama will disable the NetworkManager DHCP autosetup when starting the installer | ||
marking the NetworkManager connections generated by the nm-initrd-generator to | ||
be persisted after the installation by default. | ||
|
||
The `inst.copy_network=0` kernel boot option can be used to disable the copy of | ||
NetworkManager connections from `/etc/NetworkManager/system-connections` to the | ||
target system. | ||
|
||
::: | ||
|
||
### DHCP configuration | ||
|
||
- `ip=dhcp` | ||
|
||
nm-initrd-generator will generate a profile using DHCP allowing multiple | ||
devices to apply it at the same time. | ||
|
||
- `ip=enp1s0:dhcp` | ||
|
||
The generated profile will be assigned to enp1s0 interface. | ||
|
||
- `ip=aa-bb-cc-dd-ee-ff:dhcp` | ||
|
||
The generated profile will be assigned to the device with the specified mac address | ||
|
||
### DHCP static configuration | ||
|
||
- `ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[<dns1>][:<dns2>]]` | ||
|
||
- `ip=10.144.136.45::10.144.136.254:24:agama1.suse.cz:enc800` | ||
|
||
Static configuration using a prefix length as the netmask. | ||
|
||
- `ip=192.168.100.228::192.168.100.1:255.255.255.0:agama.test:aa-bb-cc-dd-ee-ff` | ||
|
||
The interface can be also a mac address. | ||
|
||
### Use custom interface naming | ||
|
||
- `ifname=<interface>:<MAC>` | ||
|
||
Assign network device name `<interface>` to the NIC with the MAC `<MAC>`. | ||
|
||
- `ifname=bootnet:AA:BB:CC:DD:EE:FF ip=bootnet:dhcp rd.neednet=1` | ||
|
||
:::warning | ||
|
||
Agama will persist the renaming of the interface after the installation | ||
through a systemd network link file (e.g., | ||
`/etc/systemd/network/10-agama-ifname-bootnet.link`). The file can be | ||
removed using a [post-installation | ||
script](/docs/user/reference/profile/scripts.md#post-installation-scripts) | ||
at the Agama configuration. | ||
|
||
::: | ||
|
||
## PXE server documentation | ||
|
||
For more information about setting up a PXE Boot Server on SUSE Linux | ||
Enterprise Server 16.0 refer to [this guide](https://susedoc.github.io/doc-modular/main/html/SLES-PXE-server/). |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.