znc
Ansible ZNC
Установка и настройка ZNC IRC бouncer.
Включает модуль 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 # Тегированная версия docker-образа `triplepoint/docker-znc`
znc_install_version: 1.6.5 # Версия znc, установленная с помощью docker-образа. Должна быть в синхронизации.
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, если используется clientbuffer
autoclearquerybuffer: true # Опционально, должен быть false, если используется clientbuffer
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
Обновление файла блокировки
Вам не нужно часто это делать, но если вы изменили требования к пакетам Python с помощью команд pipenv install {some_package}
или редактируя Pipfile
напрямую, или если вы обнаружили, что зависимости сборки устарели, вам может понадобиться обновить файл Pipfile.lock
.
pipenv lock
Не забудьте закомментировать обновленный Pipfile.lock
, когда процесс завершится.
Лицензия
MIT
ansible-galaxy install triplepoint/ansible-znc