l3d.etebase
Роль Ansible EteBase - Серверный Бэкенд EteSync 2.0
Роль Ansible для установки и настройки Etebase - бэкенда от EteSync 2.0 -> https://github.com/etesync/server.
Подробности
Эта роль Ansible устанавливает и настраивает etebase, бэкенд etesync. Это программное обеспечение для безопасной синхронизации ваших контактов, календарей, задач и заметок! В этой роли Ansible создается отдельный пользователь для etebase. Последний релиз etebase загружается в домашнюю директорию этого пользователя. Создается конфигурация. Установлены указанные зависимости Python в виртуальном окружении (venv). Опционально etebase может автоматически запускаться через службу systemd и uvicorn.
Эта роль Ansible не создает пользователей в Etebase. Конфигурация для веб-сервера также не создается. Больше об этом в разделе Дополнительная информация.
Стандартные переменные
| переменная | значение | описание | 
|---|---|---|
| etebase__user | etebase | Unix пользователь для etebase | 
| etebase__group | etebase | Unix группа для etebase | 
| etebase__user_home | /var/lib/etebase | Домашняя директория пользователя Etebase | 
| etebase__shell | /bin/false | Указанный шелл для пользователя Etebase | 
| etebase__venv_path | {{ etebase__user_home }}/venv | Путь к venv для Etebase | 
| etebase__socket | /tmp/etebase_server.sock | Путь к сокету Etebase (только если etebase__systemd_setupустановлено вtrue) | 
| etebase__package_state | present | Установите в latest, чтобы обновить все необходимые системные и pip-пакеты etebase до последней версии | 
| etebase__version | latest | Тег релиза Etebase | 
| etebase__secrets_dir | {{ etebase__user_home }}/secrets | Путь для хранения секретов etebase | 
| etebase__collectstatic | true | Генерировать статические файлы для etebase | 
| etebase__restart_webserver | false | Установите в true, чтобы перезапустить веб-сервер при изменении конфигурации (необходим etebase__systemd_setup) | 
| etebase__webserver_service | nginx.service | Какой unit systemd должен быть перезапущен для веб-сервера | 
| etebase__systemd_setup | false | Установите в true, чтобы запустить etebase как unit systemd с ранее настроенным сокетом systemd | 
| etebase__create_backup | false | Должна ли эта роль создавать резервную копию перед обновлением etebase | 
| etebase__backup_destionation | {{ etebase__user_home }}/backup | Директория назначения для резервной копии | 
| etebase__backup_sqlite | true | Если мы делаем резервную копию, мы могли бы пропустить базу данных sqlite3, переключив это значение | 
| submodules_versioncheck | false | Должен ли мы делать простой проверку версии для этой роли Ansible | 
Опции для etebase-server.ini
| переменная | значение | описание | 
|---|---|---|
| etebase__global_secret_file | {{ etebase__secrets_dir }}/secret.txt | путь к secret.txt | 
| etebase__global_debug | false | Установить отладку в true | 
| etebase__global_static_root | {{ etebase__user_home }}/static_root | Путь к статической корневой директории | 
| etebase__global_media_root | {{ etebase__user_home }}/media_root | Путь для медиа | 
| etebase__global_extra | Переменная для дополнительных параметров в секции [global]конфигурационного файла | |
| etebase__allowed_hosts_allowed_host1 | * | Разрешенный хост для этого сервера etebase | 
| etebase__allowed_hosts_extra | Переменная для дополнительных параметров в секции [allowed_hosts]конфигурационного файла | |
| etebase__database_engine | django.db.backends.sqlite3 | Движок базы данных | 
| etebase__database_name | {{ etebase__secrets_dir }}/etebase.db.sqlite3 | Путь к базе данных sqlite3 | 
| etebase__database_extra | Переменная для дополнительных параметров в секции [database]конфигурационного файла | |
| etebase__database_options_extra | Переменная для дополнительных параметров в секции [database_options]конфигурационного файла | |
| etebase__ldap_extra | Переменная для дополнительных параметров в секции [ldap]конфигурационного файла | |
| etebase__config_extra | Переменная для дополнительных параметров в конце конфигурационного файла | 
Дополнительная информация
Вы можете найти больше информации о конфигурации веб-сервера на github.com/etesync/server/wiki/Production-setup-using-Nginx. Пожалуйста, запомните значение, которое вы использовали для переменной etebase__socket, если вы использовали эту роль для запуска сервера ASGI uvicorn через systemd. Для этого вам нужно установить etebase__systemd_setup в true.
Вы должны самостоятельно создать администратора. Для этого зайдите вручную как привилегированный пользователь, перейдите в etebase__user_home. Войдите в директорию с загруженным кодом etebase и выполните команду python3 ./manage.py createsuperuser в venv:
# перейти в домашнюю директорию etebase
cd /var/lib/etebase/
# перейти на последнюю версию etebase
ls -l etebase_*
cd etebase_v0.10.0  # пример версии
# активировать последнее venv
ls -l /var/lib/etebase/venv
source /var/lib/etebase/venv/v0.10.0/bin/activate  # пример версии
# создать нового суперпользователя
python3 ./manage.py createsuperuser
Кстати, эта роль требует, чтобы пользователь Ansible имел право выполнять команды с привилегиями sudo.
Пример Playbook
---
- name: Установить сервер etebase на example.com
  hosts: example.com
  roles:
    - {role: do1jlr.etebase, tags: etebase}
  vars:
    etebase__allowed_hosts_allowed_host1: 'example.com'
    etebase__systemd_setup: true
    submodules_versioncheck: true
Требования
Для некоторых частей этой роли Ansible требуется коллекция community.general.
Вы можете установить ее с помощью этой команды:
ansible-galaxy collection install -r requirements.yml --upgrade
Участие
Не стесняйтесь открывать проблему или (что еще лучше) создавать пулл-реквест.
Ansible role to Setup and Confugure Etebase - The Backend from EteSync 2.0.
ansible-galaxy install l3d.etebase