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ą sourceowane 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

O projekcie

Configures cyrus-sasl and users in SASL DB file

Zainstaluj
ansible-galaxy install reallyenglish.cyrus-sasl
Licencja
isc
Pobrania
17.2k
Właściciel