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-toolspipenvと互換性がないようです。これが正しく動作するためには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

プロジェクトについて

The ZNC IRC bouncer

インストール
ansible-galaxy install triplepoint.znc
ライセンス
mit
ダウンロード
100
所有者