infra/config_generator/ — Python-модуль, который генерирует Ansible-конфигурацию из .env.
Назначение
Config Generator убирает ручную правку inventory.ini, group_vars и host_vars и делает конфигурацию нод воспроизводимой.
Генерируются:
- infra/ansible/inventory.ini
- infra/ansible/group_vars/all.yml
- infra/ansible/host_vars/<node>.yml
- infra/ansible/playbooks/wireguard/wireguard.yml
- infra/ansible/playbooks/wireguard/wireguard-test.yml
- infra/ansible/playbooks/wireguard/wireguard-client.yml (если включен client VPN)
Как работает
- Читает переменные
NODE_X_*и общие infra-переменные из.env. - Валидирует WireGuard IP и пересечения.
- Формирует группы нод (
master,worker) и host labels. - Генерирует плейбуки WireGuard из Jinja2-шаблонов.
Ключевые модули
parser.py— парсингNODE_X_*.inventory.py— генерацияinventory.iniи глобальных ansible vars.groupvars.py— генерацияgroup_vars/all.yml.hostvars.py— генерация labels вhost_vars.wireguard.py— логика WireGuard playbooks.main.py/__main__.py— точка входа.
Запуск
Обычно вызывается автоматически из entrypoint при командах make в infra/.
Ручной запуск:
1 2 | |
Когда обновлять
- Добавили/удалили ноду.
- Изменили WireGuard адресацию.
- Изменили Kubernetes/Containerd параметры в
.env. - Изменили шаблоны WireGuard в
ansible/playbooks/wireguard/*.j2.