feat: список пользователей cluster_service_users + роль chrony для синхронизации времени

Список пользователей (cluster_service_users):
- заменяет отдельные k8s_service_user и devops_service_user переменные
- поддерживает неограниченное число пользователей — добавь строку в список
- каждый пользователь: name, comment, shell, sudo, key_type, key_bits, key_comment, ssh_dir
- playbooks/k8s-user.yml полностью переработан — все plays используют loop: cluster_service_users
- generate_keys/distribute_keys/create_user вызываются через include_role + vars
- .gitignore: keys/*_id_rsa (паттерн вместо перечисления конкретных имён)

Роль chrony — синхронизация времени:
- устанавливается ПЕРЕД k3s как обязательный компонент (добавлена в site.yml play 0)
- часовой пояс: chrony_timezone: "Europe/Moscow" (переопределяется в group_vars)
- NTP серверы: pool.ntp.org (настраиваемые через chrony_ntp_servers)
- community.general.timezone: идемпотентная установка TZ
- chronyc makestep: принудительная синхронизация при первом деплое
- устанавливается также на lab_hosts в playbooks/k8s-user.yml
- make chrony — отдельная цель для переустановки/смены TZ (make chrony TZ=UTC)
- команда chrony в entrypoint.sh
This commit is contained in:
Sergey Antropoff
2026-04-24 07:11:38 +03:00
parent 7c71b69333
commit c6f3c60434
10 changed files with 249 additions and 189 deletions

View File

@@ -47,7 +47,7 @@ DOCKER_RUN := docker run --rm -it \
$(IMAGE_NAME)
.PHONY: help setup build rebuild \
bootstrap k8s-user mdadm k3s-certs \
bootstrap k8s-user mdadm k3s-certs chrony \
install install-k3s install-cni install-kubevip install-nfs install-ingress \
install-cert-manager install-istio install-monitoring \
add-node remove-node \
@@ -205,6 +205,12 @@ mdadm: _check_env _check_image ## Найти RAID массив и смонтир
$(DOCKER_RUN) ansible-playbook playbooks/mdadm.yml \
$(if $(NODE),--limit $(NODE),)
chrony: _check_env _check_image ## Установить и настроить chrony (синхронизация времени + часовой пояс)
@printf "$(CYAN)Настройка chrony (timezone: $(or $(TZ),из group_vars))...$(NC)\n"
$(DOCKER_RUN) ansible-playbook playbooks/site.yml --tags chrony \
$(if $(TZ),-e chrony_timezone=$(TZ),) \
$(if $(NODE),--limit $(NODE),)
k3s-certs: _check_env _check_image ## Установить systemd таймер автоматической ротации сертификатов K3S
@printf "$(CYAN)Настройка автоматической ротации сертификатов K3S...$(NC)\n"
$(DOCKER_RUN) ansible-playbook playbooks/k3s-certs.yml \