reallyenglish.cyrus-sasl
ansible-role-cyrus-sasl
Installe cyrus-sasl
, saslauthd
et configure les utilisateurs dans le fichier de base de données SASL. Ce rôle ne prend en charge que la base de données SASL locale et saslauthd
. Si vous souhaitez d'autres systèmes, ce rôle n'est pas pour vous.
sasl_check_pw
Ce rôle installe un script python pour vérifier le mot de passe d'un utilisateur sous /usr/local/bin
sur toutes les plateformes. Comme il n'y a aucun moyen de voir si le mot de passe défini dans une variable de rôle et celui dans la base de données sont les mêmes, le script lit cyrus_sasl_sasldb_file
et recherche l'utilisateur et son mot de passe. Le script suppose que cyrus_sasl_sasldb_file
est au format dbm
.
sasl_check_pw path user domain
path
est le chemin vers cyrus_sasl_sasldb_file
. user
est le nom d'utilisateur dans cyrus_sasl_sasldb_file
, et domain
est le nom de domaine auquel l'utilisateur appartient. Définissez le mot de passe à vérifier dans une variable d'environnement, userPassword
. Lorsque le mot de passe correspond à celui dans cyrus_sasl_sasldb_file
, il imprime matched
sur stdout
. Sinon, il imprime does not match
sur stdout
. Il doit être exécuté par un utilisateur ayant les permissions de lecture sur cyrus_sasl_sasldb_file
.
Exigences
Aucune
Variables du Rôle
Variable | Description | Par défaut |
---|---|---|
cyrus_sasl_package |
le nom du paquet de cyrus-sasl |
{{ __cyrus_sasl_package }} |
cyrus_sasl_saslauthd_service |
le nom du service de saslauthd |
{{ __cyrus_sasl_saslauthd_service }} |
cyrus_sasl_saslauthd_enable |
activer saslauthd si oui |
oui |
cyrus_sasl_saslauthd_flags |
dictionnaire de variables de service et leurs valeurs (voir ci-dessous) | {} |
cyrus_sasl_saslauthd_flags_default |
valeur par défaut des variables de service et leurs valeurs | {{ __cyrus_sasl_saslauthd_flags_default }} |
cyrus_sasl_plugin_dir |
le répertoire des plugins où se trouve la configuration de l'application | {{ __cyrus_sasl_plugin_dir }} |
cyrus_sasl_saslpassword_command |
la commande pour gérer le mot de passe des utilisateurs | {{ __cyrus_sasl_saslpassword_command }} |
cyrus_sasl_sasldblistusers_command |
la commande pour lister les utilisateurs dans la base de données | {{ __cyrus_sasl_sasldblistusers_command }} |
cyrus_sasl_sasldb_file |
chemin vers le fichier de base de données SASL | {{ __cyrus_sasl_sasldb_file }} |
cyrus_sasl_sasldb_owner |
propriétaire du fichier de base de données SASL | root |
cyrus_sasl_sasldb_group |
groupe du fichier de base de données SASL | {{ __cyrus_sasl_sasldb_group }} |
cyrus_sasl_sasldb_file_permission |
permissions du fichier de base de données SASL | {{ __cyrus_sasl_sasldb_file_permission }} |
cyrus_sasl_config |
dictionnaire de la configuration de l'application (voir ci-dessous) | {} |
cyrus_sasl_user |
dictionnaire des utilisateurs dans le fichier de base de données SASL (voir ci-dessous) | {} |
cyrus_sasl_saslauthd_flags
Cette variable est un dictionnaire des variables des fichiers de configuration de démarrage, tels que les fichiers sous /etc/default
, /etc/sysconfig
, et /etc/rc.conf.d
. On suppose que les fichiers sont sourcés
par le mécanisme de démarrage avec sh(1)
. Une clé dans le dictionnaire est le nom de la variable dans le fichier, et la valeur de la clé est la valeur de la variable. La variable est combinée avec une variable dont le nom est identique mais terminaison _default
(expliqué ci-dessous), et le résultat crée le fichier de configuration de démarrage, généralement un fichier composé de lignes key="value"
dans le répertoire approprié pour la plateforme.
Lorsque la plateforme est OpenBSD, l'explication ci-dessus ne s'applique pas. Dans ce cas, la seule clé valide est flags
et sa valeur est passée à daemon_flags
, comme décrit dans rc.conf(5)
, où daemon
est le nom de l'un des scripts de contrôle des daemons rc.d(8)
.
cyrus_sasl_saslauthd_flags_default
Cette variable est un dictionnaire de clés et valeurs dérivées de la configuration par défaut de l'amont et doit être constante à moins que cela ne soit absolument nécessaire. Par défaut, le rôle crée un fichier de configuration de démarrage pour chaque plateforme avec cette variable, identique à celle par défaut.
Lorsque la plateforme est OpenBSD, la variable a une seule clé, flags
et sa valeur est une chaîne vide.
cyrus_sasl_config
La clé est le nom de l'application. La valeur est un dictionnaire dans lequel la clé est un nom de variable et la valeur est sa valeur. Exemple :
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
cyrus_sasl_user
La clé est le nom d'utilisateur et ses valeurs sont un dictionnaire.
Clé | Valeur |
---|---|
domain |
le domaine de l'utilisateur |
password |
le mot de passe de l'utilisateur |
appname |
le appname de l'utilisateur |
state |
soit present soit absent . Le rôle crée l'utilisateur si present , ou le supprime s'il est absent |
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
Debian
Variable | Par défaut |
---|---|
__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
Variable | Par défaut |
---|---|
__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
Variable | Par défaut |
---|---|
__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
Variable | Par défaut |
---|---|
__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 |
Dépendances
Aucune
Exemple de 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 %}"
Licence
Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>
Autorisation d'utiliser, de copier, de modifier et de distribuer ce logiciel pour toute
finalité, avec ou sans frais, est accordée, à condition que le texte de copyright ci-dessus
et cette permission apparaissent dans toutes les copies.
LE LOGICIEL EST FOURNI "EN L'ÉTAT" ET L'AUTEUR DÉCLINE TOUTE GARANTIE
EN CE QUI CONCERNE CE LOGICIEL, Y COMPRIS TOUTE GARANTIE IMPLICITE DE
COMMERCIALITÉ ET D'APTITUDE À UN USAGE PARTICULIER. EN AUCUN CAS L'AUTEUR NE POURRA ÊTRE TENU RESPONSABLE
DE QUELQUES DOMMAGES SPÉCIAUX, DIRECTS, INDIRECTS, OU CONSÉCUTIFS, OU DE QUELS QUE SOIENT
DOMMAGES DÉCOULANT D'UNE PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS, QUE CE SOIT
DANS LE CADRE D'UN CONTRAT, D'UNE NÉGLIGENCE OU D'AUTRE ACTION EN RESPONSABILITÉ, DÉCOULANT DE OU EN LIEN
AVEC L'UTILISATION OU LA PERFORMANCE DE CE LOGICIEL.
Informations sur l'auteur
Tomoyuki Sakurai tomoyukis@reallyenglish.com
Ce README a été créé par qansible