reallyenglish.cyrus-sasl
ansible-role-cyrus-sasl
Instala cyrus-sasl
, saslauthd
y configura usuarios en el archivo de la base de datos SASL. Este rol solo es compatible con la base de datos SASL local y saslauthd
. Si deseas otros back-ends, esto no es para ti.
sasl_check_pw
Este rol instala un script de Python para verificar la contraseña de un usuario en
/usr/local/bin
en todas las plataformas. Dado que no hay forma de ver si la contraseña
definida en una variable de rol y la de la base de datos son las mismas, el script
lee cyrus_sasl_sasldb_file
y busca al usuario y su contraseña. El
script asume que cyrus_sasl_sasldb_file
está en formato dbm
.
sasl_check_pw ruta usuario dominio
ruta
es el camino al cyrus_sasl_sasldb_file
. usuario
es el nombre de usuario en
cyrus_sasl_sasldb_file
, y dominio
es el nombre de dominio al que pertenece el usuario.
Configura la contraseña a verificar en una variable de entorno, userPassword
. Cuando
la contraseña coincide con la de cyrus_sasl_sasldb_file
, imprime matched
en stdout
. Cuando no coincide, imprime does not match
en stdout
. Debe
ser ejecutado por un usuario con permiso de lectura sobre cyrus_sasl_sasldb_file
.
Requisitos
Ninguno
Variables del Rol
Variable | Descripción | Por defecto |
---|---|---|
cyrus_sasl_package |
el nombre del paquete de cyrus-sasl |
{{ __cyrus_sasl_package }} |
cyrus_sasl_saslauthd_service |
el nombre del servicio de saslauthd |
{{ __cyrus_sasl_saslauthd_service }} |
cyrus_sasl_saslauthd_enable |
habilitar saslauthd si es sí |
sí |
cyrus_sasl_saslauthd_flags |
diccionario de variables del servicio y sus valores (ver abajo) | {} |
cyrus_sasl_saslauthd_flags_default |
valor por defecto de las variables del servicio y sus valores | {{ __cyrus_sasl_saslauthd_flags_default }} |
cyrus_sasl_plugin_dir |
el directorio de plugins donde reside la configuración de la aplicación | {{ __cyrus_sasl_plugin_dir }} |
cyrus_sasl_saslpassword_command |
el comando para gestionar la contraseña de los usuarios | {{ __cyrus_sasl_saslpassword_command }} |
cyrus_sasl_sasldblistusers_command |
el comando para listar usuarios en la base de datos | {{ __cyrus_sasl_sasldblistusers_command }} |
cyrus_sasl_sasldb_file |
camino al archivo de la base de datos SASL | {{ __cyrus_sasl_sasldb_file }} |
cyrus_sasl_sasldb_owner |
propietario del archivo de la base de datos SASL | root |
cyrus_sasl_sasldb_group |
grupo del archivo de la base de datos SASL | {{ __cyrus_sasl_sasldb_group }} |
cyrus_sasl_sasldb_file_permission |
permiso del archivo de la base de datos SASL | {{ __cyrus_sasl_sasldb_file_permission }} |
cyrus_sasl_config |
un diccionario de configuración de la aplicación (ver abajo) | {} |
cyrus_sasl_user |
un diccionario de usuarios en el archivo de la base de datos SASL (ver abajo) | {} |
cyrus_sasl_saslauthd_flags
Esta variable es un diccionario de variables de archivos de configuración de inicio, como
archivos en /etc/default
, /etc/sysconfig
y /etc/rc.conf.d
. Se asume que los archivos son source
d por el mecanismo de inicio con sh(1)
. Una clave en el diccionario es el nombre de la variable en el archivo, y el valor de la clave es el valor de la variable. La variable se combina con una variable cuyo nombre es el mismo que esta, pero con el sufijo _default
(explicado a continuación) y el resultado crea el archivo de configuración de inicio, normalmente un archivo que consiste en líneas de clave="valor"
en el directorio apropiado para la plataforma.
Cuando la plataforma es OpenBSD, la explicación anterior no se aplica. En este caso, la única clave válida es flags
y su valor se pasa a daemon_flags
descrito en rc.conf(5)
, donde daemon
es el nombre de uno de los scripts de control de demonios rc.d(8)
.
cyrus_sasl_saslauthd_flags_default
Esta variable es un diccionario de claves y valores derivados de la configuración predeterminada del upstream, y se supone que es constante a menos que sea absolutamente necesario. Por defecto, el rol crea un archivo de configuración de inicio para cada plataforma con esta variable, idéntico al predeterminado.
Cuando la plataforma es OpenBSD, la variable tiene una sola clave, flags
y su valor es una cadena vacía.
cyrus_sasl_config
La clave es el nombre de la aplicación. El valor es un diccionario en el que la clave es un nombre de variable y el valor es su valor. Ejemplo:
cyrus_sasl_config:
miaplicacion:
pwcheck_method: saslauthd
cyrus_sasl_user
La clave es el nombre de usuario y sus valores son un diccionario.
Clave | Valor |
---|---|
domain |
el dominio del usuario |
password |
la contraseña del usuario |
appname |
el appname del usuario |
state |
ya sea present o absent . El rol crea el usuario si es present , o lo elimina si es absent |
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
Debian
Variable | Por defecto |
---|---|
__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 | Por defecto |
---|---|
__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 | Por defecto |
---|---|
__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 | Por defecto |
---|---|
__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 |
Dependencias
Ninguna
Ejemplo 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 %}"
Licencia
Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>
Permiso para usar, copiar, modificar y distribuir este software para cualquier
propósito con o sin cargo se concede por la presente, siempre que el aviso de
derechos de autor anterior y este aviso de permiso aparezcan en todas las copias.
EL SOFTWARE SE PROPORCIONA "TAL CUAL" Y EL AUTOR DESCARTA TODAS LAS GARANTÍAS
CON RESPECTO A ESTE SOFTWARE, INCLUYENDO TODAS LAS GARANTÍAS IMPLÍCITAS DE
COMERCIALIZACIÓN Y ADECUACIÓN. EN NINGÚN CASO EL AUTOR SERÁ RESPONSABLE POR
DAÑOS ESPECIALES, DIRECTOS, INDIRECTOS O CONSECUENTES O CUALQUIER DAÑO
QUE SURJA DE LA PÉRDIDA DE USO, DATOS O GANANCIAS, YA SEA EN UNA ACCIÓN POR
CONTRATO, NEGLIGENCIA O CUALQUIER OTRA ACCIÓN, QUE SURJA DE O EN CONEXIÓN
CON EL USO O RENDIMIENTO DE ESTE SOFTWARE.
Información del Autor
Tomoyuki Sakurai tomoyukis@reallyenglish.com
Este README fue creado por qansible
ansible-galaxy install reallyenglish.cyrus-sasl