rembik.users

Rola Ansible: Użytkownicy

Status budowy Wydanie GitHublink Rola Ansible Pobrania Roli Ansible

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:
  • present
  • absent
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:
  • no
  • yes
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
  • on_create
always zaktualizuje hasła, jeśli się różnią. on_create ustawi hasło tylko dla nowo utworzonych użytkowników.
create_home Opcje:
  • yes
  • no
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:
  • no
  • yes
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:
  • no
  • yes
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:
  • no
  • yes
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:
  • no
  • yes
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:
  • no
  • yes
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:
  • present
  • absent
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

Python Ansible

Ta rola jest testowana okresowo przeciwko następującym dystrybucjom Linuxa:

Ansible Ansible Ansible
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check
DockerDistro Check Check Check
EC2Distro Check

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

Zainstaluj
ansible-galaxy install rembik.users
Licencja
apache-2.0
Pobrania
83
Właściciel