HanXHX.debian_bootstrap

Bootstrap Ansible Debian/Devuan/Ubuntu/Raspbian

Ansible Galaxy Statut de workflow GitHub (avec branche)

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

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 nouveau
  • dbs_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ôte
  • dbs_clean_hosts: si vrai, gère le fichier /etc/hosts
  • dbs_set_locale: si vrai, configure les locales
  • dbs_set_timezone: si vrai, définit le fuseau horaire
  • dbs_set_ntp: si vrai, installe et configure OpenNTPd
  • dbs_set_apt: si vrai, configure le dépôt APT

Configuration système

  • dbs_hostname: nom d'hôte du système
  • dbs_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ème
  • dbs_locales: liste des locales installées
  • dbs_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.yml
  • dbs_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 NTP
  • dbs_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ème
  • system: (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ème
  • password: (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éation
  • shell: (O) défaut est /bin/bash
  • comment: (O) défaut est une chaîne vide
  • sudo: (O) booléen (vrai = peut sudo)
  • group: (O) groupe principal (par défaut c'est name sans mot de passe)
  • groups: (O) liste de groupes séparés par des virgules
  • createhome: (O) oui/non
  • system: (O) oui/non (par défaut : non)
  • ssh_keys: (O) liste de clés publiques SSH
  • state: (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 avec update_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 à installer
  • dbs_microcode_apt_distribution: emplacement du paquet à installer du microcode
  • dbs_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

À 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