clusterapps.rhbase

Rola Ansible rhbase

Rola Ansible do podstawowej konfiguracji serwera z dystrybucją Linuksa opartą na RedHat (CentOS, Fedora, RHEL, ...). Zadania tej roli to:

  • Zarządzanie repozytoriami,
  • Zarządzanie instalacją i usuwaniem pakietów,
  • Włączanie lub wyłączanie określonych usług,
  • Tworzenie użytkowników i grup,
  • Ustawienie konta administratora z kluczem SSH,
  • Zastosowanie podstawowych ustawień zabezpieczeń, takich jak włączenie SELinux i zapory,
  • Zarządzanie regułami zapory (w strefie publicznej).

To jest fork projektu bertvv.rh-base. Oryginał jest świetny, ale chciałem iść w innym kierunku.

Wymagania

Brak specjalnych wymagań.

Zmienne roli

Zmienna Domyślna Uwagi (typ)
rhbase_enable_repos [] Lista słowników określających repozytoria do włączenia. Zobacz poniżej szczegóły.
rhbase_firewall_allow_ports [] Lista portów, które mają być dozwolone w zaporze, np. 80/tcp, 53/udp itp.
rhbase_firewall_allow_services [] Lista usług, które mają być dozwolone w zaporze, np. http, dns itp. (1)
rhbase_firewall_interfaces [] Lista interfejsów sieciowych, które mają być dodane do publicznej strefy reguł zapory.
rhbase_hosts_entry true Gdy jest ustawione, dodawany jest wpis do /etc/hosts z nazwą hosta maszyny. Przyspiesza to zbieranie danych.
rhbase_install_packages [] Lista pakietów, które powinny być zainstalowane. Dozwolone są także adresy URL.
rhbase_motd false Gdy jest ustawione, instalowany jest niestandardowy /etc/motd z informacjami o nazwie hosta i adresach IP.
rhbase_override_firewalld_zones false Gdy jest ustawione, pozwala NetworkManagerowi na nadpisywanie stref zapory ustawionych przez administratora. (2)
rhbase_remove_packages [] Lista pakietów, które nie powinny być instalowane
rhbase_repo_exclude_from_update [] Lista pakietów, które mają być wyłączone z aktualizacji. Dozwolone są znaki wieloznaczne, np. kernel*.
rhbase_repo_exclude [] Lista repozytoriów, które mają być wyłączone w yum/dnf.conf
rhbase_repo_gpgcheck false Gdy jest ustawione, będą przeprowadzane kontrole GPG podczas instalacji pakietów.
rhbase_repo_installonly_limit 3 Maksymalna liczba wersji pakietu (np. kernel), które mogą być zainstalowane jednocześnie. Musi być przynajmniej 2.
rhbase_repo_remove_dependencies true Gdy jest ustawione, zależności, które stają się nieużywane po usunięciu pakietu, będą również usuwane.
rhbase_repositories [] Lista pakietów RPM (w tym adresy URL), które instalują zewnętrzne repozytoria (np. epel-release).
rhbase_selinux_state enforcing Domyślny stan SELinux dla systemu. Po prostu zostaw to jak jest.
rhbase_selinux_booleans [] Lista booleanów SELinux do ustawienia na włączone, np. httpd_can_network_connect
rhbase_ssh_key - Publiczny klucz SSH dla użytkownika administratora, który pozwala mu na logowanie bez hasła. Użytkownik powinien istnieć.
rhbase_ssh_user - Nazwa użytkownika, który będzie zarządzać tą maszyną. Klucz SSH zostanie zainstalowany w katalogu domowym użytkownika. (3)
rhbase_start_services [] Lista usług, które powinny być uruchomione i włączone.
rhbase_stop_services [] Lista usług, które nie powinny być uruchomione
rhbase_tz :/etc/localtime Ustawia zmienną środowiskową $TZ (4)
rhbase_update false Gdy jest ustawione, przeprowadzana będzie aktualizacja pakietów.
rhbase_user_groups [] Lista grup użytkowników, które powinny być obecne.
rhbase_users [] Lista słowników określających użytkowników, którzy powinni być obecni. Zobacz poniżej przykład.
rhbase_taskrunner_key [] Autoryzowany klucz publiczny do łączenia się jako taskrunner

Uwagi:

(1) Pełna lista prawidłowych wartości dla rhbase_firewall_allow_services może być enumerowana poleceniem firewall-cmd --get-services.

(2) To jest obejście błędu CentOS #7407. NetworkManager domyślnie zarządza strefami zapory, co nadpisuje reguły dodane za pomocą --permanent.

(3) Ustawienie zmiennej rhbase_ssh_user nie tworzy faktycznie użytkownika, ale instaluje rhbase_ssh_key w katalogu domowym tego użytkownika (~/.ssh/authorized_keys). W związku z tym rhbase_ssh_user powinien być nazwą istniejącego użytkownika podaną w rhbase_users.

(4) Ustawienie zmiennej $TZ może zmniejszyć liczbę wywołań systemowych. Zobacz https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/

Włączanie repozytoriów

Włącz repozytoria (zainstalowane, ale wyłączone) poprzez określenie rhbase_enable_repos jako listy słowników z kluczami name: (wymagany) i section: (opcjonalny), np.:

rhbase_enable_repos:
  - name: CentOS-fasttrack
    section: fasttrack
  - name: epel-testing

Gdy sekcja nie jest określona, domyślnie jest ustawiana na nazwę repozytorium.

Dodawanie użytkowników

Użytkownicy są określani przez słowniki w następujący sposób:

rhbase_users:
  - name: johndoe
    comment: 'John Doe'
    groups:
      - users
      - devs
    password: '$6$WIFkXf07Kn3kALDp$fHbqRKztuufS895easdT [...]'
  - name: janedoe

Jedynym obowiązkowym kluczem jest name.

Klucz Wymagany Domyślny Uwagi
name tak - Nazwa użytkownika
comment nie '' Tekst komentarza
shell nie '/bin/bash' Powłoka poleceń użytkownika
groups nie [] Grupy, do których ten użytkownik ma być dodany (1)
password nie '!!' Hasło użytkownika (2)

Uwagi:

(1) Jeśli chcesz uczynić użytkownika administratorem, upewnij się, że jest członkiem grupy wheel (zobacz Podręcznik administratora systemu RedHat.

(2) Hasło powinno być określone jako hash, jak zwracany przez crypt(3), w formie $algo$salt$hash. Dla testów i maszyn VMs proof-of-concept można skorzystać z https://www.mkpasswd.net/ do generowania hashy w odpowiedniej formie. Typowe typy hashy dla Linuksa to MD5 (crypt-md5, hashe zaczynające się od $1$) i SHA-512 (crypt-sha-512, hashe zaczynające się od $6$).

Zależności

Brak zależności.

Przykładowy playbook

Wkrótce

Testowanie

Wkrótce

Wkład

Problemy, prośby o funkcje, pomysły są mile widziane i mogą być zgłaszane w sekcji Problemy.

Prośby o scalenie są również bardzo mile widziane. Najlepszym sposobem na przesłanie PR jest najpierw utworzenie forka tego projektu Github, a następnie utworzenie gałęzi tematycznej dla proponowanej zmiany i wypushowanie tej gałęzi do własnego forka. Github może następnie łatwo utworzyć PR na podstawie tej gałęzi. Nie zapomnij dodać swojego imienia do listy współtwórców poniżej!

Licencja

BSD

Współtwórcy

Oryginalni Współtwórcy

O projekcie

Base setup of a server with a RedHat-based Linux distribution with the systemd init system.

Zainstaluj
ansible-galaxy install clusterapps.rhbase
Licencja
other
Pobrania
215
Właściciel
I'm here to read the articles.