--- # ============================================================================ # roles/lxc_docker_host — подготовка непривилегированного LXC под Docker. # Все переменные документированы; значения по умолчанию соответствуют тому, # что фактически делают playbooks/pve-*.yml. # ============================================================================ # --- Пакеты ---------------------------------------------------------------- # Базовый набор, общий для всех Docker-хостов HomeLab. lxc_docker_host_packages: - ca-certificates - curl - docker.io - fuse-overlayfs # Дополнительные пакеты конкретного сервиса. # Примеры из существующих плейбуков: # gitea: [sqlite3, rsync] # adguard: [dnsutils] # mihomo: [git] # grimmory: [mariadb-client, openssl] lxc_docker_host_extra_packages: [] # Ставить пакет docker-compose (в pve-grimmory.yml и pve-hermes-ai.yml он есть). # Юниты используют плагин `docker compose` из docker.io, поэтому по умолчанию # отдельный пакет не нужен. lxc_docker_host_install_compose_package: false # Ставить prometheus-node-exporter локально (так делает pve-grimmory.yml). # Обычно экспортёром управляет роль monitoring_exporter. lxc_docker_host_install_node_exporter: false # Обновлять кеш apt перед установкой. lxc_docker_host_update_cache: true # --- FUSE ------------------------------------------------------------------ # Проверять наличие символьного устройства /dev/fuse и падать, если его нет. # Без него fuse-overlayfs не заработает, а Docker молча деградирует. lxc_docker_host_require_fuse: true lxc_docker_host_fuse_device: /dev/fuse # --- Docker daemon --------------------------------------------------------- lxc_docker_host_storage_driver: fuse-overlayfs # Итоговое содержимое /etc/docker/daemon.json. Расширяемо: можно передать # дополнительные ключи, storage-driver подставляется отсюда. lxc_docker_host_daemon_config: storage-driver: "{{ lxc_docker_host_storage_driver }}" lxc_docker_host_daemon_config_path: /etc/docker/daemon.json # Проверить `docker info --format {{.Driver}}` в конце и упасть при расхождении. lxc_docker_host_verify_storage_driver: true # --- UFW ------------------------------------------------------------------- # Управлять ли фаерволом вообще. false — роль не трогает ufw. lxc_docker_host_manage_ufw: true # Ставить пакет ufw, если управление включено. lxc_docker_host_install_ufw: true # Источники, которым разрешён SSH. lxc_docker_host_ssh_port: 22 lxc_docker_host_ssh_sources: - "{{ homelab_lan_cidr }}" - "{{ openvpn_network_cidr }}" # Node exporter: скрейп разрешён только с хоста мониторинга. lxc_docker_host_allow_node_exporter: true lxc_docker_host_node_exporter_port: 9100 lxc_docker_host_monitoring_host: "{{ homelab_monitoring_host_ip | default('192.168.1.30') }}" # Дополнительные порты сервиса. Формат: # - port: "6060" # proto: tcp # необязательно, по умолчанию tcp # comment: "Grimmory" # необязательно # sources: # - "{{ homelab_lan_cidr }}" # - "{{ openvpn_network_cidr }}" lxc_docker_host_ufw_service_rules: [] # Включить ufw с политикой deny incoming. Правила выше применяются ДО включения, # чтобы не потерять SSH. lxc_docker_host_ufw_enable: true lxc_docker_host_ufw_policy: deny