Il y a quelque temps, j’ai dû réinstaller mon environnement de travail Linux.
Comme d’habitude, j’ai commencé par configurer mes outils :
- git
- neovim
- rclone
- remettre mes clés SSH
- reconfigurer mon .bashrc
- …
Au bout de quelques heures jours, mon environnement était utilisable comme je l’aime.
Quelques semaines passent, je passe d’un Raspberry à un autre, d’une machine à une autre en pestant car mon environnement n’était pas forcément présent sur ces machines (à tort ou à raison).
Et puis ma machine me lâche. Je remplace le poste et c’est reparti pour configurer mon environnement.
Je change de disque, rebelote… Une carte SD crame dans un Raspberry… On recommence…
J’adopte un nouvel outil et je regrette de ne pas le retrouver sur mes autres machines…
Jusqu’au jour où j’ai décidé de ne plus laisser le sort décider de ma productivité !
J’ai découvert Chezmoi
Chezmoi est un outil qui va simplifier la maintenance et le déploiement de vos environnements que ce soit à la maison, au travail, sur votre poste de dev, une session d’admin…
OK, mais ça se présente comment ?
Chezmoi, c’est un gestionnaire de DOTFILES, vous savez les fichiers qui commencent par un .
dans votre $HOME
.
En fait, Chezmoi va vous permettre de stocker vos fichiers de configuration dans un git.
Oui enfin, pousser des fichiers dans un repo git, pas besoin d’un outil pour ça…
Détrompez-vous ! Là où est la magie, c’est qu’il va vous permettre de scripter, de templater, de chiffrer ces dotfiles.
Il va aussi vous permettre de vous prévenir que votre environnement n’est plus synchronisé avec le repo distant et vous proposer de mettre à jour votre environnement.
Installation
On va l’installer avec ASDF
asdf plugin install chezmoi && asdf install chezmoi latest && asdf set -u chezmoi latest
On va aussi installer AGE, il nous servira pour chiffrer nos secrets.
asdf plugin install age && asdf install age latest && asdf set -u age latest
On va aussi préparer le repo git que l’on va utiliser pour publier/sauvegarder nos fichiers. Si vous avez un compte GitHub, je vous invite à créer un repository “dotfiles”.
Maintenant, on initialise :
chezmoi init --ssh <mon_user_github> --apply
(Si vous n’avez pas de compte GitHub, ou souhaitez mettre vos dotfiles ailleurs, consultez la doc)
Maintenant :
chezmoi add ~/.bashrc
Faites une modification sur le fichier, puis faites un chezmoi apply
, le fichier est revenu comme à l’origine !
Allez dans le dossier de travail de chezmoi chezmoi cd
, vous y trouverez votre bashrc sous le nom dot_bashrc
.
Chezmoi utilise une norme de nommage pour mettre des attributs sur vos fichiers, si cela vous intéresse, direction la doc
Vous pouvez aussi templater et scripter tout cela !
(On y reviendra)
Si vous voulez des exemples :
- felipecrs/dotfiles (dont je me suis pas mal inspiré)
- renemarc/dotfiles (idem)
- Mes dotfiles