reallyenglish.cyrus-sasl

ansible-role-cyrus-sasl

cyrus-saslsaslauthd をインストールし、SASL DBファイル内のユーザーを設定します。このロールは、ローカルSASLデータベースと saslauthd のみをサポートしています。他のバックエンドが必要な場合は、このロールは適していません。

sasl_check_pw

このロールは、すべてのプラットフォームの /usr/local/bin にユーザーのパスワードを確認するためのPythonスクリプトをインストールします。ロール変数に定義されたパスワードとデータベース内のパスワードが同じかどうかを確認する方法がないため、スクリプトは cyrus_sasl_sasldb_file を読み込み、ユーザーとそのパスワードを探します。スクリプトは cyrus_sasl_sasldb_filedbm 形式であることを前提としています。

sasl_check_pw path user domain

pathcyrus_sasl_sasldb_file のパスです。usercyrus_sasl_sasldb_file 内のユーザー名で、domain はそのユーザーが属するドメイン名です。確認するパスワードは、環境変数 userPassword に設定します。パスワードが cyrus_sasl_sasldb_file 内のものと一致した場合、matchedstdout に出力します。一致しない場合は、does not matchstdout に出力されます。このコマンドは、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 または absentpresent の場合はユーザーを作成し、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 によって作成されました。

プロジェクトについて

Configures cyrus-sasl and users in SASL DB file

インストール
ansible-galaxy install reallyenglish.cyrus-sasl
ライセンス
isc
ダウンロード
17.2k
所有者