1
0
mirror of https://gitlab.com/free_zed/free_zed.gitlab.io.git synced 2024-06-01 22:02:28 +00:00
free_zed.gitlab.io/content/ansible_to_update_debian_on_lan.md
Freezed f348579a90 🎨 Normalize usage of non breaking spaces
Remove ` ` by ` `, less painfull to read
2020-09-27 22:30:18 +02:00

50 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Title: Mise à jour d'un réseau local Debian avec Ansible
Date: 2020-04-19 00:43
Category: Bloc-notes
Status: published
Summary: Mise à jour d'un parc Debian hétérogène (packages &_config), avec packages hors dépôt.
Tags: ansible, admin, debian, mate, devops, shell, git, dry
### Contexte
Mise à jour d'un parc Debian hétérogène, pour l'exercice, le réseau famillial fera l'affaire:
- 5 machines physiques: 1 serveur + 4 postes (Stretch/Buster/Bullseye)
- 2 machines virtuelles, (Jessie/Buster)
### Besoin
- machines à jour
- instalations homogènes: packages et configuration
- gérer des packages `*.deb` disponible hors dépôt `apt`
### _Talk is cheap. Show me the code._
- [Installer Ansible][install]
- récupérer [le _playbook_][repo]: `git clone https://gitlab.com/free_zed/myasb.git`
- se mettre dans la bonne branche: `cd myasb; git checkout lan`
- adapter [l'inventaire][host] avec les adresses de vos machines: `$EDITOR hosts`
- jouer le _playbook_: `ansible-playbook -i hosts site.yml`
- …et volà!
### Remarques
`git` n'utilise pas la configuration globale par défaut (`/etc/gitconfig`), je m'en suis servi pour déployer mes alias _partout_ sans déployer la config `git` de ma machine de dev qui contient des éléments que je ne souhaite pas diffuser (tokens, mails, usernames, tools, etc).
### Idées
- centraliser le build & déploiement d'un projet Java sur Github ([Mindustry][mindustry]).
- comparer le numéro de version Debian plutôt que le nom (`str()` to `int()` des _facts Ansible_)
- faire des taches/roles/whatever qui ne se font qu'une fois avant (ou après) de jouer le playbook
- récupérer la version stable Debian
- récupérer numéro de dernière version d'un `*.deb` dispo hors dépot
- envoyer _un seul_ mail de récap
- utiliser les variables d'environnement (ou autre) pour les données privées
[repo]: https://gitlab.com/free_zed/myasb/-/tree/lan
[mindustry]: https://github.com/Anuken/Mindustry/
[install]: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
[host]: https://gitlab.com/free_zed/myasb/-/blob/lan/hosts