3.8 KiB
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: