Forum Linux.général Déployer son environnement sur une fresh install

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
6
7
sept.
2023

Bonjours à vous,

Cela fait 15 ans que je suis exclusivement sous GNU/Linux. Je ne sais plus combien de fois j'ai réinstallé mon environnement (beaucoup). J'entends par là, installer git, thunderbird, etc (par paquets). Créer un dossier "Projets" dans mon home, puis cloner tel et tel dépôt Github dans ce dossier, etc. Mais aussi installer des extensions Gnome, pour avoir des métriques CPU, RAM sous les yeux, etc.

Bref, vous voyez de quelles tâches je parle quand il s'agit de "réinstaller mon environnement".

Durant ces 15 ans, j'ai essayé quelques scripts bashs, ou de lister le nom paquets que je réinstalle systématiquement. Mais au final, j'ai toujours fait ça "à la main".

Ce matin, je me dis que je pourrais réessayer d'automatiser ça. Je m'étais aussi lancé dans des scénarios Ansible. Mais je ne les ai pas maintenus.

Je me tourne alors vers vous pour avoir vos retours d'expérience sur le sujet. Sachant que je cherche quelque chose le plus simple possible. Mon fantasme étant un fichier de config où je liste bêtement des noms de paquets, des listes d'url de dépôts à cloner, des noms d'extensions gnome …

Ah oui, je suis très stable d'un point de vue distribution : Ubuntu ou Debian.

Merci d'avance :)

  • # ansible

    Posté par  (Mastodon) . Évalué à 7. Dernière modification le 07 septembre 2023 à 10:21.

    Ansible/chef/puppet/salt et les autres outils d'infra as code c'est bien quand tu gères plein de machines et que tu veux avoir des états définis mais à part pour appliquer une liste de packages à installer (qui est la chose la plus scriptable), ça a peu d'intérêt sur une machine unique sur laquelle tu fais des modifs "à la main" car justement tu ne vas pas avoir le reflexe de les maintenir bien (et c'est humain).

    Il y a des trucs comme ton profile shell, la config de certains outils comme ton émulateur de terminal favori, éventuellement de tmux, de ton éditeur de texte/code qui vont bien dans un repos git associé à gnu stow ou équivalent. Note qu'au lieu de cloner des repos à droite et à gauche pour installer des outils, tu peux les ajouter comme submodules d'un repo git racine avec git submodule add. Du coup tu n'as besoin de cloner qu'un repo unique avec l'option --recurse-submodules et tous ces repos seront clonés.

    Mais bon si tu as des bons backups c'est aussi vite restauré.

    Une machine personnelle n'a de toute façon pas beaucoup de raison d'être réinstallée régulièrement et des outils comme syncthing font très bien le job pour synchroniser des trucs qu'il y a dans ton home d'une machine à l'autre. Comme j'ai toujours plus qu'une machine à un instant t, j'ai tendance à reconfigurer ce qu'il y a dans le home par synchro.

    • [^] # Re: ansible

      Posté par  (Mastodon) . Évalué à 6.

      TLDR dans ton cas je crois qu'un simple repo avec tes configs principales (shell/multiplexeur/terminal/editeur de code) + des submodules + GNU Stow ou chezmoi et une liste texte des packages que tu installes via apt-get install -y $(xargs listepaquets.txt) est suffisante.

    • [^] # Re: ansible

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Pour IaS ayant peu d'intérêt sur une machine unique, je pense que ça dépend surtout par ce qu'on entend par : "réinstaller mon environnement" et les problématiques rencontrées. (dont pourquoi réinstaller régulièrement sa machine personnelle.)
      Il y a aussi, pour le choix, ce avec quoi il-ou-elle se sent à l'aise et va continuer à s'investir dans le long terme, pour choisir entre écrire du shell/Python/YAML/etc.

      Pour la maintenance des modifs à la main, la problématique se pose aussi quand on a mis les fichiers dans un dépôt git (chose qui se fait aussi dans le cas précédent) …ou même si on fait des sauvegardes qui ne sont pas automatiques.

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # cp -a ?

    Posté par  (site web personnel) . Évalué à 4.

    Question sans doute très bête, mais pourquoi ne pas simplement garder le même /home/login ? Tout reste configuré, plus qu'à adapter certains fichiers aux nouvelles versions des logicielles. C'est ce que je fais sur mes postes qui ne tournent pas avec une distribution continue (Gentoo pour ne pas la nommer).

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: cp -a ?

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Au fil des années, j'ai vraiment l'impression de remplir mon home d'un tas de choses que je n'ai pas besoin de garder. Lors d'un fresh install, je souhaite n'installer que ce dont j'ai besoin. Et c'est là que je récupère de mes backups les fichiers qui me sont encore utiles (.ssh, .gitconfig, etc).

      🦀🐍 http://github.com/buxx 🖥 https://algoo.fr 📋 https://tracim.fr

  • # Home Manager

    Posté par  . Évalué à 3. Dernière modification le 07 septembre 2023 à 15:12.

    Home Manager est fait pour ça. Tu as aussi guix home qui en est à ses débuts, bien moins complet.

    De manière plus générale, je t'invite à te renseigner sur NixOS et Guix System si tu veux faire ce que tu décris (toute la config dans un fichier déclaratif), mais carrément à l'échelle de la distribution.

    • [^] # Re: Home Manager

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      Cool merci, je vais regarder ces deux outils.

      🦀🐍 http://github.com/buxx 🖥 https://algoo.fr 📋 https://tracim.fr

      • [^] # Re: Home Manager

        Posté par  . Évalué à 4.

        Regarde quand même Home Manager en priorité.

        Tu peux installer les deux en parallèle ceci-dit.

        Note bien qu'ils sont liés à des gestionnaires de paquet, et n'installeront pas les logiciels des dépôts de ta distribution, mais des dépôts de NixOS et Guix System respectivement. Tu peux utiliser ces outils pour créer des environnements virtuels hyper précis, avec telle ou telle version de tel ou tel logiciel, c'est vraiment génial si tu es développeur, ou pour tester un logiciel sans en foutre partout.

        En revanche, je crois que si tu les utilises sur une Debian, il va y avoir des petites limitations, genre pas de décodage matériel des vidéos, ce genre de chose. Peut-être même pas du tout d'accélération 3D, je ne me souviens plus (probablement).

  • # Utilise une vraie distrib

    Posté par  . Évalué à -8.

    Par exemple avec gentoo c'est une copie du world et si ton /etc et ton /home n'ont pas bougé, ça suffit.

    Mais avec une Gentoo tu réinstalles jamais… donc voilà quoi !

  • # SaveDesktop

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    J'arrive un peu après la bataille, mais en graphique et tout simple d'utilisation, il existe SaveDesktop (dispo sur Flathub).

    Ça permet de facilement sauvegarder puis restaurer les icônes, polices et thèmes, les paramètres, les fonds d'écran (y compris les fonds d'écran dynamiques, à condition de conserver le même nom d'utilisateur), les extensions GNOME et Nautilus, les applications Flatpak installées et d'autres éléments liés à l'environnement de bureau (par exemple, les extensions et applets Cinnamon, les widgets KDE Plasma, etc.)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.