Files
ermnvldmr.com/services/docs/content/ru/root/reference/configure.md
T

3.8 KiB

title, description, weight
title description weight
Операции настройки (Configure) Подготовка хоста, движок шаблонов и конфигурация на уровне системы. 53

Операции настройки используются для подготовки хоста и обслуживания системных сервисов. Они в значительной степени полагаются на встроенный движок шаблонов для генерации декларативных конфигурационных файлов.

Движок шаблонов

Общие модули используют envsubst (из пакета gettext-base) для рендеринга шаблонов. Это позволяет использовать стандартные переменные окружения Bash непосредственно в ваших конфигурационных файлах.

Соглашения по шаблонам

  • Расширение файлов: Шаблоны обычно используют расширение .template (например, crontab.template).
  • Синтаксис переменных: Используйте ${VARIABLE_NAME} или $VARIABLE_NAME для подстановки значений.
  • Автоматический поиск: Многие действия автоматически ищут шаблоны в определенных директориях внутри репозитория Configs.

Вспомогательные функции рендеринга

Библиотека root_template.sh предоставляет несколько вспомогательных функций:

  • root_template_render <input> <output>: Рендерит один файл.
  • root_template_render_directory <src> <dest>: Рекурсивно рендерит всю структуру директории.
  • root_template_crontab <template>: Рендерит и устанавливает crontab для текущего пользователя.

Основные операции настройки

Операция Описание
configure/base Устанавливает основные пакеты (sudo, ufw, docker) и настраивает базовых системных пользователей.
configure/cron Рендерит и устанавливает специфичные для узла crontab-файлы.
configure/crowdsec Настраивает агента CrowdSec и баунсеры (bouncers).
configure/routing Настраивает маршрутизацию на уровне системы и сети-мосты (bridge networks).
configure/systemd Устанавливает и активирует юниты сервисов systemd.
configure/ufw Рендерит и применяет правила брандмауэра с помощью UFW и ufw-docker.

Пример: Шаблон Nginx

# Этот шаблон использует переменную окружения ROOT_NODE
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    
    # Подставляется из окружения
    server_name ${ROOT_NODE}.example.com;
}

See also: