triplepoint.znc
Ansible ZNC
ZNC IRCバウンサーをインストールして設定します。
アカウントごとに複数のクライアントバッファをサポートするために、ClientBufferモジュールが含まれています。
この役割はDockerコンテナに依存しているため、--makepass
などのユーティリティ関数のためにznc
バイナリをどのように呼び出すかは単純ではありません。参考までに、Dockerが設定されたマシンからパスワードコマンドを実行する方法は以下の通りです:
docker run -it --rm triplepoint/docker-znc:latest znc --makepass
必要条件
特に依存する役割はありませんが、ホストにDocker環境が動作している必要があります。この役割を展開するためには、geerlingguy.docker
役割がこの要件を満たします。
役割変数
ZNCの設定に関する詳細は、ZNC設定ドキュメントを参照してください。
ZNCのグローバル、ユーザー、ネットワークモジュールに関する詳細は、ZNCモジュールドキュメントを参照してください。
ZNCインストール
znc_exec_user: znc-admin # ZNCが実行されるユーザーを作成する
znc_exec_user_and_group_id: 1066 # 実行ユーザーのUIDとGID
znc_docker_image_version: 0.1.6 # `triplepoint/docker-znc` Dockerイメージのタグ付けされたバージョン
znc_install_version: 1.6.5 # DockerイメージでインストールされるZNCのバージョン。同期を保つ必要があります。
znc_config_root: /etc/znc # ZNCの設定ファイル構造のルートロケーション
ZNCグローバル設定
znc_max_buffer_size: 100000 # いかなるユーザーのバッファの最大サイズ。この値がユーザー特有の値で指定されていない場合のデフォルトで使用されます。
znc_port: 6666 # ZNCはどのポートでリッスンしますか?
znc_ipv4: true # ZNCはIPv4接続をリッスンするべきですか?
znc_ipv6: false # IPv6はどうですか?
znc_ssl: true # ZNCはSSL接続を期待するべきですか?
znc_ssl_certfile: "{{ znc_config_root }}/znc.pem" # SSLが有効の場合、PEMファイルはどこにありますか?これはAnsibleビルドで生成されます。
znc_global_modules: # すべてのユーザーとネットワークで使用するために、どのグローバルモジュールをインストールするべきですか?これらは下に定義されたユーザーやネットワークモジュールとは別です。
- webadmin
ZNCユーザー定義設定
znc_users: # ZNCサーバーを直接管理するために、ネットワークのない別の管理者ユーザーを作成することをお勧めします。ここでは、簡潔にするために一つのユーザーのみです。
- name: admin
password: # これらは`znc --makepass`で生成できます。これはパスワード「admin」のものです。
method: "sha256"
hash: "481fe84cc70161b20eb0c487d212e8b94cabb45cb9f08b6c51cc2c0131c1b42e"
salt: "J*;s-Z!gjJ:oJ.kThRZv"
nick: adminuser
realname: 管理者ZNCユーザー
admin: true # 少なくとも一人の管理者ユーザーが必要ですが、通常のユーザーは管理者であるべきではありません。
allow: "*" # オプション
altnick: adminuser_ # オプション
autoclearchanbuffer: true # オプション、クライアントバッファが使用されている場合はfalseである必要があります
autoclearquerybuffer: true # オプション、クライアントバッファが使用されている場合はfalseである必要があります
buffer: 100000 # オプション
chanmodes: "+stn" # オプション
ident: adminuser_ # オプション
multiclients: false # オプション
networks: # オプションですが、ネットワークがないとユーザーは外部IRCサーバーに接続しません。
freenode:
server: chat.freenode.net
port: 6697
ssl: true
password: "" # オプション、リモートチャットサーバーにログインするためのパスワードです。
channels: # オプションリスト、ユーザーはリモートチャットサーバーのこれらのチャンネルに接続します。
- "#freenode" # チャンネル名にハッシュがある場合、これはYAMLのためにコメントが必要です。
modules: # オプションリスト、これらはネットワーク特有のモジュールです。
- route_replies
- keepnick
- clientbuffer # このユーザーに対してこれが有効になっている場合、`autoclearchanbuffer`および`autoclearquerybuffer`を無効にしてください。
modules: # これらはユーザー特有のモジュールです。
- chansaver
- controlpanel
- webadmin
依存関係
なし。
例プレイブック
- hosts: whatever
roles:
- triplepoint.znc
役割のテスト
この役割はmolecule
でテストされており、依存関係とPythonのテスト環境を管理するためにpipenv
を使用しています。
実行環境の設定
pip install pipenv
注意、pip-tools
はpipenv
と互換性がないようです。これが正しく動作するためにはpip-tools
をインストールしないようにしてください。
pipenv
をインストールしたら、実行用の仮想環境を構築できます:
pipenv install --ignore-pipfile
これにより、すべてのPython依存パッケージがインストールされた仮想環境が作成されます。
テストの実行
環境が設定されたら、次のコマンドでmolecule
を実行できます:
pipenv run molecule test
ロックファイルの再生成
これを頻繁に行う必要はありませんが、pipenv install {some_package}
コマンドを使用してPythonパッケージの要件を変更したり、Pipfile
を直接編集した場合、またはビルド依存関係が古くなった場合は、Pipfile.lock
を再生成する必要があります。
pipenv lock
このプロセスが完了したら、再生成したPipfile.lock
をチェックインすることを忘れないでください。
ライセンス
MIT