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/hostsdbs_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_editordbs_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 tonamebez 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
passwordjest określone,clear_passwordnie jest używane! clear_passwordnie 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_bootstrapLicencja
gpl-2.0
Pobrania
6.5k
Właściciel
CEO/CTO/SRE triplestack.fr / daemonit.com
