I am attempting to set up containerd for kubernetes through Ubuntu's autoinstall mechanism (for Ubuntu 20.04).
Some commands when used in late-commands
seem to fail without obvious reason. (Exit > 0 with no descriptive output.) The failing snippet from late-commands
looks like:
late-commands:
- printf 'overlay\nbr_netfilter\n' > /target/etc/modules-load.d/containerd.conf
- curtin in-target --target=/target -- /usr/sbin/modprobe overlay
- curtin in-target --target=/target -- /usr/sbin/modprobe br_netfilter
The installer errors out showing that the modprobe
call exits 1.
I restart the VM, log in as ubuntu
, and become root
. At that time I can run modprobe overlay
successfully (exit 0). I also cannot see /var/crash/16238...
(see above) as it does not appear to exist on the target. (I'm guessing it exists in the installer environment.) /var/log/installer
contains nothing useful either.
Given the above, what it is that might make modprobe
fail as a late-command
? Seemingly unrelatedly, I've also tried a chage -d 0
call that failed with zero error message also. Is there some explanation for why some commands may not exist or not work properly within the target environment at that stage?
Edit 1: regarding the usermod failure, I'm guessing as this reply hints at that the ubuntu user is not created at that point in the install process.
Edit 2: I added an error-commands
which seems useful for debugging:
error-commands:
- /usr/bin/tail -n 250 /var/log/syslog
This now shows Module overlay not found in /lib/modules/...
: