Files
K3S/inventory/hosts.ini
Sergey Antropoff 408779a379 feat: добавлены роли mdadm и k8s-user с полной оркестрацией SSH ключей
Роль mdadm:
- автоопределение RAID массива через mdadm --detail --scan
- монтирование в /storage через fstab (UUID-based, nofail)
- автоопределение fstype через blkid
- обновление mdadm.conf + initramfs
- флаг mdadm_enabled для отключения на отдельных нодах

Роль k8s-user:
- создание пользователя k8s + группа + sudo без пароля (visudo validation)
- генерация RSA 4096 ключевой пары на первом мастере (идемпотентно, creates:)
- раскладка приватного и публичного ключа на все ноды кластера
- добавление public key в authorized_keys — SSH с любой ноды на любую
- обновление /etc/hosts блоками через blockinfile (k3s_cluster + lab_hosts)
- поддержка lab_hosts: создание пользователя и деплой ключей через пароль из vault

Плейбуки:
- k8s-user.yml — полная оркестрация (5 plays: create → generate → distribute → hosts → lab)
- mdadm.yml — запуск роли mdadm на k3s_cluster

Инфраструктура:
- inventory: добавлена группа [lab_hosts] с примерами
- host_vars/nas01/vault.yml.example — шаблон credentials для лаб-серверов
- group_vars/all/main.yml: переменные mdadm_enabled и k8s_service_user_*
- Makefile: цели k8s-user и mdadm
- docker/entrypoint.sh: команды k8s-user и mdadm
2026-04-24 06:50:22 +03:00

43 lines
2.5 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ─────────────────────────────────────────────────────────────────────────────
# K3S HA кластер — inventory
# Мастера: k3s server с embedded etcd (участвуют в Raft-кворуме)
# Воркеры: k3s agent — только рабочие ноды, без etcd
# ─────────────────────────────────────────────────────────────────────────────
[k3s_master]
master01 ansible_host=192.168.1.10 ansible_user=ubuntu
worker01 ansible_host=192.168.1.11 ansible_user=ubuntu
rpi01 ansible_host=192.168.1.12 ansible_user=pi ansible_python_interpreter=/usr/bin/python3
# Дополнительные мастера — добавляй сюда:
# master04 ansible_host=192.168.1.14 ansible_user=ubuntu
[k3s_workers]
# Чистые воркеры (только k3s agent, без etcd) — добавляй сюда:
# worker04 ansible_host=192.168.1.14 ansible_user=ubuntu
# worker05 ansible_host=192.168.1.15 ansible_user=ubuntu
[k3s_cluster:children]
k3s_master
k3s_workers
[k3s_cluster:vars]
ansible_ssh_private_key_file=~/.ssh/id_rsa
# NFS сервер — по умолчанию master, но можно вынести на отдельную машину
[nfs_server]
master01
# Если NFS на отдельной машине — закомментируй строку выше и раскомментируй:
# nfshost ansible_host=192.168.1.20 ansible_user=ubuntu
# ─────────────────────────────────────────────────────────────────────────────
# Лабораторные серверы (не входят в k3s кластер)
# Используются для: распределения SSH ключей k8s пользователя, /etc/hosts
# Подключение: через bootstrap_user/bootstrap_password из host_vars/<host>/vault.yml
# ─────────────────────────────────────────────────────────────────────────────
[lab_hosts]
# nas01 ansible_host=192.168.1.30
# devbox ansible_host=192.168.1.31
# proxy01 ansible_host=192.168.1.32