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:
@@ -195,32 +195,43 @@ etcd_backup_local_dir: "./etcd-backups"
|
||||
# Отключить на конкретной ноде: задай mdadm_enabled: false в host_vars/<node>/main.yml
|
||||
mdadm_enabled: false
|
||||
|
||||
# ─── k8s-user ─────────────────────────────────────────────────────────────────
|
||||
# Сервисный пользователь k8s — создаётся на всех серверах (кластер + lab_hosts)
|
||||
# RSA 4096 ключ генерируется один раз на первом мастере, затем раскладывается везде
|
||||
k8s_service_user: k8s
|
||||
k8s_service_user_shell: /bin/bash
|
||||
k8s_service_user_comment: "K8S Service Account"
|
||||
k8s_service_user_key_type: rsa
|
||||
k8s_service_user_key_bits: 4096
|
||||
k8s_service_user_key_comment: "k8s@cluster"
|
||||
k8s_service_user_ssh_dir: ".ssh"
|
||||
k8s_service_user_sudo: true
|
||||
|
||||
# ─── devops-user ──────────────────────────────────────────────────────────────
|
||||
# Дополнительный пользователь для инженеров DevOps
|
||||
# Создаётся на тех же серверах что и k8s, та же RSA 4096 схема с ключами
|
||||
devops_service_user: devops
|
||||
devops_service_user_shell: /bin/bash
|
||||
devops_service_user_comment: "DevOps Engineer"
|
||||
devops_service_user_key_comment: "devops@cluster"
|
||||
devops_service_user_sudo: true
|
||||
# ─── Сервисные пользователи ───────────────────────────────────────────────────
|
||||
# Список пользователей, создаваемых на ВСЕХ серверах (кластер + lab_hosts).
|
||||
# Для каждого: RSA 4096 ключевая пара, authorized_keys, sudo NOPASSWD.
|
||||
# Добавь любое количество пользователей — всё остальное Ansible сделает сам.
|
||||
#
|
||||
# Обязательные поля: name
|
||||
# Опциональные: comment, shell, sudo, key_type, key_bits, key_comment, ssh_dir
|
||||
cluster_service_users:
|
||||
- name: k8s
|
||||
comment: "K8S Service Account"
|
||||
key_comment: "k8s@cluster"
|
||||
sudo: true
|
||||
shell: /bin/bash
|
||||
key_type: rsa
|
||||
key_bits: 4096
|
||||
- name: devops
|
||||
comment: "DevOps Engineer"
|
||||
key_comment: "devops@cluster"
|
||||
sudo: true
|
||||
shell: /bin/bash
|
||||
key_type: rsa
|
||||
key_bits: 4096
|
||||
|
||||
# Локальная директория для сохранения сгенерированных SSH ключей
|
||||
# Сохраняется на машине запуска Ansible (./keys/ относительно корня проекта)
|
||||
# Файлы: keys/k8s_id_rsa, keys/k8s_id_rsa.pub, keys/devops_id_rsa, keys/devops_id_rsa.pub
|
||||
# Файлы: keys/<user>_id_rsa, keys/<user>_id_rsa.pub
|
||||
k8s_local_keys_dir: "./keys"
|
||||
|
||||
# ─── Chrony — синхронизация времени ───────────────────────────────────────────
|
||||
# Устанавливается на все ноды кластера и lab_hosts как обязательный компонент.
|
||||
# Критично для корректной работы etcd, TLS и Kubernetes API.
|
||||
chrony_timezone: "Europe/Moscow"
|
||||
chrony_ntp_servers:
|
||||
- 0.pool.ntp.org
|
||||
- 1.pool.ntp.org
|
||||
- 2.pool.ntp.org
|
||||
- 3.pool.ntp.org
|
||||
|
||||
# ─── k3s-certs — автоматическая ротация сертификатов K3S ─────────────────────
|
||||
# K3S выпускает сертификаты с фиксированным сроком жизни 1 год.
|
||||
# Systemd таймер обеспечивает автоматическое обновление до истечения срока,
|
||||
|
||||
Reference in New Issue
Block a user