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
This commit is contained in:
13
Makefile
13
Makefile
@@ -47,7 +47,7 @@ DOCKER_RUN := docker run --rm -it \
|
||||
$(IMAGE_NAME)
|
||||
|
||||
.PHONY: help setup build rebuild \
|
||||
bootstrap \
|
||||
bootstrap k8s-user mdadm \
|
||||
install install-k3s install-cni install-kubevip install-nfs install-ingress \
|
||||
install-cert-manager install-istio install-monitoring \
|
||||
add-node remove-node \
|
||||
@@ -194,6 +194,17 @@ vault-bootstrap-edit: _check_image ## Редактировать bootstrap vault
|
||||
$(IMAGE_NAME) \
|
||||
ansible vault edit host_vars/$(NODE)/vault.yml
|
||||
|
||||
k8s-user: _check_env _check_image ## Создать k8s пользователя + разложить SSH ключи на все ноды (cluster + lab_hosts)
|
||||
@printf "$(CYAN)$(BOLD)Настройка k8s пользователя и SSH ключей...$(NC)\n"
|
||||
@printf "$(YELLOW)Нужны: host_vars/<node>/vault.yml с bootstrap_user и bootstrap_password для lab_hosts$(NC)\n"
|
||||
$(DOCKER_RUN) ansible-playbook k8s-user.yml \
|
||||
$(if $(NODE),-e "node_to_limit=$(NODE)" --limit $(NODE),)
|
||||
|
||||
mdadm: _check_env _check_image ## Найти RAID массив и смонтировать в /storage (mdadm_enabled: true)
|
||||
@printf "$(CYAN)Настройка mdadm RAID...$(NC)\n"
|
||||
$(DOCKER_RUN) ansible-playbook mdadm.yml \
|
||||
$(if $(NODE),--limit $(NODE),)
|
||||
|
||||
install: _check_env _check_image ## Развернуть полный стек (K3S + kube-vip + NFS + ingress)
|
||||
@printf "$(CYAN)$(BOLD)Разворачиваю полный K3S стек...$(NC)\n"
|
||||
$(DOCKER_RUN) install
|
||||
|
||||
Reference in New Issue
Block a user