Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 14 octobre 2018

Vagrant: une VM Debian en Français avec GUI en 3mn

Vagrant est un outil open source qui permet de créer et de configurer des machines virtuelles très rapidement. Depuis l'arrivée de Docker, on parle beaucoup moins de Vagrant qui existe depuis 2010.

Comme Docker, on part d'une image de base pour construire sa propre image. La terminologie Vagrant parle de 'box'. Par défaut, Vagrant utilise VirtualBox pour créer les VMs.

Mais les 'box' de bases sont quasiment tout le temps:

  • Sans environnement graphique
  • Avec un clavier en Anglais

Le deuxième point n'étant génant que si l'on veut avoir le premier ! Dans le cas contraire, on se connecte à la box en SSH et le tour est joué.

Donc, pour disposer d'une machine virtuelle avec un environnement graphique, on va 'provisionner' notre VM comme suit:

Dans un premier temps, il faut indiquer à Vagrant d'afficher l'UI de VirtualBox:

  config.vm.provider "virtualbox" do |vb|
    vb.name = "Debian with Mate"
    vb.gui = true
    vb.memory = "4096"
  end

Sans cela, l'environnement graphique ne s'affichera tout simplement pas !

Puis on va installer quelques logiciels sur la VM:

  config.vm.provision "shell", inline: <<-SHELL
    apt-get --quiet update
    apt-get --assume-yes upgrade
    apt-get --assume-yes install lightdm mate-desktop-environment
    echo "autologin-user=vagrant" | tee --append /usr/share/lightdm/lightdm.conf.d/01_debian.conf
    sed --in-place s/us/fr/g /etc/default/keyboard
    systemctl reboot
  SHELL

On commence par mettre à jour le système, puis on installe Mate, plus léger que nombre d'autres environnements graphiques, ainsi qu'un 'Display Manager', lightdm sera très bien.

Il ne reste qu'à:

  • Activer la connexion automatique
  • Définir le clavier en Français

Je vois souvent plein d'instructions compliquées pour passer le clavier en Français, alors qu'il suffit de changer une ligne dans le fichier /etc/default/keyboard !!!

Vous noterez que je préfère les options longues des commandes. Je trouve que c'est plus lisible comme cela, on ne se souvient pas toujours de ce que fait l'option -i ou -q ...

Enfin, la dernière ligne des instructions de provisioning est requise:

systemctl reboot

et permet de:

  • Prendre en compte la configuration du clavier en Français
  • Se loguer automatiquement

Voilà, c'est fini, en 3mn, vous êtes sous Debian avec Mate et déjà connecté !

dimanche 19 mars 2017

Transmettre une variable d'environnement à une connexion ssh

J'ai besoin pour faire des tests de connaitre l'adresse IP de l'hôte qui héberge une machine virtuelle.

Comme je me connecte à cette machine virtuelle par ssh, je vais lui transmettre cette adresse IP via une variable d'environnement.

Pour cela, j'ai besoin de spécifier le nom de la variable d'environnement coté hôte. On l'appelera HOST_IP.

Cela peut se faire de deux façons:

Dans le fichier /etc/ssh/ssh_config via la directive:

SendEnv HOST_IP

En fait on changera la ligne existante:

SendEnv LANG LC_*

en

SendEnv LANG LC_* HOST_IP

On peut aussi spécifier le nom de la variable sur la ligne de commande ssh:

ssh -o SendEnv=HOST_IP user@machine...

Pour que cela fonctionne, il faut maintenant que la machine virtuelle accepte cette variable d'environnement.

Pour cela on changera dans le fichier /etc/ssh/sshd_config de la VM la ligne:

AcceptEnv LANG LC_*

en

AcceptEnv LANG LC_* HOST_IP

Et on redémarre le serveur ssh.