AsavarTzeth.users
Rola Użytkowników Ansible - ansible-role-users
Rola Ansible służąca do zarządzania użytkownikami, grupami, kluczami SSH oraz uprawnieniami sudo.
Format konfiguracji tej roli jest mocno inspirowany formatem używanym w cloud-init/cloud config. Celem jest użycie tej samej lub podobnej struktury YAML wszędzie tam, gdzie to możliwe, z możliwością jej rozszerzenia tam, gdzie ma to sens.
Kilka drobnych, istotnych różnic:
- Każdy znak myślnika musiał zostać zastąpiony znakiem podkreślenia, ze względu na to, jak Ansible interpretuje nazwy zmiennych.
Aby uzyskać więcej informacji o cloud-init, zapoznaj się z dokumentacją cloud-init pod adresem:
https://cloudinit.readthedocs.io/en/latest/index.html
Wymagania
Ta rola została opracowana i przetestowana w Ansible 2.2.0 i nowszych wersjach. Może działać w niższych wersjach, ale nie jest to obecnie wspierane.
Zmienne roli
Lista zmiennych i wartości domyślne:
# Domyślny powłok użytkownika, używana przy tworzeniu użytkownika.
users_default_shell: /bin/bash
# Określa, czy rola powinna tworzyć grupę główną, jeśli nie istnieje.
# Aby zapobiec awarii roli, domyślnie ustawiono na true.
# Wyłącz to, jeśli grupy są zarządzane gdzie indziej.
users_create_primary_group: true
# Włącza zarządzanie podwyższeniem uprawnień za pomocą sudo.
# Wyłącz to, jeśli sudo nie będzie używane lub jest zarządzane gdzie indziej.
users_enable_sudo: true
# Jedynym obowiązkowym parametrem jest nazwa.
users:
- name: '' # Nazwa użytkownika.
gecos: '' # Pole komentarza, znane i używane także jako prawdziwe imię użytkownika.
homedir: '' # Katalog domowy użytkownika.
primary_group: '' # Główna grupa użytkownika.
groups: [] # Lista dodatkowych grup dla użytkownika.
no_create_home: false # Jeśli true, nie twórz katalogu domowego. Domyślnie true jeśli `system: true`.
shell: "{{ users_default_shell }}" # Domyślna powłoka użytkownika.
passwd: '' # Hasło w formie zaszyfrowanej SHA512.
ssh_authorized_keys: [] # Lista publicznych kluczy SSH do dodania do pliku authorized_keys.
sudo: '' # Ciąg sudo, który będzie użyty do konfiguracji sudo.
system: false # Jeśli true, użytkownik będzie użytkownikiem systemowym. To nie wpływa na istniejących użytkowników.
Zależności
Brak
Przykładowy Playbook
Dodaj lub zmodyfikuj użytkownika i skonfiguruj sudo oraz klucze SSH:
- hosts: all
roles:
- role: AsavarTzeth.users
users_default_shell: /bin/bash
users_create_primary_group: true
users_enable_sudo: true
users:
- name: foobar1
gecos: Foo B. Bar
primary_group: foobar1
groups: ['users','wheel']
shell: /bin/bash
ssh_authorized_keys:
- "ssh-rsa AAAAA.... foo@host"
- "ssh-rsa AAAAB.... bar@host"
sudo: ALL=(ALL) ALL
Dodaj lub zmodyfikuj użytkownika systemowego:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar2
gecos: FooBar Konto Usługowe
homedir: /
primary_group: foobar
shell: /sbin/nologin
system: true
Usuwanie użytkowników:
- hosts: all
roles:
- role: AsavarTzeth.users
users_deleted:
- name: foobar1
- name: foobar2
Modyfikacja hasła użytkownika:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar1
passwd: $6$mI3A2y4O.YfqhlPt$szsWfnICXsYLbsIghLauJG.I3enLYGDPBYO1DYTHn9gB6y3Q2faM7iqievJlU5ZMTT9X3wHrUv0c7HWkToGBp/
Licencja
BSD-2-Clause
Informacje o autorze
Patrik Nilsson
ansible-galaxy install AsavarTzeth.users