monolithprojects.user_management
Zarządzanie Użytkownikami
Ten skrypt Ansible służy do zarządzania użytkownikami systemu Linux (tworzenie, edytowanie, usuwanie). Zarządzanie obejmuje także dystrybucję kluczy SSH.
Jak to działa
Ten skrypt wykorzystuje lokalne fakty na każdym hoście do przechowywania nazw użytkowników wymienionych w user_management
. Tylko ci użytkownicy są zarządzani przez ten skrypt. Po usunięciu użytkownika z listy user_management
, użytkownik oraz jego katalog domowy zostaną usunięte z hosta. Użytkownicy, którzy nie są wymienieni na liście user_management
(użytkownicy, którzy nie zostali utworzeni przez ten skrypt Ansible) pozostaną nietknięci.
Ten skrypt potrafi:
- tworzyć użytkowników
- usuwać użytkowników
- edytować użytkowników
- zarządzać kluczami SSH
Wymagania
Obsługiwane dystrybucje Linuxa:
- CentOS/RHEL 7,8
- Debian 9,10
- Fedora 29,30,31,32
- Ubuntu 16,18,20
Uwaga: To są testowane co tydzień dystrybucje Linuxa. Skrypt prawdopodobnie zadziała też na innych dystrybucjach Linuxa.
Zmienne skryptu
To jest kopia z defaults/main.yml
local_facts_file: linux_users.fact
local_facts_path: /etc/ansible/facts.d
user_management:
# - name: userx <<< Nazwa użytkownika (Wymagana).
# comment: Użytkownik X <<< (Opcjonalne) Opis użytkownika.
# groups: <<< (Opcjonalne) Lista grup, do których użytkownik zostanie dodany.
# - gry
# - wideo
# ssh_keys: <<< (Opcjonalne) Lista autoryzowanych kluczy publicznych.
# - 'ssh-ed25519 xxxx coś tam'
# shell: /bin/bash <<< (Opcjonalne) Powłoka użytkownika (domyślna wartość "/bin/bash").
# expires: -1 <<< (Opcjonalne) Data wygaśnięcia użytkownika w formacie Epoch (domyślna wartość "-1").
# create_home: yes <<< (Opcjonalne) Utwórz katalog domowy (domyślna wartość "tak").
# system: no <<< (Opcjonalne) Utwórz konto systemowe (domyślna wartość "nie").
Przykład skryptu:
W tym przykładzie Ansible utworzy (lub edytuje - jeśli to nie jest pierwsze uruchomienie) 3 użytkowników. user1
z komentarzem, zsh
jako domyślną powłoką, wygasnąć w 1640991600
czasie Epoch, użytkownik zostanie dodany do grup sudo
i docker
, a na koniec dodane dwa klucze publiczne SSH. user2
zostanie utworzony z domyślnymi ustawieniami. appuser
zostanie utworzony jako użytkownik systemowy.
---
- name: Zarządzanie Użytkownikami
hosts: all
user: ubuntu
gather_facts: yes
become: yes
vars:
user_management:
- name: user1
comment: Mój Użytkownik Testowy
shell: /bin/zsh
expires: 1640991600
groups:
- sudo
- docker
ssh_keys:
- 'ssh-ed25519 xxxxxx klucz_użytkownika'
- 'ssh-rsa xxxxxx klucz_użytkownika'
- name: user2
- name: appuser
system: yes
create_home: no
roles:
- ansible-user_management
Licencja
MIT
Informacje o autorze
Utworzone w 2020 roku przez Michala Muranskiego
ansible-galaxy install monolithprojects.user_management