From: Christoph Heiss <c.heiss@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [RFC PATCH installer 0/5] fix #5579: allow specifying optional first-boot script
Date: Wed, 13 Nov 2024 14:59:02 +0100 [thread overview]
Message-ID: <20241113135908.1622968-1-c.heiss@proxmox.com> (raw)
This implements #5579 [0] as proposed by Thomas [1].
Sending it as an RFC as probably some bike-shedding has still to be done
anyway, in regards of naming/filesystem locations etc. -- but should
give an good idea how it can/should work in the end.
Adds a new (optional) section to the auto-installer answer file called
`first-boot`, which can be used to the configure a script/executable
file to run on the first boot after the installation.
To used the baked-in (via the `proxmox-auto-install-assistant prepare-iso
--on-first-boot`) file from the ISO:
[first-boot]
source = "from-iso"
Or fetching it from a URL:
[first-boot]
source = "from-url"
url = "http://example.com/first-boot"
cert_fingerprint = ".." # if needed
The structure the section is mostly taken from the `network` section to
provide consistency.
[0] https://bugzilla.proxmox.com/show_bug.cgi?id=5579
[1] https://bugzilla.proxmox.com/show_bug.cgi?id=5579#c5
Inner workings
==============
This creates a new package `proxmox-first-boot`, which only has a
systemd .service file. The service is conditioned to start based on the
existence of a flag file in /var/lib/proxmox-first-boot, which will
be created by the installer if such a script is supplied by the user.
Q: The condition could maybe be set directly on the script instead of a
separate file, since the executable file is only present when
supplied anyway?
Testing
=======
Tested this with the latest (8.2-2) PVE ISO, both baking it into the ISO
and fetching it from an URL. Did not test with PBS explicitly (yet), but
I see no reason why it shouldn't work, as it is completely
product-agnostic.
Diffstat
========
Christoph Heiss (5):
common: add function for issuing HTTP GET requests
fix #5579: first-boot: add initial service packaging
fix #5579: auto-install-assistant: enable baking in first-boot script
fix #5579: auto-installer: add optional first-boot hook script
fix #5579: install: copy over `proxmox-first-boot` script if present
Makefile | 13 +++-
Proxmox/Install.pm | 20 ++++++
debian/control | 7 ++
debian/proxmox-first-boot.install | 1 +
debian/rules.proxmox-first-boot | 13 ++++
proxmox-auto-install-assistant/Cargo.toml | 1 +
proxmox-auto-install-assistant/src/main.rs | 17 +++++
proxmox-auto-installer/Cargo.toml | 2 +-
proxmox-auto-installer/src/answer.rs | 27 +++++++
.../src/bin/proxmox-auto-installer.rs | 42 +++++++++--
proxmox-auto-installer/src/utils.rs | 15 +++-
proxmox-first-boot/Makefile | 11 +++
.../etc/proxmox-first-boot.service | 16 +++++
proxmox-installer-common/src/http.rs | 71 +++++++++++++------
proxmox-installer-common/src/lib.rs | 3 +
15 files changed, 227 insertions(+), 32 deletions(-)
create mode 100644 debian/proxmox-first-boot.install
create mode 100644 debian/rules.proxmox-first-boot
create mode 100644 proxmox-first-boot/Makefile
create mode 100644 proxmox-first-boot/etc/proxmox-first-boot.service
--
2.47.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next reply other threads:[~2024-11-13 13:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 13:59 Christoph Heiss [this message]
2024-11-13 13:59 ` [pve-devel] [RFC PATCH installer 1/5] common: add function for issuing HTTP GET requests Christoph Heiss
2024-11-14 20:22 ` [pve-devel] applied: " Thomas Lamprecht
2024-11-13 13:59 ` [pve-devel] [RFC PATCH installer 2/5] fix #5579: first-boot: add initial service packaging Christoph Heiss
2024-11-14 20:23 ` Thomas Lamprecht
2024-11-13 13:59 ` [pve-devel] [RFC PATCH installer 3/5] fix #5579: auto-install-assistant: enable baking in first-boot script Christoph Heiss
2024-11-13 13:59 ` [pve-devel] [RFC PATCH installer 4/5] fix #5579: auto-installer: add optional first-boot hook script Christoph Heiss
2024-11-14 20:33 ` Thomas Lamprecht
2024-11-14 21:02 ` Thomas Lamprecht
2024-11-13 13:59 ` [pve-devel] [RFC PATCH installer 5/5] fix #5579: install: copy over `proxmox-first-boot` script if present Christoph Heiss
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241113135908.1622968-1-c.heiss@proxmox.com \
--to=c.heiss@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox