stackbuilders.sb-debian-base
Ostrzeżenie: Ta biblioteka została wycofana i nie jest już utrzymywana. Nie będzie otrzymywać kolejnych łat bezpieczeństwa, nowych funkcji ani poprawek błędów i jest przechowywana tutaj na GitHubie w celach archiwalnych. Jeśli chcesz jej używać, sugerujemy sklonowanie repozytorium i sprawdzenie kodu przed użyciem. Więcej informacji uzyskasz, kontaktując się z nami pod adresem info@stackbuilders.com.
Zalecane role:
Stack Builders - Podstawa Debian
Ogólny obraz Debian dla serwerów. Ten Galaxy wymaga Ansible 2.7.0.
Obsługiwane platformy
Debian
- 10 (buster)
- 9 (stretch)
Ubuntu
- 18.04 (bionic)
- 16.04 (xenial)
ZMIANY ŁAMIĄCE:
- Zadania Haskell zostały usunięte z tej roli, więc zmienne
install_haskell_stack
iinstall_haskell_dependencies
do wywoływania zadań instalacji Haskella nie są już używane.
Jak korzystać z tej roli
Obecna wersja używa kontroli przepływu Ansible (when: foo jest zdefiniowane) do uruchamiania zadań na różnych etapach, ale zachowuje kilka przydatnych tagów, takich jak ustawienie nazwy hosta lub stworzenie katalogu wdrożenia.
Najpierw upewnij się, że tworzysz plik requirements.yml
i dodajesz odwołanie
do tego repozytorium, jak poniżej:
---
- src: [email protected]:stackbuilders/sb-debian-base.git
version: <tag, commit lub branch>
path: external-roles
Następnie musisz uruchomić następujące polecenie:
ansible-galaxy install -r requirements.yml
Utwórz playbook
Utwórz plik playbook i w sekcji z rolami ustaw grupę zadań, które
chcesz uruchomić. Na przykład możesz użyć tests/site.yml
lub poniższego:
# site.yml
- hosts: all
remote_user: foo
vars:
sb_debian_base_admin_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
sb_debian_base_deploy_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
roles:
- role: sb-debian-base
prebootstrap: yes
- role: sb-debian-base
bootstrap: yes
add_remove_keys: yes
vars:
sb_debian_base_deploy_user: deployer
sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
sb_debian_base_environment_variables:
ONE: "uno"
TWO: "dos"
Możesz również uruchamiać zadania ad-hoc, chociaż nie jest to zalecany sposób:
ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"
Uruchom playbook w ten sposób:
# Podstawowy obraz
ansible-playbook -l local -i hosts site.yml -k -u root
# Konto administratora
ansible-playbook -l local -i hosts site.yml -u administrator
Dostępne grupy zadań:
Prebootstrap (prebootstrap)
Ten tag zawiera podstawowe zadania konfiguracyjne, takie jak:
- Dodanie użytkownika administratora
- Domyślnie to
admin
w Debianie,ubuntu
w Ubuntu. Możesz zdefiniować zmienną {{ sb_debian_base_admin_user }}
- Domyślnie to
- Aktualizacja pamięci podręcznej pakietów
- Instalacja pakietu sudo
- Umożliwienie używania sudo bez podawania hasła dla grupy sudo
- Ustawienie autoryzowanych kluczy SSH dla użytkowników administratorów
- Musisz zdefiniować {{ sb_debian_base_admin_user_authorized_keys }}
Bootstrap (bootstrap)
Ten tag zawiera bardziej zaawansowane zadania konfiguracyjne, takie jak:
- Zablokowanie autoryzacji hasłem dla sesji SSH
- Zablokowanie dostępu SSH dla użytkownika root
- Ustawienie nazwy hosta
- Możesz zdefiniować {{ hostname }}
- Ustawienie strefy czasowej
- Możesz zdefiniować {{ sb_debian_base_ntp_timezone }}
- Włączenie NTP za pomocą systemd-timesyncd
- Upewnienie się, że dane dziennika journald są przechowywane trwale
- Aktualizacja wszystkich pakietów
- Instalacja podstawowych pakietów
- np.: vim, tmux, htop, atop, tree, ufw, emacs, git, curl
- Instalacja dodatkowych pakietów - nie tylko sb_debian_base_extra_packages
- Włączenie zapory za pomocą UFW
- Otwieranie ogólnych portów (np. port SSH, port HTTP; domyślnie SSH)
- Możesz zdefiniować {{ ports }}
- Otwieranie określonych portów dla określonych adresów IP
- Możesz zdefiniować {{ port_ips }}
- Możesz wyłączyć UFW ustawiając
sb_debian_base_firewall: no
- Otwieranie ogólnych portów (np. port SSH, port HTTP; domyślnie SSH)
- Ustawienie i aktualizacja zmiennych środowiskowych
- Musisz zdefiniować {{ sb_debian_base_environment_variables }}
- Utworzenie użytkownika Unix i grupy dla użytkownika wdrożeniowego
- Musisz zdefiniować zmienną {{ sb_debian_base_deploy_user }} (np. deployer)
- Opcjonalnie zdefiniuj zmienną {{ sb_debian_base_deploy_user_group }} (np. deployer), w przeciwnym razie będzie taka sama jak {{ sb_debian_base_deploy_user }}
- Utworzenie katalogu wdrożeniowego aplikacji
- Dodanie kluczy SSH dla «kluczy wdrożeniowych» GitHub
- Ustawienie autoryzowanych kluczy SSH dla użytkownika wdrożeniowego
- Musisz zdefiniować {{ sb_debian_base_deploy_user_authorized_keys }}
- Upewnienie się, że github.com jest znanym gospodarzem
- Musisz zdefiniować {{ sb_debian_base_deploy_user }}
- Ta zmienna automatycznie dodaje GitHub jako znanego gospodarza, ale możliwe jest zmienienie tego, nadpisując {{ sb_debian_base_known_hosts }}
- Ustawienie globalnej konfiguracji historii bash w poniższym formacie:
285 Cz 08 Sie 2019 01:43:40 PM UTC jakaś komenda
Zobacz poniżej dostępne zmienne.
Ustawienie nazwy hosta (set-hostname)
- Ustaw nazwę hosta na zmienną specyficzną dla hosta
- Musisz zdefiniować {{ hostname }}
Ustaw konfigurowanie historii bash:
Włącz/wyłącz konfigurację historii
sb_debian_base_bash_history: true
W sekcji
sb_debian_base_bash_history_config:
- Ustaw liczbę linii do przechowywania w buforze historii
histsize: '5000'
- Ustaw liczbę linii do przechowywania w pliku historii
histfilesize: '3000'
- Ustaw format czasu, aby dołączyć przed każdą historią polecenia (zobacz
man history
dla pełnych opcji)histtimeformat: '%c%t'
- Ustaw liczbę linii do przechowywania w buforze historii
Utworzenie katalogu aplikacji (create-app-directory)
- Utworzenie katalogu wdrożeniowego aplikacji
- Kiedy {{ sb_debian_base_deploy_user }} jest zdefiniowane
Zewnętrzne zależności (Galaxies) zawarte w tej grupie zadań bootstrap
- kamaln7.swapfile (Ustawienie swapa)
- Możesz zdefiniować zmienną {{ sb_debian_base_swap_file_size }} (np. 2048MB)
- Instalacja unattended-upgrades tylko do poprawek bezpieczeństwa
- Możesz zdefiniować zmienną {{ sb_debian_base_uu_email_alerts }} (np. example@example.com)
Aktualizacja autoryzowanych kluczy SSH (add-remove-keys)
Aktualizacja autoryzowanych kluczy SSH:
- Musisz zdefiniować listę zmiennych zawierających publiczne klucze SSH dla użytkowników administratorów i wdrożeniowych:
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}
Licencja
MIT, zapoznaj się z plikiem LICENSE w tym repozytorium.
Informacje o autorze
Justin Leitgeb, Stack Builders Inc.
ansible-galaxy install stackbuilders.sb-debian-base