You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2024-12-11-Cobbler-v3.3.7-Ubuntu-Deployment-Guide.md
+12-4Lines changed: 12 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,9 +26,11 @@ Starting where the [Beginner's guide](/blog/2024/Cobbler-v3.3.6-Beginners-Guide/
26
26
27
27
- Despite my efforts (and unlike the [Beginner's Guide](/blog/2024/Cobbler-v3.3.6-Beginners-Guide/)) **Ubuntu 20.04 PXE clients will require an internet connection** at the time of installation, since the `fallback: offline-install` option is not available in that version's `cloud-init` implementation and was only introduced as of [Ubuntu 22.04 release](https://discourse.ubuntu.com/t/jammy-jellyfish-release-notes/24668)..
28
28
29
+
- Also unlike my [other](blog/2024/Cobbler-v3.3.7-Debian-Deployment-Guide/)[guides](https://sus-admin.github.io/blog/2024/Cobbler-v3.3.7-OpenSUSE-Deployment-Guide/), this PXE deployment will use the installation media (ISO file) instead of a repo mirror when installing the target OS *(except for Ubuntu 20.04, however it still requires to use the ISO file in PXE process, so it's very similar and consistent)*, so even though the distribution will be imported as usual, it's important to make the ISO file available over HTTP as well.
30
+
29
31
## Cobbler Server Prep
30
32
31
-
Cobbler v3.3.7 does not come with a sample template for the `cloud-init` autoinstall files, so create that before getting started, as well as some Cobbler sync-triggers to correct the bootloader configurations for compatability with `cloud-init`.
33
+
Cobbler v3.3.7 does not come with a sample template for the `cloud-init` autoinstall files, so create those before getting started, as well as some Cobbler sync-triggers to correct the bootloader configurations for compatability with `cloud-init`.
32
34
33
35
### Dependencies
34
36
@@ -57,7 +59,7 @@ Create the new Cobbler template and snippets necessary to generate the `cloud-in
57
59
58
60
> The above section should resemble the standard [netplan](https://netplan.readthedocs.io/en/latest/netplan-yaml/) YAML configuration file for Ubuntu once generated.
59
61
>
60
-
> **Assumptions:** For automated Cobbler System deployments (not Profiles...), each system interface defined should have the corresponding MAC address defined, a standard requirement in Cobbler. Less intuitively, this solution only adds DNS servers to static interfaces with an IP address defined, since DNS servers are set per-system in Cobbler, but per-interface in Ubuntu cloud-init/netplan; the above snippet will revert any interface to DHCP if it is set to static but has no IP defined.
62
+
> **Assumptions:** For automated Cobbler System deployments (not Profiles...), each system interface defined should have the corresponding MAC address defined (a standard requirement in Cobbler). Less intuitively, this solution only adds DNS servers to static interfaces with an IP address defined, since DNS servers are set per-system in Cobbler, but per-interface in Ubuntu cloud-init/netplan; the above snippet will revert any interface to DHCP if it is set to static but has no IP defined.
61
63
62
64
Create 2 Cobbler sync-triggers to correct the GRUB and PXELINUX boot configurations to support Ubuntu `cloud-init` installations, which will run each time the `cobbler sync` action is performed:
63
65
@@ -93,13 +95,17 @@ cd ~/Downloads && wget https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-ser
93
95
```
94
96
## Ubuntu 20.04 PXE Deployment
95
97
96
-
Mount the Ubuntu 20.04 live server installer and import to Cobbler, then copy the installation media to the public HTTP share
98
+
Mount the Ubuntu 20.04 live server installer and import to Cobbler
97
99
98
100
```shell
99
101
[ -d /mnt/Ubuntu] || mkdir /mnt/Ubuntu
100
102
mount -t iso9660 -o loop,ro ~/Downloads/ubuntu-20.04.6-live-server-amd64.iso /mnt/Ubuntu
101
103
cobbler import --name Ubuntu20 --path /mnt/Ubuntu
104
+
```
105
+
106
+
Copy the installation media to the public HTTP share *(The location of this file will be used in the kernel-options for relavent Cobbler Distros/Profiles/Systems)*
Finally, sync up Cobbler, then the **PXE Client** VM can be powered on and should automatically boot to PXE and install Ubuntu 20.04 to the VM HDD using the "Ubuntu20_cloud-init_user-data"*cloud-init* template created above.
151
+
Finally, sync up Cobbler, then the **PXE Client** VM can be powered on and should automatically boot to PXE and install Ubuntu 20.04 to the VM HDD using the "Ubuntu20_cloud-init_user-data"`cloud-init` template created above.
146
152
147
153
- The resulting system will have the `root` super-user account disabled, and will only be accessible with the `ubuntu` user specified in the *cloud-init* config file.
0 commit comments