1it.users
Rola Użytkowników dla Ansible
Ta rola umożliwia prostą obsługę kont użytkowników w systemie.
Od wersji v0.2 możliwe jest kontrolowanie, gdzie utworzyć konkretne konto użytkownika - poprzez ustawienie grupy docelowej (np. grupy inwentarza, tagu EC2 lub innej etykiety chmurowej)
Dziennik zmian
0.2.1 - 2021-11-08
Dodano:
Usunięcie grupy użytkownika
Usunięcie katalogu domowego użytkownika - delete_homedirs
0.2 - 2021-11-08
Zmiany:
target_hosts jest teraz obowiązkowe. Proszę dodać target_hosts: ['all'] do każdego wpisu użytkownika, jeśli chcesz stworzyć tego użytkownika na wszystkich hostach.
Usunięto:
users_keys został usunięty z powodu problemów z kompatybilnością. Prawdopodobnie nie był w ogóle używany.
0.1 - 2021-10-27
Poprawki:
groups powinny być pomijane domyślnie, inne domyślne wartości.
Dodano:
Pierwsza próba target_hosts (nie działa).
Zmiany:
users.state jest obowiązkowe.
Wymagania
- Ansible 2.9.0 lub wyższy
Zmienne
Zmienne, które można przekazać do tej roli oraz krótki opis ich znaczenia:
# Lista kont użytkowników do dodania do systemu
users: []
# Domyślny shell przypisany do wszystkich kont użytkowników
users_default_shell: '/bin/bash'
# Domyślna grupa, do której będą dodawane nowe konta użytkowników
users_default_group: 'users'
# Domyślny znacznik dotyczący tworzenia unikalnej grupy dla każdego użytkownika lub umieszczania
# wszystkich użytkowników w domyślnej grupie zdefiniowanej powyżej
users_create_group_per_user: true
# Domyślny znacznik dotyczący tworzenia katalogów domowych użytkowników
users_create_homedir: true
# Domyślna lista grup (do utworzenia)
users_group_list: []
# Usunięcie katalogów domowych podczas usuwania użytkownika - domyślnie wyłączone
delete_homedirs: false
Struktura listy użytkowników
# Lista kont użytkowników do dodania do systemu
users:
  # Pierwszy użytkownik definiujący tylko wymagane atrybuty
  - username: 'johndoe'     # Nazwa użytkownika Linux
    uid: 1000               # OPCJONALNY ID użytkownika (zazwyczaj użytkownicy nie-systemowi zaczynają od 1000)
    authorized: []          # Lista publicznych kluczy SSH do dodania do konta
    target_hosts: ['dev']   # Lista grup hostów inwentarza, w których konto użytkownika ma istnieć
    state: 'present'        # WYMAGANY stan konta
  # Drugi użytkownik definiujący wszystkie dostępne atrybuty
  - username: 'janedoe'     # Nazwa użytkownika Linux
    uid: 1001               # OPCJONALNY ID użytkownika
    authorized:             # Lista publicznych kluczy SSH do dodania do konta
      - 'ssh-rsa key_string1'
      - 'ssh-ecdsa key_string2'
    name: 'Jane Doe'        # Używane jako komentarz podczas tworzenia konta
    system: false           # Określa, czy konto będzie kontem systemowym
    group: 'jdoe'           # Alternatywna główna grupa specyficzna dla użytkownika
    groups:                 # Dodatkowe grupy użytkowników
      - 'admin'
      - 'developers'
    shell: '/bin/bash'      # Domyślny shell dla konta
    home: '/home/jdoe'      # Alternatywna lokalizacja katalogu domowego dla konta
    generate_key: true      # Generuj nowy klucz SSH dla konta
    state: 'present'
  # Wycofane konta
  - username: 'bob'
    uid: 1003
    authorized: []
    target_hosts: ['dev']
    state: absent
Przykład playbooka
- Tworzenie użytkownika administracyjnego i użytkownika wdrożeniowego: - --- # Ten playbook konfiguruje maszyny z wspólnymi użytkownikami - name: Zastosuj wspólnych użytkowników dla wszystkich węzłów hosts: all roles: - { role: users, users: - username: 'sa' authorized: ['ssh-rsa key_string'] name: 'Administrator Systemu' groups: ['admin'] target_hosts: - dev - stage - prod state: 'present' - username: 'ansible' name: 'Konto usługi Ansible' generate_key: true authorized: [] state: 'present' # Uwaga - target_hosts musi być zdefiniowane, w przeciwnym razie użytkownik nie zostanie utworzony. # Użyj ['all'], aby stworzyć użytkownika na wszystkich hostach domyślnie. target_hosts: ['all'] - username: 'johndoe' name: 'John Doe' generate_key: true authorized: [] target_hosts: ['dev'] state: 'present' }
Uwaga: Tworząc zmienną zawierającą listę użytkowników do dodania lub usunięcia, najlepiej jest zacząć od group_vars/all. Spróbuj group_vars/nazwagruppy lub host_vars/nazwa_hosta, jeśli chcesz mieć użytkowników tylko na określonych maszynach. target_hosts to lista grup hostów, mogą to być również tagi w dynamicznym inwentarzu chmurowym, jak AWS/GCP/inna chmura, strefa dostępności, region, projekt.
Zależności
Licencja
MIT.
Ansible role for managing user accounts and authorized ssh-keys
ansible-galaxy install 1it.users