reallyenglish.cyrus-sasl
ansible-role-cyrus-sasl
Instaluje cyrus-sasl
, saslauthd
i konfiguruje użytkowników w pliku bazy danych SASL. Ta rola obsługuje tylko lokalną bazę danych SASL i saslauthd
. Jeśli potrzebujesz innych backendów, to nie jest to dla Ciebie.
sasl_check_pw
Ta rola instaluje skrypt w języku Python do sprawdzania hasła użytkownika pod
/usr/local/bin
na wszystkich platformach. Ponieważ nie ma sposobu, aby zobaczyć, czy hasło zdefiniowane w zmiennej roli i to w bazie danych są takie same, skrypt
czyta cyrus_sasl_sasldb_file
i wyszukuje użytkownika oraz jego hasło. Skrypt zakłada, że cyrus_sasl_sasldb_file
ma format dbm
.
sasl_check_pw path user domain
path
to ścieżka do cyrus_sasl_sasldb_file
. user
to nazwa użytkownika w
cyrus_sasl_sasldb_file
, a domain
to domena, do której należy użytkownik. Ustaw hasło do sprawdzenia w zmiennej środowiskowej userPassword
. Kiedy hasło zgadza się z tym w cyrus_sasl_sasldb_file
, skrypt wypisuje matched
na stdout
. Kiedy się nie zgadza, wypisuje does not match
na stdout
. Musi być wykonany przez użytkownika, który ma uprawnienia do odczytu pliku cyrus_sasl_sasldb_file
.
Wymagania
Brak
Zmienne roli
Zmienna | Opis | Domyślna |
---|---|---|
cyrus_sasl_package |
nazwa pakietu cyrus-sasl |
{{ __cyrus_sasl_package }} |
cyrus_sasl_saslauthd_service |
nazwa usługi saslauthd |
{{ __cyrus_sasl_saslauthd_service }} |
cyrus_sasl_saslauthd_enable |
włącz saslauthd , jeśli tak |
yes |
cyrus_sasl_saslauthd_flags |
słownik zmiennych usługi i ich wartości | {} |
cyrus_sasl_saslauthd_flags_default |
domyślna wartość zmiennych usługi | {{ __cyrus_sasl_saslauthd_flags_default }} |
cyrus_sasl_plugin_dir |
katalog wtyczek, w którym znajduje się konfiguracja aplikacji | {{ __cyrus_sasl_plugin_dir }} |
cyrus_sasl_saslpassword_command |
polecenie do zarządzania hasłami użytkowników | {{ __cyrus_sasl_saslpassword_command }} |
cyrus_sasl_sasldblistusers_command |
polecenie do listowania użytkowników w bazie danych | {{ __cyrus_sasl_sasldblistusers_command }} |
cyrus_sasl_sasldb_file |
ścieżka do pliku bazy danych SASL | {{ __cyrus_sasl_sasldb_file }} |
cyrus_sasl_sasldb_owner |
właściciel pliku bazy danych SASL | root |
cyrus_sasl_sasldb_group |
grupa pliku bazy danych SASL | {{ __cyrus_sasl_sasldb_group }} |
cyrus_sasl_sasldb_file_permission |
uprawnienia do pliku bazy danych SASL | {{ __cyrus_sasl_sasldb_file_permission }} |
cyrus_sasl_config |
słownik konfiguracji aplikacji | {} |
cyrus_sasl_user |
słownik użytkowników w pliku bazy danych SASL | {} |
cyrus_sasl_saslauthd_flags
Ta zmienna jest słownikiem zmiennych plików konfiguracyjnych uruchamiania, takich jak
pliki w /etc/default
, /etc/sysconfig
i /etc/rc.conf.d
. Zakłada się, że pliki są source
owane przez mechanizm uruchamiania z użyciem sh(1)
. Klucz w słowniku to nazwa zmiennej w pliku, a wartość klucza to wartość tej zmiennej. Zmienna ta jest łączona z inną zmienną, która ma tę samą nazwę, ale z dołączonym sufiksem _default
(wyjaśnione poniżej) i wynik tworzy plik konfiguracyjny uruchamiania, zazwyczaj plik składający się z linii key="value"
w odpowiednim katalogu dla platformy.
Gdy platformą jest OpenBSD, powyższe wyjaśnienie nie ma zastosowania. W tym przypadku jedynym ważnym kluczem jest flags
, a jego wartość jest przekazywana do daemon_flags
opisanego w rc.conf(5)
, gdzie daemon
to nazwa jednego z kontrolowanych skryptów rc.d(8)
.
cyrus_sasl_saslauthd_flags_default
Ta zmienna jest słownikiem kluczy i wartości pochodzących z domyślnej konfiguracji upstream i powinna być stała, chyba że zajdzie taka potrzeba. Domyślnie rola tworzy plik konfiguracyjny uruchamiania dla każdej platformy z tą zmienną, identyczny do domyślnego.
Gdy platformą jest OpenBSD, zmienna ma pojedynczy klucz, flags
i jego wartość to pusty ciąg.
cyrus_sasl_config
Klucz to nazwa aplikacji. Wartość to słownik, w którym klucz to nazwa zmiennej, a wartość to jej wartość. Przykład:
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
cyrus_sasl_user
Klucz to nazwa użytkownika, a jego wartością jest słownik.
Klucz | Wartość |
---|---|
domain |
domena użytkownika |
password |
hasło użytkownika |
appname |
appname użytkownika |
state |
present lub absent . Rola tworzy użytkownika, jeśli present , lub go usuwa, jeśli absent |
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
Debian
Zmienna | Domyślnie |
---|---|
__cyrus_sasl_package |
libsasl2-2 |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"MECHANISMS"=>"pam", "MECH_OPTIONS"=>"", "THREADS"=>5, "OPTIONS"=>"-c -m /var/run/saslauthd"} |
__cyrus_sasl_plugin_dir |
/usr/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
0660 |
__cyrus_sasl_sasldb_group |
root |
FreeBSD
Zmienna | Domyślnie |
---|---|
__cyrus_sasl_package |
cyrus-sasl |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{} |
__cyrus_sasl_plugin_dir |
/usr/local/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/usr/local/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
600 |
__cyrus_sasl_sasldb_group |
wheel |
OpenBSD
Zmienna | Domyślnie |
---|---|
__cyrus_sasl_package |
cyrus-sasl-- |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"flags"=>"-a getpwent"} |
__cyrus_sasl_plugin_dir |
/usr/local/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
600 |
__cyrus_sasl_sasldb_group |
wheel |
RedHat
Zmienna | Domyślnie |
---|---|
__cyrus_sasl_package |
cyrus-sasl |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"SOCKETDIR"=>"/run/saslauthd", "MECH"=>"pam", "FLAGS"=>""} |
__cyrus_sasl_plugin_dir |
/usr/lib64/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
0640 |
__cyrus_sasl_sasldb_group |
root |
Zależności
Brak
Przykładowy playbook
- hosts: localhost
roles:
- ansible-role-cyrus-sasl
vars:
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
argus:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
cyrus_sasl_sasldb_group: "{% if ansible_os_family == 'Debian' %}nogroup{% else %}nobody{% endif %}"
cyrus_sasl_sasldb_file_permission: "0640"
extra_variables_debian:
THREADS: 6
extra_variables_redhat:
FLAGS: -n 6
extra_variables_freebsd:
saslauthd_flags: -a pam -n 6
extra_variables_openbsd:
flags: -a getpwent -n 6
cyrus_sasl_saslauthd_flags: "{% if ansible_os_family == 'Debian' %}{{ extra_variables_debian }}{% elif ansible_os_family == 'RedHat' %}{{ extra_variables_redhat }}{% elif ansible_os_family == 'FreeBSD' %}{{ extra_variables_freebsd }}{% elif ansible_os_family == 'OpenBSD' %}{{ extra_variables_openbsd }}{% endif %}"
Licencja
Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>
Zezwolenie na użycie, kopiowanie, modyfikację i dystrybucję tego oprogramowania w jakimkolwiek
celu, z lub bez opłat, jest niniejszym udzielone, pod warunkiem, że powyższe
powiadomienie o prawach autorskich i to powiadomienie o zezwoleniu pojawią się we wszystkich kopiach.
OPROGRAMOWANIE JEST DOSTARCZANE "TAK JAK JEST", A AUTOR ZRZEKA SIĘ WSZYSTKICH GWARANCJI
W ZWIĄZKU Z TYM OPROGRAMOWANIEM, W TYM WSZYSTKICH IMPLICITNYCH GWARANCJI
MOŻLIWOŚCI HANDLOWYCH I PRZYDATNOŚCI. W ŻADNYM WYPADKU AUTOR NIE BĘDZIE ODPOWIEDZIALNY ZA ŻADNE SZCZEGÓLNE, BEZPOŚREDNIE, POŚREDNIE CZY TEŻ WTÓRNE SZKODY, ANI ZA ŻADNE SZKODY
JAKIEKOLWIEK WYNIKAJĄCE Z UTRATY UŻYTKOWANIA, DANYCH LUB ZYSKÓW, CZY TO W RAMACH
DZIAŁANIA UMOWNEGO, NIEDBALSTWA CZY INNEGO DZIAŁANIA DELIKATNEGO, WYCHODZĄCEGO Z LUB W ZWIĄZKU Z UŻYTKOWANIEM LUB WYKONANIEM TEGO OPROGRAMOWANIA.
Informacje o autorze
Tomoyuki Sakurai tomoyukis@reallyenglish.com
Ten README został stworzony przez qansible
ansible-galaxy install reallyenglish.cyrus-sasl