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

@@ -2,34 +2,35 @@
# K3S HA кластер — inventory
# Мастера: k3s server с embedded etcd (участвуют в Raft-кворуме)
# Воркеры: k3s agent — только рабочие ноды, без etcd
#
# ansible_user НЕ указывается здесь — он берётся из group_vars:
# k3s_admin_user: devops → ansible_user: "{{ k3s_admin_user }}"
# Bootstrap подключается с паролем из host_vars/<node>/vault.yml
# ─────────────────────────────────────────────────────────────────────────────
[k3s_master]
master01 ansible_host=192.168.1.10 ansible_user=ubuntu
worker01 ansible_host=192.168.1.11 ansible_user=ubuntu
rpi01 ansible_host=192.168.1.12 ansible_user=pi ansible_python_interpreter=/usr/bin/python3
master01 ansible_host=192.168.1.10
worker01 ansible_host=192.168.1.11
rpi01 ansible_host=192.168.1.12 ansible_python_interpreter=/usr/bin/python3
# Дополнительные мастера — добавляй сюда:
# master04 ansible_host=192.168.1.14 ansible_user=ubuntu
# master04 ansible_host=192.168.1.14
[k3s_workers]
# Чистые воркеры (только k3s agent, без etcd) — добавляй сюда:
# worker04 ansible_host=192.168.1.14 ansible_user=ubuntu
# worker05 ansible_host=192.168.1.15 ansible_user=ubuntu
# worker04 ansible_host=192.168.1.14
# worker05 ansible_host=192.168.1.15
[k3s_cluster:children]
k3s_master
k3s_workers
[k3s_cluster:vars]
ansible_ssh_private_key_file=~/.ssh/id_rsa
# NFS сервер — по умолчанию master, но можно вынести на отдельную машину
[nfs_server]
master01
# Если NFS на отдельной машине — закомментируй строку выше и раскомментируй:
# nfshost ansible_host=192.168.1.20 ansible_user=ubuntu
# nfshost ansible_host=192.168.1.20
# ─────────────────────────────────────────────────────────────────────────────
# Лабораторные серверы (не входят в k3s кластер)