triplepoint.znc

Ansible ZNC 构建状态

安装并配置 ZNC IRC 中继。

包括 ClientBuffer 模块,以支持每个账户多个独立的客户端缓冲区。

由于此角色依赖于 Docker 容器,因此调用 znc 二进制文件的方式不那么直接,比如 --makepass。 作为参考,以下是在配置了 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: Admin ZNC User
    admin: true                           # 至少应该有一个管理员用户,但典型用户可能不应该是管理员。
    allow: "*"                            # 可选
    altnick: adminuser_                   # 可选
    autoclearchanbuffer: true             # 可选,如果使用 clientbuffer 应该为 false
    autoclearquerybuffer: true            # 可选,如果使用 clientbuffer 应该为 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 测试,使用 pipenv 管理依赖和 Python 测试环境。

设置执行环境

pip install pipenv

请注意,pip-tools 似乎与 pipenv 不兼容。为确保正常工作,请勿安装 pip-tools

安装 pipenv 后,可以使用以下命令构建执行虚拟环境:

pipenv install --ignore-pipfile

这将创建一个拥有所有 Python 依赖包的虚拟环境。

运行测试

配置好环境后,可以执行 molecule

pipenv run molecule test

重新生成锁定文件

您不必经常这样做,但如果您通过 pipenv install {some_package} 命令或直接编辑 Pipfile 更改了 Python 包需求,或者发现构建依赖已过期,您可能需要重新生成 Pipfile.lock

pipenv lock

完成此过程后,请确保将重新生成的 Pipfile.lock 提交到版本控制中。

许可证

MIT

关于项目

The ZNC IRC bouncer

安装
ansible-galaxy install triplepoint.znc
许可证
mit
下载
100
拥有者