saab-simc-admin / palletjack

Lightweight Inventory/Asset/Configuration Management Database
MIT License
5 stars 5 forks source link

Include Ubuntu netinstall #139

Open creideiki opened 6 years ago

creideiki commented 6 years ago

It would be nice to be able to netinstall Ubuntu from a warehouse as well as CentOS. Unfortunately, the example warehouse makes a few too many CentOS-specific assumptions about how network installation works.

Re-organise the key space and the transform rules so we can support more than one netinstall system in a sane manner, and include an Ubuntu profile in the example warehouse.

Probably relevant links:

creideiki commented 6 years ago

I made a quick and dirty proof of concept manual profile by creating the file netinstall/Ubuntu-16.04.3-x86_64/Manual/kickstart.yaml containing:

host:
  kickstart:
    label: manual configuration
  ubiquity:
    baseurl: "http://kickstart/ubuntu/16.04.3/"

and making this update to transforms.yaml:

diff --git a/transforms.yaml b/transforms.yaml
index 08ac11c..2c6c8ea 100644
--- a/transforms.yaml
+++ b/transforms.yaml
@@ -254,6 +254,20 @@
         os:
           key: "system.os"
           regexp: "^(?<os>.*)$"
+        baseurl:
+          key: "host.ubiquity.baseurl"
+          regexp: "^(?<protocol>.+)://(?<host>[^/]+)(?<path>.*)$"
+      produce:
+      - "initrd=/boot/#[os]/initrd.img
+         mirror/country=manual
+         mirror/protocol?=#[protocol]
+         mirror/http/hostname?=#[host]
+         mirror/http/directory?=#[path]"
+  - synthesize_regexp:
+      sources:
+        os:
+          key: "system.os"
+          regexp: "^(?<os>.*)$"
         ksurl:
           key: "host.kickstart.ksurl"
           regexp: "^(?<ksurl>http://.*)$"

This works, but is ugly, since it still treats Kickstart as the standard and Ubiquity/Debian-installer as the sole exception.