reallyenglish.cyrus-sasl
ansible-role-cyrus-sasl
cyrus-sasl
と saslauthd
をインストールし、SASL DBファイル内のユーザーを設定します。このロールは、ローカルSASLデータベースと saslauthd
のみをサポートしています。他のバックエンドが必要な場合は、このロールは適していません。
sasl_check_pw
このロールは、すべてのプラットフォームの /usr/local/bin
にユーザーのパスワードを確認するためのPythonスクリプトをインストールします。ロール変数に定義されたパスワードとデータベース内のパスワードが同じかどうかを確認する方法がないため、スクリプトは cyrus_sasl_sasldb_file
を読み込み、ユーザーとそのパスワードを探します。スクリプトは cyrus_sasl_sasldb_file
が dbm
形式であることを前提としています。
sasl_check_pw path user domain
path
は cyrus_sasl_sasldb_file
のパスです。user
は cyrus_sasl_sasldb_file
内のユーザー名で、domain
はそのユーザーが属するドメイン名です。確認するパスワードは、環境変数 userPassword
に設定します。パスワードが cyrus_sasl_sasldb_file
内のものと一致した場合、matched
と stdout
に出力します。一致しない場合は、does not match
と stdout
に出力されます。このコマンドは、cyrus_sasl_sasldb_file
に対する読み取り権限を持つユーザーによって実行する必要があります。
要件
なし
ロール変数
変数 | 説明 | デフォルト |
---|---|---|
cyrus_sasl_package |
cyrus-sasl のパッケージ名 |
{{ __cyrus_sasl_package }} |
cyrus_sasl_saslauthd_service |
saslauthd のサービス名 |
{{ __cyrus_sasl_saslauthd_service }} |
cyrus_sasl_saslauthd_enable |
saslauthd を有効にするかどうか |
yes |
cyrus_sasl_saslauthd_flags |
サービス変数とその値の辞書(下記参照) | {} |
cyrus_sasl_saslauthd_flags_default |
サービス変数とその値のデフォルト値 | {{ __cyrus_sasl_saslauthd_flags_default }} |
cyrus_sasl_plugin_dir |
アプリケーション設定が置かれるプラグインディレクトリ | {{ __cyrus_sasl_plugin_dir }} |
cyrus_sasl_saslpassword_command |
ユーザーのパスワードを管理するコマンド | {{ __cyrus_sasl_saslpassword_command }} |
cyrus_sasl_sasldblistusers_command |
データベース内のユーザーを一覧表示するコマンド | {{ __cyrus_sasl_sasldblistusers_command }} |
cyrus_sasl_sasldb_file |
SASL DBファイルへのパス | {{ __cyrus_sasl_sasldb_file }} |
cyrus_sasl_sasldb_owner |
SASL DBファイルの所有者 | root |
cyrus_sasl_sasldb_group |
SASL DBファイルのグループ | {{ __cyrus_sasl_sasldb_group }} |
cyrus_sasl_sasldb_file_permission |
SASL DBファイルのファイル権限 | {{ __cyrus_sasl_sasldb_file_permission }} |
cyrus_sasl_config |
アプリケーション設定の辞書(下記参照) | {} |
cyrus_sasl_user |
SASL DBファイル内のユーザーの辞書(下記参照) | {} |
cyrus_sasl_saslauthd_flags
この変数は、/etc/default
、/etc/sysconfig
、および /etc/rc.conf.d
下のファイルなど、起動設定ファイルの変数の辞書です。これらのファイルは、sh(1)
で起動メカニズムによってsource
されると仮定されています。辞書のキーはファイル内の変数名であり、キーの値がその変数の値です。この変数は、同じ名前の変数と組み合わされ、_default
で後ろに付けられた変数と結合され、結果として起動設定ファイル、通常はプラットフォームに適したディレクトリにある key="value"
の行からなるファイルが生成されます。
プラットフォームがOpenBSDの場合、上記の説明は適用されません。この場合、有効なキーは flags
のみで、その値は rc.conf(5)
で説明されている daemon_flags
に渡されます。
cyrus_sasl_saslauthd_flags_default
この変数は、上流のデフォルト設定から導出されたキーと値の辞書であり、絶対に必要でない限り定数であると考えられています。デフォルトでは、このロールはこれらの変数を使って各プラットフォームの起動設定ファイルを作成します。
プラットフォームがOpenBSDの場合、この変数には単一のキー flags
があり、その値は空の文字列です。
cyrus_sasl_config
キーはアプリケーション名です。値は辞書で、キーが変数名、値がその値です。例:
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
cyrus_sasl_user
キーはユーザー名で、その値は辞書です。
キー | 値 |
---|---|
domain |
ユーザーのドメイン |
password |
ユーザーのパスワード |
appname |
ユーザーの appname |
state |
present または absent 。 present の場合はユーザーを作成し、absent の場合は削除します。 |
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
Debian
変数 | デフォルト |
---|---|
__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
変数 | デフォルト |
---|---|
__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
変数 | デフォルト |
---|---|
__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
変数 | デフォルト |
---|---|
__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 |
依存関係
なし
サンプルプレイブック
- 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 %}"
ライセンス
Copyright (c) 2017 Tomoyuki Sakurai <tomoyukis@reallyenglish.com>
このソフトウェアを使用、コピー、修正、配布する権利が無償で与えられます。ただし、上記の著作権表示とこの許可表示は、すべてのコピーに含まれるものとします。
このソフトウェアは「現状のまま」提供されており、著作者はこのソフトウェアに関連するすべての保証を否認します。特に、商品性や適合性に対する暗黙の保証はありません。著作者は、契約、過失、その他の不法行為のいかなる結果としても、損害が発生した場合に責任を負いません。
著者情報
Tomoyuki Sakurai tomoyukis@reallyenglish.com
このREADMEは qansible によって作成されました。