syncthing
ansible-role-syncthing
Установить Syncthing.
Требования
Дистрибутив на базе Debian, права root или become на удаленном хосте.
Посмотрите документацию Syncthing,
чтобы узнать, какие порты нужно открыть. Конфигурация брандмауэра не обрабатывается в этой роли.
Переменные роли
Все переменные являются необязательными.
Единственный способ установить параметры Syncthing — редактировать файл config.xml
,
подробности смотрите в разделе Пример плейбука.
# Если репозиторий/ключ меняется или вы хотите разместить свой, измените это:
syncthing_apt_key_id:
syncthing_apt_key_url:
syncthing_apt_repository:
# Если вы хотите изменить имя пользователя или домашнюю папку syncthing:
syncthing_user:
syncthing_user_home:
# Установите это значение в false, если не хотите, чтобы роль создавала и управляла пользователем.
# Вам нужно будет вручную создать пользователя, указанный в syncthing_user,
# _перед_ использованием роли.
syncthing_manage_user:
# Установите это значение в true, чтобы получить конфигурацию Syncthing с удаленного хоста,
# смотрите раздел Пример плейбука.
syncthing_fetch_config:
# Куда будут записаны извлеченные файлы.
syncthing_fetch_dir:
# Содержимое файлов конфигурации
syncthing_config_cert:
syncthing_config_key:
syncthing_config_https_cert:
syncthing_config_https_key:
syncthing_config_config:
Зависимости
Нет.
Пример плейбука
# Установка Syncthing
- hosts: servers
roles:
- { role: l-p.syncthing }
Конфигурация Syncthing динамическая и редактируется во время работы с помощью GUI.
Вам нужно будет получить конфигурацию с хоста и записать её в переменныеsyncthing_config_*
, если вы хотите сохранить её и убедиться, что это конфигурация,
которая действительно есть на сервере, в следующий раз, когда вы запустите роль.
Если вы не получите конфигурацию перед повторным запуском роли,
все новые устройства/папки/конфигурация будут удалены с удаленного хоста.
Если вы не установите переменные syncthing_config_*
, ничего не будет перезаписано,
но вы потеряете вашу конфигурацию, если сервер выйдет из строя.
# Получить сгенерированную конфигурацию
- hosts: servers
roles:
- { role: l-p.syncthing, syncthing_fetch_config: true }
Вы можете использовать lookup
, чтобы прочитать файлы и установить переменные:
syncthing_config_cert: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/cert.pem')}}"
syncthing_config_key: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/key.pem')}}"
syncthing_config_https_cert: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/https-cert.pem')}}"
syncthing_config_https_key: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/https-key.pem')}}"
syncthing_config_config: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/config.xml')}}"
Я советую использовать ansible-vault
для шифрования ключей, lookup
расшифрует их
в процессе работы.
Лицензия
MIT
ansible-galaxy install L-P/ansible-role-syncthing