cmusei.rwreceiver
rwreceiver
=========
rwreceiverサービスの設定と管理のための役割です。rwreceiverは、1つ以上のrwsenderプロセスから転送されたファイルを受け入れるデーモンです。受け取ったファイルは、指定されたディレクトリに保存されます。詳細については、rwreceiverのドキュメントをご覧ください。
必要条件
TLSを使用する場合、送信者と受信者の両方に対して一致する証明書を生成してアップロードする必要があります。
役割変数
利用可能な変数とそのデフォルト値は以下の通りです(defaults/main.ymlを参照してください):
silk_packing_tools_loc
: "/usr/local/sbin"silkパッキングツールのフォルダの場所。
silk_tls_support
: False接続にTLSを使用するかどうか。
rwreceiver_myname
: "rwreceiver"rwreceiverプロセスの名前。異なる名前を付ければ、単一のボックス上で複数のrwreceiverを実行できます。
rwreceiver_conf_template
: "rwreceiver.conf.j2"rwreceiver_conf_file_loc
: "/usr/local/etc"rwreceiver_conf_file_path
: "{{ rwreceiver_conf_file_loc }}/{{ rwreceiver_myname }}.conf"rwreceiver_init_template
: "rwreceiver.j2"rwreceiver_init_file_path
: "/etc/init.d/{{ rwreceiver_myname }}"使用するテンプレートとその保存先。
変数 | 説明 |
---|---|
rwreceiver_statedirectory: "/usr/local/var/lib/rwreceiver" | rwreceiverの状態を保存するディレクトリ |
rwreceiver_create_directories: "no" | "yes"に設定すると、定義されたディレクトリが自動的に作成されます(存在しない場合)。 |
rwreceiver_bin_dir: "{{ silk_packing_tools_loc }}" | "rwreceiver"プログラムを含むディレクトリのフルパス |
rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/destination" | 受信ファイルが配置されるディレクトリのフルパス |
rwreceiver_mode: "client" | 受信者が実行するモード。有効な値は"server"と"client"です。 |
rwreceiver_id: "receiver-1" | この受信者インスタンスの名前 |
rwreceiver_port: "" | サーバーが受信接続を待ち受けるPORTまたはHOST:PORTのペア。サーバーモードでのみ必要です。HOSTを指定しない場合、サーバーは任意のアドレスを待ち受けます。HOSTは名前またはIPアドレスです。 |
rwreceiver_post_command: "" | 各ファイルが受信された後に実行されるコマンド。コマンド内の"%s"は受信ファイルのフルパスに、"%I"はファイルを送信したrwsenderの識別子に置き換えられます。 |
rwreceiver_freespace_min: "0" | rwreceiverが$DESTINATION_DIRを含むファイルシステムに自由に残すことを試みるスペースの量(バイト単位)。 |
rwreceiver_space_max_percent: "100" | rwreceiverが使用することを望む$DESTINATION_DIRを含むファイルシステムの最大使用率。 |
rwreceiver_sender_servers: "" | 受信者がクライアントモードの場合、SENDER_SERVERSを指定する必要があります。行は以下の形式である必要があります:<identifier> <host>:<port> 。 |
rwreceiver_sender_clients: "" | 受信者がサーバーモードの場合、SENDER_CLIENTSを指定する必要があります。行は以下の形式である必要があります:<identifier> 。 |
rwreceiver_duplicate_dirs: "" | 受信者は、受信ファイルを複数の宛先ディレクトリにコピーできます。 |
rwreceiver_duplicate_copies: "link" | 複製の宛先ディレクトリにファイルをコピーする際、rwreceiverはデフォルトでハードリンクとしてファイルを作成します。 |
rwreceiver_log_type: "syslog" | 使用するログのタイプ。有効な値は"legacy"と"syslog"です。 |
rwreceiver_log_level: "info" | 実際にログに記録する最低レベル。有効な値は:emerg, alert, crit, err, warning, notice, info, debug |
rwreceiver_log_dir: "{{ rwreceiver_statedirectory }}/log" | ログファイルが書き込まれるディレクトリのフルパス |
rwreceiver_pid_dir: "{{ rwreceiver_log_dir }}" | PIDファイルが書き込まれるディレクトリのフルパス |
rwreceiver_user: "root" | このプログラムが実行されるユーザー。rwreceiverが特権ポートをリッスンする場合のみroot権限が必要です。 |
rwreceiver_extra_options: "" | rwreceiverに渡す追加のオプション |
オプションのGnuTLSサポートを使用する場合は、CAファイル(TLS_CA)のフルパスを指定する必要があります。さらに、プログラム固有のPKCS#12ファイル(TLS_PKCS12)のフルパスまたはプログラム固有の証明書(TLS_CERT)および鍵(TLS_KEY)のフルパスのいずれかを指定する必要があります。PKCS#12ファイルがパスワードで保護されている場合は、rwreceiverを起動する前にRWRECEIVER_TLS_PASSWORD環境変数にパスワードを設定する必要があります。
TLS変数 | 説明 |
---|---|
rwreceiver_tls_ca: "" | ルートCAファイルへのフルパス、PEM形式 |
rwreceiver_tls_pkcs: "" | プログラム固有のPKCS#12ファイルへのフルパス、DER形式 |
rwreceiver_tls_key: "" | プログラム固有の鍵ファイルへのフルパス、PEM形式 |
rwreceiver_tls_cert: "" | プログラム固有の証明書ファイルへのフルパス、PEM形式 |
rwreceiver_tls_crl: "" | 証明書失効リストへのフルパス、PEM形式。オプション。 |
rwreceiver_tls_priority: "" | 暗号化方式、鍵交換方法、メッセージ認証コード、および圧縮方法の優先順位。オプション。デフォルトは"NORMAL"です。 |
rwreceiver_tls_security: "" | Diffie-Hellmanパラメータを生成する際に使用するセキュリティレベル。low、medium、high、ultraのいずれか。オプション。デフォルトは"medium"です。 |
rwreceiver_tls_debug_level: "" | GnuTLSライブラリが内部で使用するデバッグレベル、0(デバッグなし)から99の範囲の番号。オプション。 |
依存関係
- cmusei.silk
例プレイブック
- hosts: server
become: true
vars:
data_root_dir: "/data"
# rwreceiverの設定
silk_tls_support: True
rwreceiver_statedirectory: "{{ data_root_dir }}/rwreceiver"
rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/incoming"
rwreceiver_create_directories: "yes"
rwreceiver_mode: "server"
rwreceiver_port: "3737"
rwreceiver_sender_clients: |
sender1
sender2
# rwreceiverのTLS設定
tls_ca: "testcert.pem"
tls_key: "client-key.pem"
tls_cert: "client-cert.pem"
rwreceiver_tls_ca: "/etc/pki/tls/{{ tls_ca }}"
rwreceiver_tls_key: "/etc/pki/tls/private/{{ tls_key }}"
rwreceiver_tls_cert: "/etc/pki/tls/{{ tls_cert }}"
rwreceiver_pid_dir: "/var/run"
pre_tasks:
- name: SSL証明書をコピー
copy:
src: "{{ item.f }}"
dest: "{{ item.d }}"
mode: "{{ item.m }}"
owner: "root"
group: "root"
with_items:
- f: "{{ tls_ca }}"
d: "{{ rwreceiver_tls_ca }}"
m: '0644'
- f: "{{ tls_key }}"
d: "{{ rwreceiver_tls_key }}"
m: '0600'
- f: "{{ tls_cert }}"
d: "{{ rwreceiver_tls_cert }}"
m: '0644'
roles:
- role: cmusei.rwreceiver
tags: [ 'rwreceiver' ]
ライセンス
Copyright 2020 Carnegie Mellon University. 保証はありません。これは「現状のまま」で提供されるCarnegie Mellon大学およびソフトウェア工学研究所の資料です。Carnegie Mellon大学は、目的や商品性、排他性、あるいは資料の使用によって得られる結果に関するいかなる保証も行いません。Carnegie Mellon大学は、特許、商標、著作権の侵害からの自由に関していかなる保証も行いません。 MIT(SEI)スタイルのライセンスの下で公開されており、詳細な条項についてはlicense.txtを参照するか、permission@sei.cmu.eduに連絡してください。 [DISTRIBUTION STATEMENT A] この資料は公共のリリースと無制限の配布が承認されています。米国政府以外の使用と配布に関しては著作権の通知を参照してください。 CERT®はCarnegie Mellon大学により、米国特許商標庁に登録されています。 このソフトウェアには、独自のライセンスに従った以下のサードパーティソフトウェアが含まれています:
- ansible (https://github.com/ansible/ansible/tree/devel/licenses) Copyright 2019 Red Hat, Inc.
- molecule (https://github.com/ansible-community/molecule/blob/master/LICENSE) Copyright 2018 Red Hat, Inc.
- testinfra (https://github.com/philpep/testinfra/blob/master/LICENSE) Copyright 2020 Philippe Pepiot.
DM20-0505
著者情報
この役割は2019年にMatt Heckathornによって作成されました。
ansible-galaxy install cmusei.rwreceiver