<<

Installation automatisée d'Ubuntu : Générer le fichier autoconf.yaml

Ce fichier est utilisé pour automatiser l'installation d'Ubuntu. Il y a deux façons de l'utiliser :

Installer le script pour la valider la configuration

Pour ma part, j'ai procédé à l'installation dans une machine virtuelle Ubuntu sur VirtualBox. Énormément de dépendances sont installées, toutes ne sont pas indispensables, mais ce n'est pas évident de faire le tri. De plus, l'installation est prévue pour Ubuntu.

On commence par cloner le dépôt :

git clone https://github.com/canonical/subiquity.git

et lancer l'installation des dépendances (prévu pour Ubuntu) :

cd subiquity
make install_deps

Pour vérifier la syntaxe :

./scripts/validate-autoinstall-user-data.py <path>/autoinstall.yaml

Une fois cette étape effectuée, il est temps de passer à l'écriture du fichier autoinstall.yaml

Écrire le fichier

Pour commencer quelques points d'attention :

La référence de la syntaxe du fichier est ici : https://canonical-subiquity.readthedocs-hosted.com/en/latest/reference/autoinstall-reference.html

L'entête du fichier est :

#cloud-config
autoinstall:
  version: 1

L'utilisateur par défaut

Cette entrée est indispensable.

  identity:
    realname: "Utilisateur"
    username: user
    password: "$6$UBLfJcwbDxB1lT9y$6s57ETgKQ.AxDsK7bqDa3Kb6XgA5yBXlJA6uf31Rzfgh9aJfl.yggcrUzK90JqHby/zDALpcXOOO15TUSUjqZ0"
    hostname: no-name.domain.tld

Les champs parlent d'eux même. Pour générer le mot de passe chiffré, j'ai utilisé la commande mkpasswd qui fait partie du paquet whois sous Arch Linux.

mkpasswd --method=sha-512
# Le mot de passe vous sera demandé.

Localisation

  locale: "fr_FR.UTF-8"
  timezone: Europe/Paris
  keyboard:
    layout: fr
    variant: oss

Les paramètres pour la France à adapter si vous vivez ailleurs.

Le disque dur

  storage:
    layout:
      name: lvm
      password: SuperPassPhrase
      reset-partition: true

Les paramètres pour un disque chiffré (LVM obligatoire). Pour désactiver le chiffrement : supprimer la ligne password. Pour ne pas utiliser LVM remplacer name: lvm par name: direct.

Si cette partie n'est pas spécifiée cela utilise LVM sans chiffrement.

Les clés SSH

Uniquement utile si vous voulez activer l'accès à distance à la machine

  ssh:
    install-server: true
    authorized-keys:
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAKAndzioaj33sdw2dmz18z6iGdWygjgXT0yWLew65zEDm prenom.nom@domain.tld
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPMdn0ig0xJslkzapŝqd33mlsZR3DIT6kdunPHf8tC6 nom.prenom@domain.tld 
    allow-pw: false

Quelques paramètres supplémentaires

Pour activer l'installation des codecs

  codecs:
    install: true

Pour activer l'installation des drivers propriétaires :

  drivers:
    install: true

Pour redémarrer automatiquement a la fin de l'installation :

  shutdown: reboot

Pour installer des paquets supplémentaires lors de l'installation :

  packages:
    - fish
    - curl
    - neovim
    - dialog
    - ansible
    - git

Le fichier complet

#cloud-config
autoinstall:
  version: 1
  identity:
    realname: "Utilisateur"
    username: user
    password: "$6$UBLfJcwbDxB1lT9y$6s57ETgKQ.AxDsK7bqDa3Kb6XgA5yBXlJA6uf31Rzfgh9aJfl.yggcrUzK90JqHby/zDALpcXOOO15TUSUjqZ0"
    hostname: no-name.domain.tld
  locale: "fr_FR.UTF-8"
  timezone: Europe/Paris
  keyboard:
    layout: fr
    variant: oss
  updates: all
  refresh-installer:
    update: false
    channel: latest/edge
  storage:
    layout:
      name: lvm
      password: SuperPassPhrase
      reset-partition: true
  ssh:
    install-server: true
    authorized-keys:
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAKAndzioaj33sdw2dmz18z6iGdWygjgXT0yWLew65zEDm prenom.nom@domain.tld
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPMdn0ig0xJslkzapŝqd33mlsZR3DIT6kdunPHf8tC6 nom.prenom@domain.tld 
    allow-pw: false
  codecs:
    install: true
  drivers:
    install: true
  shutdown: reboot
  packages:
    - fish
    - curl
    - neovim
    - dialog
    - ansible
    - git

Sources