Роль 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
16 lines
922 B
YAML
16 lines
922 B
YAML
---
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
# mdadm: обнаружение RAID массива и монтирование в /storage
|
|
#
|
|
# Запуск: ansible-playbook mdadm.yml --ask-vault-pass
|
|
# Только одна нода: ansible-playbook mdadm.yml --limit master01
|
|
# Отключить: задай mdadm_enabled: false в host_vars или group_vars
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
|
|
- name: Configure mdadm RAID and mount /storage
|
|
hosts: k3s_cluster
|
|
gather_facts: true
|
|
become: true
|
|
roles:
|
|
- role: mdadm
|