robertdebock.users
Rola Ansible użytkownicy
Celem tej roli jest dodawanie użytkowników i grup do systemu.
GitHub | GitLab | Pobrania | Wersja |
---|---|---|---|
Przykładowy playbook
Ten przykład pochodzi z molecule/default/converge.yml
i jest testowany przy każdym pushu, prośbie o scalenie i wydaniu.
---
- name: Zbieżność
hosts: all
become: true
gather_facts: true
roles:
- role: robertdebock.users
# Możesz tworzyć grupy:
users_groups:
- name: robertdb
gid: 1024
- name: users
# Możesz również usuwać grupy.
- name: notgroup
state: absent
# Możliwa jest także grupa systemowa.
- name: systemgroup
system: true
# Możesz tworzyć użytkowników.
users:
- name: root
cron_allow: true
# Możesz usunąć autoryzowane klucze.
unauthorized_keys:
- "ssh-rsa XYZYX54321"
- name: robertdb
comment: Robert de Bock
uid: 1024
# Grupa `group` i `groups` wymienione tutaj powinny istnieć.
group: robertdb
groups:
- users
cron_allow: true
sudo_options: "ALL=(ALL) NOPASSWD: ALL"
# Dodanie autoryzowanego klucza.
authorized_keys:
- "ssh-rsa ABC123"
# Czas EPOCH, kiedy konto powinno wygasnąć.
expires: -1
password_validity_days: 9
- name: robert.d.b
comment: Robert de Bock z kropkami w nazwie użytkownika
uid: 1025
group: robertdb
groups:
- users
cron_allow: true
sudo_options: "ALL=(ALL) ALL"
authorized_keys:
- "ssh-rsa ABC123"
expires: -1
password_validity_days: 9
# Tutaj użytkownik jest usuwany.
- name: notuser
state: absent
- name: keyuser
manage_ssh_key: true
- name: privkeyuser
manage_ssh_key: true
copy_private_key: true
- name: multiplekeys
authorized_keys:
- "ssh-rsa ABC1234"
- "ssh-rsa ABC12345"
- name: passuser
password: "$6$mysecretsalt$qJbapG68nyRab3gxvKWPUcs2g3t0oMHSHMnSKecYNpSi3CuZm.GbBqXO8BE6EI6P1JUefhA0qvD7b5LSh./PU1"
update_password: on_create
- name: remotekey
authorized_keys:
- "https://raw.githubusercontent.com/shaanr/smdb/master/file.pub"
- name: systemuser
system: true
- name: multisudo
sudo_options:
- "ALL= NOPASSWD: /usr/bin/systemctl restart httpd"
- "ALL= NOPASSWD: /usr/bin/systemctl start httpd"
- "ALL= NOPASSWD: /usr/bin/systemctl stop httpd"
- name: myprivkeyuser
private_keys:
- name: id_rsa
content: |
-----BEGIN OPENSSH PRIVATE KEY-----
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
AwQFBg==
-----END OPENSSH PRIVATE KEY-----
Maszyna musi być przygotowana. W CI robi się to za pomocą molecule/default/prepare.yml
:
---
- name: Przygotowanie
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
tasks:
- name: Ustawienie autoryzowanych kluczy dla root
ansible.posix.authorized_key:
user: root
state: present
key: "ssh-rsa XYZYX54321"
Zobacz także pełne wyjaśnienie i przykład dotyczące korzystania z tych ról.
Zmienne roli
Domyślne wartości dla zmiennych są ustawione w defaults/main.yml
:
---
# plik domyślny dla użytkowników
# Lokalizacja do przechowywania kluczy ssh dla użytkownika
users_ssh_key_directory: ssh_keys
# Domyślny shell, jeśli nie został nadpisany.
users_shell: /bin/bash
# zarządzaj uprawnieniami cron poprzez /etc/cron.allow
users_cron_allow: true
# czy mają być tworzone katalogi domowe?
users_create_home: true
Wymagania
- pakiety pip wymienione w requirements.txt.
Stan używanych ról
Poniższe role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.
Wymaganie | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies |
Kontekst
Ta rola jest częścią wielu kompatybilnych ról. Zobacz dokumentację tych ról tutaj w celu uzyskania dalszych informacji.
Oto przegląd powiązanych ról:
Kompatybilność
Ta rola była testowana na tych obrazach kontenerów:
kontener | tagi |
---|---|
Alpine | wszystkie |
Amazon | Kandydat |
EL | 9 |
Debian | wszystkie |
Fedora | wszystkie |
Ubuntu | wszystkie |
Minimalna wymagana wersja Ansible to 2.12, testy zostały przeprowadzone dla:
- poprzedniej wersji.
- bieżącej wersji.
- wersji deweloperskiej.
Jeśli znajdziesz problemy, zgłoś je na GitHub.
Licencja
Informacje o autorze
Proszę rozważyć wsparcie mnie.
The purpose of this role is to add users and groups on your system.
ansible-galaxy install robertdebock.users