Hello @Gary Mansell
Updating packages on every node startup using a YAML Cloud-Init script in CycleCloud can indeed be tricky, especially when kernel updates require a reboot. Here are some suggestions that I would like to make
Using Cloud-Init with CycleCloud:-
Cloud-Init Script: You can use a Cloud-Init script to update packages on startup. However, for kernel updates that require a reboot, you might need to handle the reboot process within the script. This can be done by scheduling a reboot after the updates are applied and ensuring the script runs again after the reboot.
AT Command: Another approach is to use the at
command within the Cloud-Init script to schedule tasks that need to run after the initial Cloud-Init process completes. This can help manage reboots and subsequent updates.
Customizing the VM Image:-
If managing reboots and updates through Cloud-Init scripts seems too complex, you might find it easier to:
Create a Custom VM Image: Take a copy of the Microsoft HPC Ubuntu 22.04 VM image, apply all necessary updates, and then use this custom image for your nodes. This way, you can ensure that all nodes start with the latest updates and only need to apply incremental updates during their lifecycle.
Monthly Updates: Regularly update your custom image (e.g., monthly) to include the latest patches and kernel updates. This reduces the need for extensive updates on node startup and minimizes downtime due to reboots.
If I have answered your query, please click "Accept as answer" as a token of appreciation