taktus.users
Rola Ansible: użytkownicy
Rola do zarządzania użytkownikami w systemie.
Konfiguracja roli
users_create_per_user_group
(domyślnie: true) - przy tworzeniu użytkowników, również tworzy grupę o tej samej nazwie co użytkownik i ustawia ją jako grupę główną użytkownika.users_group
(domyślnie: users) - jeśliusers_create_per_user_group
nie jest ustawione, wtedy to jest grupa główna dla wszystkich tworzonych użytkowników.users_default_shell
(domyślnie: /bin/bash) - domyślna powłoka, jeśli nie zostanie podana dla użytkownika.users_create_homedirs
(domyślnie: true) - tworzy katalogi domowe dla nowych użytkowników. Ustaw na false, jeśli zarządzasz katalogami domowymi oddzielnie.
Tworzenie użytkowników
Dodaj zmienną users
, zawierającą listę użytkowników do dodania. Dobre miejsce na to
to group_vars/all
lub group_vars/groupname
, jeśli chcesz, aby użytkownicy
znaleźli się tylko na określonych maszynach.
Poniższe atrybuty są wymagane dla każdego użytkownika:
username
- Nazwa użytkownika.name
- Pełne imię i nazwisko użytkownika.home
- Katalog domowy do stworzenia (opcjonalnie, domyślnie /home/username).uid
- Numer identyfikacyjny użytkownika (opcjonalnie). Wymagane dla spójnościuid
między systemami.gid
- Numer identyfikacyjny grupy (opcjonalnie). W przeciwnym wypadku, będzie użytyuid
.password
- Jeśli podano hash, będzie użyty, w przeciwnym razie konto będzie zablokowane.update_password
- Może byćalways
lubon_create
'always'
zaktualizuje hasła, jeśli się różnią. (domyślnie)'on_create'
ustawi hasło tylko dla nowo utworzonych użytkowników.
group
- Opcjonalne nadpisanie grupy głównej.groups
- Lista dodatkowych grup dla użytkownika.append
- Jeśli tak, doda tylko grupy, nie ustawiając ich jako jedynych w listach (opcjonalnie).profile
- Blok tekstu do ustawienia niestandardowych profili powłok.ssh_key
- Lista kluczy SSH dla użytkownika (opcjonalnie). Każdy klucz SSH powinien być podany bezpośrednio i nie powinien zawierać nowych linii.generate_ssh_key
- Czy wygenerować klucz SSH dla użytkownika (opcjonalnie, domyślnie nie).
Dodatkowo, poniższe elementy są opcjonalne dla każdego użytkownika:
shell
- Powłoka użytkownika. Domyślnie /bin/bash. Domyślną powłokę można skonfigurować za pomocą zmiennejusers_default_shell
, jeśli chcesz dać wszystkim użytkownikom tę samą powłokę, ale różniącą się od /bin/bash.is_system_user
- Ustaw naTrue
, aby utworzyć użytkownika systemowego.
Przykład:
---
users:
- username: foo
name: Foo Bar
groups: ['admin', 'systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
Generowanie hasła hash:
# Na Debianie/Ubuntu (poprzez pakiet "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (uwaga: to stworzy tylko md5crypt. Choć lepsze niż tekst
# jawny, nie powinno być uznawane za w pełni bezpieczne)
openssl passwd -1
# Python (zmień wartości hasła i soli)
python -c "import crypt, getpass, pwd; print crypt.crypt('hasło', '\$6\$SÓL\$')"
# Perl (zmień wartości hasła i soli)
perl -e 'print crypt("hasło","\$6\$SÓL\$") . "\n"'
Usuwanie użytkowników
Zmienna users_deleted
zawiera listę użytkowników, którzy nie powinni
już być w systemie, a ci zostaną usunięci przy następnym uruchomieniu ansible.
Format jest taki sam jak dla użytkowników do dodania, ale jedynym
wymaganym polem jest username
. Zaleca się jednak, aby również
zachować pole uid
w celu odniesienia, aby unikać przypadkowego
ponownego używania identyfikatorów użytkowników.
Możesz opcjonalnie wybrać usunięcie katalogu domowego użytkownika oraz
spoola pocztowego za pomocą parametru remove
, a wymusić usunięcie
plików za pomocą parametru force
.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Zależności
Brak.
Licencja
MIT
ansible-galaxy install taktus.users