refactor: bootstrap использует cluster_service_users вместо отдельного ansible-пользователя

Проблема: bootstrap создавал отдельного пользователя ansible (k3s_admin_user),
хотя у нас уже есть cluster_service_users с k8s и devops.

Решение:
- k3s_admin_user: devops (один из cluster_service_users, не отдельный пользователь)
- bootstrap phase 1: создаёт ВСЕХ пользователей из cluster_service_users через k8s-user role
- bootstrap phase 2: деплоит SSH ключ Ansible runner только в authorized_keys k3s_admin_user
- roles/bootstrap/tasks/main.yml: удалено создание пользователя/группы/sudoers (теперь в k8s-user)
- roles/bootstrap/defaults/main.yml: удалены k3s_admin_shell/comment/groups (не нужны)
- добавлена проверка: k3s_admin_user должен быть в cluster_service_users (assert)

group_vars/all/main.yml:
- ansible_user: "{{ k3s_admin_user }}" — все playbooks подключаются как k3s_admin_user
- ansible_ssh_private_key_file: "~/.ssh/id_rsa"
- k3s_admin_ssh_additional_keys: [] — для нескольких инженеров через vault

inventory/hosts.ini:
- убраны ansible_user=ubuntu с каждого хоста (теперь в group_vars)
- убран ansible_ssh_private_key_file из group vars (теперь в group_vars/all/main.yml)
This commit is contained in:
Sergey Antropoff
2026-04-24 07:18:57 +03:00
parent c6f3c60434
commit e99f1d5dfb
5 changed files with 98 additions and 97 deletions

View File

@@ -59,16 +59,24 @@ k3s_common_packages:
- tcpdump
- traceroute
# ─── Bootstrap (первичная настройка нод) ──────────────────────────────────────
# Пользователь, который создаётся при make bootstrap и используется для деплоя
k3s_admin_user: ansible
k3s_admin_shell: /bin/bash
# ─── Bootstrap первичная настройка нод ─────────────────────────────────────
# k3s_admin_user — ДОЛЖЕН быть одним из cluster_service_users.
# Используется для SSH-подключений Ansible после bootstrap.
# Пользователь создаётся bootstrap'ом через роль k8s-user.
k3s_admin_user: devops
# Файл SSH публичного ключа внутри контейнера (из примонтированного ~/.ssh)
# После bootstrap все playbook подключаются как k3s_admin_user
ansible_user: "{{ k3s_admin_user }}"
ansible_ssh_private_key_file: "~/.ssh/id_rsa"
# SSH публичный ключ Ansible-машины (монтируется в контейнер из ~/.ssh)
k3s_admin_ssh_public_key_files:
- /root/.ssh/id_ed25519.pub
# Отключить пароль SSH после деплоя ключа
# Дополнительные публичные ключи строками (для нескольких инженеров, из vault)
k3s_admin_ssh_additional_keys: []
# Отключить SSH вход по паролю после деплоя ключа (рекомендуется в prod)
k3s_admin_disable_password_auth: false
# Адрес для подключения новых нод — по умолчанию первый мастер (для initial install).