cans.user-make

cans.user-make

Status budowy Ansible Galaxy Licencja

Rola Ansible do tworzenia wielu użytkowników na docelowych hostach

Jak to działa?

Każdy użytkownik, który ma zostać utworzony, musi być zdefiniowany jako element w następujący sposób:

usermake_users:
  - name: "johndoe"                # obowiązkowe
    gecos: "John Doe,,,"           # domyślnie: pomiń
    groups: "sudo,adm"             # domyślnie: pomiń
    passwordless_sudo: true        # domyślnie: usermake_sudoer_passwordless
    ssh_key_create: false          # domyślnie: true
    ssh_key_upload_to_ec2: true    # domyślnie: usermake_ssh_key_upload_to_ec2
    ssh_key_download: true         # domyślnie: usermake_ssh_key_download
    sudoer: true                   # domyślnie: usermake_sudoer
    system: false                  # domyślnie: false
    upload_my_key: false           # domyślnie: usermake_upload_ssh_key_to_target
    remove: false                  # domyślnie: pomiń lub usermake_remove
    home_dir: "/home/jdoe"         # domyślnie: usermake_home_base_dir/nazwa

Oto znaczenie każdej zmiennej w elemencie:

  • name: nazwa logowania, którą przypiszemy nowemu użytkownikowi;
  • gecos: dane GECOS do przypisania nowemu użytkownikowi;
  • groups: lista grup, do których użytkownik powinien należeć. Grupy wymienione tutaj powinny istnieć a priori (patrz także następny sekcja)
  • passwordless_sudo: po ustawieniu na true użytkownik będzie mógł przyjąć tożsamość innego użytkownika bez podawania hasła;
  • remove: kiedy wartość state dla elementu to 'absent', określa, czy usunąć pliki należące do użytkownika podczas usuwania konta (może być wolne);
  • ssh_key_create: czy wygenerować parę kluczy SSH dla nowego użytkownika;
  • ssh_key_download: czy pobrać wygenerowany publiczny klucz SSH użytkownika do folderu na lokalnej maszynie (zobacz także usermake_ssh_key_download_dir zdefiniowane poniżej).
  • ssh_key_upload_to_ec2: czy przesłać wygenerowany publiczny klucz SSH użytkownika do systemu zarządzania kluczami AWS EC2.
  • state: czy utworzyć () lub usunąć () użytkownika wskazanego przez wartości 'present' lub 'absent' odpowiednio (domyślnie: 'present');
  • sudoer: jeśli ustawione na true, użytkownik zyska uprawnienia sudo (zobacz także zmienną usermake_sudoer);
  • system: czy użytkownik powinien być użytkownikiem systemowym ( z niskim numerem UID i zablokowanym logowaniem);
  • upload_my_key: czy przesłać lokalny klucz ssh do docelowego hosta.

Wszystkie te wartości, jeśli zostały zdefiniowane, nadpiszą domyślne wartości z sekcji zmiennych roli poniżej.

Czego ta rola nie może zrobić?

Nie może dodawać użytkowników do nowych grup, nadpisze grupy użytkownika podaną listą grup.

Wymagania

Ta rola nie ma specjalnych wymagań.

Zmiennne Roli

Wszystkie nazwy zmiennych używanych w tej roli są oznaczone prefiksem usermake_.

  • usermake_home_base_dir: pozwala na nadpisanie ścieżki do katalogu, w którym tworzone są katalogi domowe użytkowników (domyślnie: /home);
  • usermake_remove: czy usunąć katalog domowy użytkowników, gdy są usuwani (domyślnie: false);
  • usermake_ssh_key_create: czy tworzyć parę kluczy ssh dla nowych użytkowników domyślnie (domyślnie: true);
  • usermake_ssh_key_download: czy pobierać lokalnie klucze ssh tworzonych użytkowników;
  • usermake_ssh_key_download_dir: katalog, w którym będą przechowywane pobrane publiczne klucze SSH (domyślnie: {{ playbook_dir }}/collected-keys);
  • usermake_ssh_key_download_dir_mode: tryb katalogu, w którym będą przechowywane pobrane publiczne klucze SSH (domyślnie: 0750);
  • usermake_ssh_key_passphrase: domyślne hasła do szyfrowania prywatnych kluczy ssh. Nie jest zalecane poleganie na tym. Powinieneś podać hasła innymi metodami. (domyślnie: omijaj [bez hasła]);
  • usermake_sudoer: czy tworzeni użytkownicy powinni być sudoerami domyślnie (domyślnie: false); Uwaga: przed przyznawaniem podwyższonych uprawnień jakiegokolwiek użytkownika, consideruj dystrybucje, które oferują pakiet sudo, który definiuje grupę sudo lub sudoers, która już przyznaje pewne uprawnienia swoim członkom. Obecny mechanizm jest bardziej przeznaczony do wstępnego ustawiania użytkownika z wysokimi uprawnieniami na obrazach dysku, aby umożliwić łatwą konfigurację i przygotowanie. A nie do zarządzania szczegółowymi uprawnieniami użytkownika lub aplikacji;
  • usermake_sudoer_dir: katalog na docelowych maszynach, w którym umieszczane są pliki reguł sudoer (domyślnie: /etc/sudoers.d)
  • usermake_system: czy tworzeni użytkownicy powinni być użytkownikami systemowymi domyślnie (domyślnie: false);
  • usermake_upload_ssh_key_to_target: czy przesłać lokalny publiczny klucz SSH do docelowego hosta. Przydatne, jeśli planujesz wykonywać zadania jako ten użytkownik w kolejnych zadaniach lub rolach swojego playbooka (domyślnie: true);
  • usermake_upload_ssh_key_file: kiedy usermake_upload_ssh_key_to_target lub wartość upload_my_key dla użytkownika jest true, wskazuje plik, z którego należy odczytać publiczny klucz do przesłania (domyślnie: ~/.ssh/id_rsa.pub);
  • usermake_user_groups: grupy, do których domyślnie przypisywani są nowi użytkownicy (domyślnie: pomijaj);
  • usermake_users: lista użytkowników do utworzenia, zdefiniowana jako elementy, jak opisano powyżej (domyślnie: []);

Zależności

Ta rola nie ma zależności

Przykład Playbook

Tworzenie kilku użytkowników:

- hosts: servers
  roles:
     - role: cans.user-make
       usermake_users:
         - name: "alice"
           groups: "sudo,adm"
           system: "no"
           ssh_key_create: "yes"
         - name: "bob"
           gecos: "Bob no sponge,,,"
           system: "yes"
           ssh_key_create: true

Usuwanie kilku użytkowników:

- hosts: servers
  roles:
    - role: cans.user-make
      usermake_users:
        - name: "alice"
          state: "absent"
          remove: true  # Usuń wszystkie pliki użytkownika
        - name: "bob"
          state: "absent"

Możesz też chcieć zapoznać się z testami zawartymi w tests/test.yml dla wielu innych (mam nadzieję, wyczerpujących) przykładów użycia tej roli.

Do Zrobienia

Wdrażenie testów integracyjnych dla przesyłania kluczy do AWS.

Licencja

GPLv2

Informacje o Autorze

Copyright © 2017, Nicolas CANIART.

O projekcie

Simple Role to create a given list of users

Zainstaluj
ansible-galaxy install cans.user-make
Licencja
gpl-2.0
Pobrania
149
Właściciel