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

Status budowy Ansible Galaxy

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 i install_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 }}
  • 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
  • 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'

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

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.

Zainstaluj
ansible-galaxy install stackbuilders.sb-debian-base
Licencja
mit
Pobrania
14k
Właściciel
Our team strives to push the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.