HanXHX.debian_bootstrap
Ansible Bootstrap dla Debian/Devuan/Ubuntu/Raspbian
Ta rola uruchamia systemy Debian/Devuan/Ubuntu/Raspbian:
- Konfiguruje APT (sources.list)
- Instaluje minimalne pakiety (vim, htop...)
- Instaluje mikroprogramy Intel/AMD w razie potrzeby
- Instaluje i konfiguruje demon NTP (OpenNTPd lub NTP)
- Dodaje grupy, użytkowników z kluczem SSH, sudoers
- Rozprowadza bashrc, vimrc dla roota
- Aktualizuje kilka alternatyw
- Konfiguruje system: nazwę hosta, strefę czasową i lokalizację
- Usuwa, kasuje i unika systemd, jeśli jest to pożądane
- Optymalizacja sysctl
Obsługiwane wersje
OS | Działająca | Stabilna (aktywne wsparcie) |
---|---|---|
Debian Stretch (9) | Tak | Nie |
Debian Buster (10) | Tak | Tak |
Debian Bullseye (11) | Tak | Tak |
Debian Bookworm (12) | Tak | Tak |
Devuan Ascii (2) | Tak | Nie |
Raspbian Stretch (9) | Eksperymentalna | Nie |
Raspbian Buster (10) | Eksperymentalna | Nie |
Raspbian Bullseye (11) | Eksperymentalna | Nie |
Ubuntu Bionic (18.04) | Tak | Nie |
Ubuntu Focal (20.04) | Eksperymentalna | Nie |
Ubuntu Jammy (22.04) | Eksperymentalna | Nie |
Wymagania
- Ansible >= 2.11
- Kolekcje: ansible.posix collection / community.general
Zmienne roli
Konfiguracja APT
Te zmienne definiują nazwę hosta do konfiguracji APT (normalne repozytoria i backporty):
dbs_apt_default_host
: host repozytorium. Może zastąpić ten ostatni (zainstalowany z tą rolą) nowymdbs_apt_use_src
: instalacja repozytoriów "deb-src" (domyślnie: fałsz)dbs_apt_components
: komponenty używane w sources.list (domyślnie: "main contrib non-free non-free-firmware")
Konfiguracja roli
dbs_set_hostname
: jeśli prawda, zmień nazwę hostadbs_clean_hosts
: jeśli prawda, zarządza plikiem/etc/hosts
dbs_set_locale
: jeśli prawda, skonfiguruj lokalizacjedbs_set_timezone
: jeśli prawda, ustaw strefę czasowądbs_set_ntp
: jeśli prawda, zainstaluj i skonfiguruj OpenNTPddbs_set_apt
: jeśli prawda, skonfiguruj repozytoria APT
Konfiguracja systemu
dbs_hostname
: nazwa hosta systemudbs_hostname_use_strategy
: strategia używana do ustawiania nazwy hosta, sprawdź "use" w module hostname. Powinieneś zaktualizować tę zmienną tylko jeśli nazwa hosta zawiedzie (w LXC na przykład).dbs_default_locale
: domyślna lokalizacja systemudbs_locales
: lista zainstalowanych lokalizacjidbs_timezone
: strefa czasowa systemu. Jeśli potrzebujesz "standardowej" strefy czasowej jak UTC, musisz użyć prefiksu "Etc/" (np. "Etc/UTC")dbs_sysctl_config
: zbiór parametrów jądra, patrz: default/main.ymldbs_use_systemd
: usuń systemd, jeśli ustawione na fałsz (trwałe)dbs_use_dotfiles
: nadpisz pliki dotowe roota (bashrc, screenrc, vimrc)dbs_uninstall_packages
: lista pakietów do odinstalowania
Alternatywy
dbs_alternative_editor
dbs_alternative_awk
NTPd
dbs_ntp_hosts
: lista nazw hostów serwera NTPdbs_ntp_pkg
: pakiet używany do zapewnienia NTP: "openntpd" lub "ntp"
Grupa
dbs_groups
: lista grup
Każdy wiersz ma kilka kluczy:
name
: (M) nazwa użytkownika w systemiesystem
: (O) tak/nie (domyślnie: nie)state
: (O) obecny/nieobecny (domyślnie: obecny)
(M) Obowiązkowe (O) Opcjonalne
Użytkownik
dbs_users
: lista użytkowników
Każdy wiersz ma kilka kluczy:
name
: (M) nazwa użytkownika w systemiepassword
: (O) hasło w formacie hasza (patrz dokumentacja ansible)clear_password
: (O) hasło w formacie jawnym (niezalecane)update_password
: (O) zawsze / przy_tworzeniushell
: (O) domyślnie to /bin/bashcomment
: (O) domyślnie jest pustym ciągiemsudo
: (O) boolean (prawda = może sudo)group
: (O) główna grupa (domyślnie toname
bez hasła)groups
: (O) lista grup oddzielonych przecinkamicreatehome
: (O) tak/niesystem
: (O) tak/nie (domyślnie: nie)ssh_keys
: (O) lista publicznych kluczy sshstate
: (O) obecny/nieobecny (domyślnie: obecny)
(M) Obowiązkowe (O) Opcjonalne
Uwagi:
- jeśli
password
jest określone,clear_password
nie jest używane! clear_password
nie jest idempotentne przyupdate_password
= zawsze (domyślnie)
Aby uzyskać więcej informacji, zobacz dokumentację modułu użytkownika ansible.
Zmienne tylko do odczytu
dbs_packages
: lista pakietów do zainstalowaniadbs_microcode_apt_distribution
: lokalizacja pakietu do instalacji mikroprogramudbs_distro_packages
: lista specyficznych pakietów do zainstalowania (związanych z wersją OS)dbs_is_docker
: boolean. Jest prawdą, jeśli obecny system to kontener dockerowy
Zależności
Brak.
Przykład Playbook
- hosts: servers
roles:
- { role: HanXHX.debian_bootstrap }
Informacje o Dockerze
Z powodu ograniczeń Docker, te funkcje są wyłączone:
- Usuwanie systemd
- Ustawianie nazwy hosta
- Konfiguracja sysctl
Jak rozwijać i testować tę rolę
Sposób Vagrant
Zainstaluj vagrant + virtualbox lub docker
vagrant up debian-bullseye # z virtualbox
vagrant up docker-debian-bullseye # z docker
Sposób Molecule
Zainstaluj:
pip install molecule molecule[docker]
Uruchom:
molecule -vv -c molecule/_shared/base.yml converge -s ubuntu-22.04
Licencja
GPLv2
Darowizna
Jeśli ten kod Ci pomógł lub używałeś go dla swoich projektów, możesz postawić mi piwo :beers:
- Bitcoin:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
- Ethereum:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5
- Litecoin:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
- Monero:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
Nie masz kryptowaluty? :star: projekt to także sposób na podziękowanie! :sunglasses:
Informacje o autorze
- Twitter: @hanxhx_
O projekcie
Normalize and prepare a Debian/Devuan/Ubuntu Linux server
Zainstaluj
ansible-galaxy install HanXHX.debian_bootstrap
Licencja
gpl-2.0
Pobrania
6.5k
Właściciel
CEO/CTO/SRE triplestack.fr / daemonit.com