I’m trying to make a Proxmox template using Packer and I've been struggling to make it choose the French Language.
Here's a portion of my user-data
file :
autoinstall:
version: 1
locale: fr_FR
keyboard:
layout: fr
I went through packer docs and couldn't find any piece of documentation about that user-data file :/ Anyone knows where I can get this information please ?
Packer its self doesnt know or care what a user-data file is. That is something thats OS specific for example like in ubuntu https://ubuntu.com/server/docs/install/autoinstall-reference#user-data. Where as other OS like windows or RHEL might have a different method to setup a system. Using the ubuntu example the way I have done this previously is with a setup like below.
In my case I am using vsphere but the idea should work on other sources like AWS EBS etc. I also have a setup.sh script I run as part of the build to configure a few other things after the system is bootstrapped
/ubuntu20.04
/config-files
user-data
meta-data
/setup
setup.sh
template.pkr.hcl
var.pkr.hcl
user-data
#cloud-config
autoinstall:
version: 1
early-commands:
# Stop ssh for packer
- sudo systemctl stop ssh
locale: en_GB
keyboard:
layout: en
variant: gb
# plus other stuff in my setup
setup.sh
#!/bin/bash
echo '> Cleaning all audit logs ...'
if [ -f /var/log/audit/audit.log ]; then
cat /dev/null > /var/log/audit/audit.log
fi
if [ -f /var/log/wtmp ]; then
cat /dev/null > /var/log/wtmp
fi
if [ -f /var/log/lastlog ]; then
cat /dev/null > /var/log/lastlog
fi
echo '> Cleaning apt-get ...'
apt-get clean
# Cleans the machine-id.
echo '> Cleaning the machine-id ...'
truncate -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id
template.pkr.hcl
source "vsphere-iso" "ubuntu" {
cd_files = [
"./config-files/user-data",
"./config-files/meta-data"
]
cd_label = "cidata"
boot_order = "disk,cdrom,floppy"
boot_wait = "3s"
boot_command = [
"<esc><esc><esc>",
"<enter><wait>",
"/casper/vmlinuz ",
"root=/dev/sr0 ",
"initrd=/casper/initrd ",
"autoinstall ",
"ds=nocloud-net;",
"<enter>"
]
shutdown_command = "echo '${var.ssh_password}' | sudo -S -E shutdown -P now"
shutdown_timeout = "15m"
#
#some other stuff
#
}
build {
sources = ["source.vsphere-iso.ubuntu"]
provisioner "shell" {
execute_command = "echo '${var.ssh_password}' | {{.Vars}} sudo -S -E bash '{{.Path}}'"
environment_vars = [
"BUILD_USERNAME=${var.ssh_username}",
]
scripts = ["./setup/setup.sh"]
expect_disconnect = true
}
}