Packer Autoinstall French Language & Keyboard Layout

54 Views Asked by At

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

It's stuck in here: enter image description here

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 ?

1

There are 1 best solutions below

7
Chris Doyle On BEST ANSWER

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
  }
}