cans.user-make
cans.user-make
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 natrue
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żeusermake_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
lubsudoers
, 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
: kiedyusermake_upload_ssh_key_to_target
lub wartośćupload_my_key
dla użytkownika jesttrue
, 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.
ansible-galaxy install cans.user-make