HanXHX.debian_bootstrap
Bootstrap Ansible Debian/Devuan/Ubuntu/Raspbian
Ce rôle prépare des hôtes Debian/Devuan/Ubuntu/Raspbian :
- Configure APT (sources.list)
- Installe des paquets minimaux (vim, htop...)
- Installe le microcode Intel/AMD si besoin
- Installe et configure le service NTP (OpenNTPd ou NTP)
- Ajoute des groupes, des utilisateurs avec clé SSH, des sudoers
- Déploie bashrc, vimrc pour root
- Met à jour quelques alternatives
- Configure le système : nom d’hôte, fuseau horaire et locale
- Supprime, efface et évite systemd si souhaité
- Réglages sysctl
Versions supportées
OS | Fonctionnel | Stable (support actif) |
---|---|---|
Debian Stretch (9) | Oui | Non |
Debian Buster (10) | Oui | Oui |
Debian Bullseye (11) | Oui | Oui |
Debian Bookworm (12) | Oui | Oui |
Devuan Ascii (2) | Oui | Non |
Raspbian Stretch (9) | Expérimental | Non |
Raspbian Buster (10) | Expérimental | Non |
Raspbian Bullseye (11) | Expérimental | Non |
Ubuntu Bionic (18.04) | Oui | Non |
Ubuntu Focal (20.04) | Expérimental | Non |
Ubuntu Jammy (22.04) | Expérimental | Non |
Exigences
- Ansible >= 2.11
- Collections : collection ansible.posix / community.general
Variables de rôle
Configuration APT
Ces variables définissent l'hôte à configurer APT (dépôt normal et backports) :
dbs_apt_default_host
: hôte du dépôt. Peut remplacer le dernier (installé avec ce rôle) par un nouveaudbs_apt_use_src
: installer les dépôts "deb-src" (par défaut : faux)dbs_apt_components
: composants utilisés dans sources.list (par défaut : "main contrib non-free non-free-firmware")
Configuration du rôle
dbs_set_hostname
: si vrai, change le nom d'hôtedbs_clean_hosts
: si vrai, gère le fichier/etc/hosts
dbs_set_locale
: si vrai, configure les localesdbs_set_timezone
: si vrai, définit le fuseau horairedbs_set_ntp
: si vrai, installe et configure OpenNTPddbs_set_apt
: si vrai, configure le dépôt APT
Configuration système
dbs_hostname
: nom d'hôte du systèmedbs_hostname_use_strategy
: stratégie utilisée pour définir le nom d'hôte, vérifier "use" dans hostname module. Cette variable ne doit être mise à jour que si le nom d'hôte échoue (dans LXC par exemple).dbs_default_locale
: locale par défaut du systèmedbs_locales
: liste des locales installéesdbs_timezone
: fuseau horaire du système. Si vous avez besoin d'un fuseau horaire "standard" comme UTC, utilisez le préfixe "Etc/" (ex : "Etc/UTC")dbs_sysctl_config
: hash des paramètres du noyau, voir : default/main.ymldbs_use_systemd
: supprimer systemd si défini sur faux (persistant)dbs_use_dotfiles
: écraser les dotfiles root (bashrc, screenrc, vimrc)dbs_uninstall_packages
: liste des paquets à désinstaller
Alternatives
dbs_alternative_editor
dbs_alternative_awk
NTPd
dbs_ntp_hosts
: liste des noms d'hôtes des serveurs NTPdbs_ntp_pkg
: paquet utilisé pour fournir NTP : "openntpd" ou "ntp"
Groupes
dbs_groups
: liste de groupes
Chaque ligne a quelques clés :
name
: (M) nom d'utilisateur sur le systèmesystem
: (O) oui/non (par défaut : non)state
: (O) présent/absent (par défaut : présent)
(M) Obligatoire (O) Optionnel
Utilisateur
dbs_users
: liste d'utilisateurs
Chaque ligne a quelques clés :
name
: (M) nom d'utilisateur sur le systèmepassword
: (O) mot de passe au format haché (voir documentation ansible)clear_password
: (O) mot de passe en clair (non recommandé)update_password
: (O) toujours / à la créationshell
: (O) défaut est /bin/bashcomment
: (O) défaut est une chaîne videsudo
: (O) booléen (vrai = peut sudo)group
: (O) groupe principal (par défaut c'estname
sans mot de passe)groups
: (O) liste de groupes séparés par des virgulescreatehome
: (O) oui/nonsystem
: (O) oui/non (par défaut : non)ssh_keys
: (O) liste de clés publiques SSHstate
: (O) présent/absent (par défaut : présent)
(M) Obligatoire (O) Optionnel
Remarques :
- si
password
est spécifié,clear_password
n'est pas utilisé ! clear_password
n'est pas idempotent avecupdate_password
= toujours (par défaut)
Pour plus d'informations, consultez la documentation du module utilisateur ansible.
Variables en lecture seule
dbs_packages
: liste des paquets à installerdbs_microcode_apt_distribution
: emplacement du paquet à installer du microcodedbs_distro_packages
: liste des paquets spécifiques à installer (liés à la version de l'OS)dbs_is_docker
: booléen. Est vrai si l'environnement actuel est un conteneur Docker
Dépendances
Aucune.
Exemple de Playbook
- hosts: serveurs
roles:
- { role: HanXHX.debian_bootstrap }
À propos de Docker
En raison des limitations de Docker, ces fonctionnalités sont désactivées :
- Suppression de systemd
- Changement de nom d'hôte
- Configuration sysctl
Comment développer et tester ce rôle
Méthode Vagrant
Installez Vagrant + VirtualBox ou Docker
vagrant up debian-bullseye # avec VirtualBox
vagrant up docker-debian-bullseye # avec Docker
Méthode Molecule
Installez :
pip install molecule molecule[docker]
Exécutez :
molecule -vv -c molecule/_shared/base.yml converge -s ubuntu-22.04
Licence
GPLv2
Donations
Si ce code vous a aidé, ou si vous l'avez utilisé pour vos projets, n'hésitez pas à m'offrir quelques :bières:
- Bitcoin :
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
- Ethereum :
0x63abe6b2648fd892816d87a31e3d9d4365a737b5
- Litecoin :
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
- Monero :
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
Pas de crypto-monnaie ? :étoile: le projet est aussi une façon de dire merci ! :sunglasses:
Informations sur l'auteur
- Twitter : @hanxhx_
À propos du projet
Normalize and prepare a Debian/Devuan/Ubuntu Linux server
Installer
ansible-galaxy install HanXHX.debian_bootstrap
Licence
gpl-2.0
Téléchargements
6.5k
Propriétaire
CEO/CTO/SRE triplestack.fr / daemonit.com