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 pushes the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.