rembik.users
Rola Ansible: Użytkownicy
Ta rola zarządza użytkownikami i ich grupami w Twoim systemie.
Wymagania
- Dostęp do repozytorium zawierającego pakiety, prawdopodobnie w internecie.
- Niedawna wersja Ansible (przetestowane na ostatnich 2 stabilnych głównych wersjach).
Poniższe role można zainstalować, aby upewnić się, że wszystkie wymagania są spełnione, używając ansible-galaxy install -r requirements.yml
:
---
- rembik.bootstrap
Zmienne roli
Te domyślne wartości są ustawione w defaults/main.yml
:
---
# plik domyślny dla użytkowników
# Domyślna wartość, czy stworzyć grupę dla każdego użytkownika
# i uczynić ją ich grupą główną
users_group_per_user: yes
# Jeśli nie zostanie stworzona grupa dla użytkownika, to jest to domyślna grupa
# główna, do której należą wszyscy użytkownicy
users_group: users
# Domyślna wartość, czy utworzyć katalog domowy dla użytkownika
#, gdy konto jest tworzone lub jeśli katalog domowy nie istnieje
users_create_home: yes
# Domyślne opcje sudo dla użytkownika, gdy sudo jest ustawione na yes,
# ale żadne nie są określone
users_sudo_options: "ALL=(ALL) NOPASSWD: ALL"
# Domyślna powłoka dla użytkownika, gdy żadna nie jest określona
users_shell: /bin/bash
# Lokalny katalog do znajdowania/przechowywania wygenerowanych kluczy ssh
users_ssh_key_dir: ssh_keys
# Lista użytkowników do utworzenia, usunięcia lub modyfikacji
users: []
# Lista grup użytkowników do utworzenia lub usunięcia
users_groups: []
Dobrze jest umieścić zamiany dla tych zmiennych w group_vars/all
lub group_vars/nazwa_grupy
, jeśli chcesz, aby określeni użytkownicy i grupy znajdowały się tylko na niektórych maszynach.
Zmienna users
zawiera listę użytkowników do utworzenia, usunięcia lub zmodyfikowania. Każdy użytkownik na tej liście zdefiniowany jest jako słownik. Następujące parametry są dostępne dla każdego słownika użytkownika:
Parametr użytkownika | Opcje / Domyślne | Uwagi |
---|---|---|
name wymagane |
Nazwa użytkownika do utworzenia, usunięcia lub zmodyfikowania. | |
state |
Opcje:
|
Czy konto powinno istnieć, podejmując działania, jeśli stan różni się od stated. |
comment |
Opcjonalnie ustawia opis konta użytkownika. | |
uid |
Opcjonalnie ustawia UID użytkownika. | |
group |
Domyślne: user.name |
Opcjonalnie nadpisuje główną grupę użytkownika, pobraną z users_group_per_user=yes lub users_group (przyjmuje nazwę grupy). |
gid |
To dotyczy tylko users_group_per_user=yes . Opcjonalnie ustawia różny GID głównej grupy użytkownika. W przeciwnym razie używany będzie UID. |
|
groups |
Lista grup, do których użytkownik zostanie dodany. Gdy ustawiona na pusty ciąg, użytkownik zostanie usunięty ze wszystkich grup z wyjątkiem grupy głównej. | |
append |
Opcje:
|
Jeśli tak, dodaj użytkownika do grup określonych w groups . Jeśli nie, użytkownik zostanie tylko dodany do grup określonych w groups , zostając usunięty ze wszystkich innych grup. |
password |
Domyślne: ! | Opcjonalnie ustawia hasło użytkownika na tę zaszyfrowaną wartość. W przeciwnym razie konto użytkownika zostanie zablokowane. |
update_password |
Opcje:
|
always zaktualizuje hasła, jeśli się różnią. on_create ustawi hasło tylko dla nowo utworzonych użytkowników. |
create_home |
Opcje:
|
Opcjonalnie nadpisuje tę wartość pobraną z users_create_home . O ile nie jest ustawione na no, katalog domowy zostanie utworzony dla użytkownika, gdy konto jest tworzone lub jeśli katalog domowy nie istnieje. |
home |
Domyślne: /home/user.name |
Opcjonalnie ustawia katalog domowy użytkownika. |
shell |
Domyślne: /bin/bash | Opcjonalnie nadpisuje powłokę użytkownika pobraną z users_shell . |
profile |
Opcjonalnie ustawia niestandardowy blok w profilu użytkownika. Wymaga user.create_home=yes ! |
|
cron |
Opcje:
|
Jeśli tak, pozwala użytkownikowi na tworzenie, edytowanie, wyświetlanie lub usuwanie plików crontab. W przeciwnym razie, zabrania modyfikacji plików crontab. |
sudo |
Opcje:
|
Jeśli tak, ustawia opcje sudo użytkownika pobrane z user.sudo_options . W przeciwnym razie, usuwa opcje sudo użytkownika. |
sudo_options |
Domyślne: ALL=(ALL) NOPASSWD: ALL | Opcjonalnie nadpisuje opcje sudo użytkownika pobrane z users_sudo_options . |
ssh_key |
Lista autoryzowanych kluczy SSH użytkownika (przyjmuje publiczne klucze SSH; dołączone bezpośrednio i bez nowych linii). Gdy ustawione na pustą listę lub ciąg, wszystkie autoryzowane klucze SSH użytkownika są usuwane. Wymaga user.create_home=yes ! |
|
generate_ssh_key |
Opcje:
|
O ile nie jest ustawione na no, generuje parę kluczy SSH użytkownika, jeśli klucz SSH nie istnieje w lokalnym katalogu users_ssh_key_dir . Następnie dodaje go do autoryzowanych kluczy SSH użytkownika i wdraża parę kluczy SSH dla użytkownika. Wymaga user.create_home=yes ! |
remove |
Opcje:
|
To dotyczy tylko user.state=absent , próbuje usunąć katalogi powiązane z użytkownikiem. Zachowanie jest takie samo jak userdel --remove, sprawdź podręcznik dla szczegółów i wsparcia. |
force |
Opcje:
|
To dotyczy tylko user.state=absent , wymusza usunięcie użytkownika i powiązanych katalogów na wspieranych platformach. Zachowanie jest takie samo jak userdel --force, sprawdź podręcznik dla szczegółów i wsparcia. |
Zmienna users_groups
zawiera listę grup użytkowników do utworzenia lub usunięcia. Każda grupa na tej liście jest zdefiniowana jako słownik. Następujące parametry są dostępne dla każdego słownika grupy:
Parametr grupy | Opcje / Domyślne | Uwagi |
---|---|---|
name wymagane |
Nazwa grupy do zarządzania. | |
state |
Opcje:
|
Czy grupa powinna być obecna, czy nie na zdalnym hoście. |
gid |
Opcjonalny GID do ustawienia dla grupy. |
Zależności
Generalnie ta rola nie ma zależności. W połączeniu z zalecaną rolą rembik.bootstrap
, ta rola używa zdefiniowanego bootstrap_user
(jeśli to konieczne) do połączenia ze zdalnym hostem i wykonania zadań roli.
Przykładowy zestaw zadań
Ten przykład jest wzięty z molecule/playbook.yml
:
---
- name: Zastosuj zmiany
hosts: all
gather_facts: no
become: yes
roles:
- role: rembik.bootstrap
- role: rembik.users
vars:
users_ssh_key_dir: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
users_groups:
- name: users
- name: bin
users:
- name: nouser
comment: Brak użytkownika
create_home: no
- name: molecule
comment: Użytkownik do testów Ansible
uid: 2001
home: /home/test
cron: yes
sudo: yes
generate_ssh_key: yes
- name: administrator
comment: Administrator
uid: 2002
groups: [users]
cron: yes
sudo: yes
profile: |
alias ll='ls -lah'
alias cp='cp -iv'
ssh_key:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABWBILQeRSYYmGea/WIf6kd... [email protected]"
- name: user
comment: Użytkownik
uid: 2003
groups: [users]
shell: /bin/sh
generate_ssh_key: yes
Testowanie Roli
Ta rola jest testowana okresowo przeciwko następującym dystrybucjom Linuxa:
Asterisks oznaczają, że budowa może się nie powieść, jest oznaczona jako eksperymentalna.
Wkład
Jeśli napotkasz problemy, zgłoś je na stronie problemy w projekcie GitHub lub rozważ wniesienie wkładu w kod, postępując zgodnie z this guideline.
Licencja
Apache-2.0
Informacje o autorze
This role manages users and their groups on your system.
ansible-galaxy install rembik.users