Files
K3S/roles/k8s-user/tasks/distribute_keys.yml
Sergey Antropoff 7c71b69333 feat: добавлен пользователь devops по аналогии с k8s-user
Роль k8s-user сделана универсальной:
- generate_keys.yml: имена фактов стали динамическими — {{ k8s_service_user }}_ssh_private_key
  вместо захардкоженных k8s_ssh_private_key (поддержка любого пользователя)
- distribute_keys.yml: обращение к фактам через [k8s_service_user + '_ssh_private_key']

playbooks/k8s-user.yml переработан — 12 plays (6 для k8s + 6 для devops):
- devops plays вызывают ту же роль k8s-user с vars-переопределением k8s_service_user
- теги k8s/k8s_user и devops/devops_user — можно запустить одного пользователя
- ключи сохраняются: ./keys/k8s_id_rsa, ./keys/devops_id_rsa (приватные в .gitignore)
- имя файла ключа динамическое: {{ k8s_service_user }}_id_rsa

group_vars/all/main.yml:
- добавлены devops_service_user, devops_service_user_comment, devops_service_user_sudo и др.

Запуск только devops: ansible-playbook playbooks/k8s-user.yml --tags devops
2026-04-24 07:05:50 +03:00

29 lines
1.2 KiB
YAML

---
# Раскладывает приватный и публичный ключ k8s пользователя на текущий хост
# Ключи берутся из hostvars первого мастера (сгенерированы там play'ем generate_keys)
- name: Deploy private key to {{ k8s_service_user }} user
ansible.builtin.copy:
content: "{{ hostvars[groups['k3s_master'][0]][k8s_service_user + '_ssh_private_key'] }}"
dest: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa"
owner: "{{ k8s_service_user }}"
group: "{{ k8s_service_user }}"
mode: '0600'
become: true
- name: Deploy public key to {{ k8s_service_user }} user
ansible.builtin.copy:
content: "{{ hostvars[groups['k3s_master'][0]][k8s_service_user + '_ssh_public_key'] }}\n"
dest: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa.pub"
owner: "{{ k8s_service_user }}"
group: "{{ k8s_service_user }}"
mode: '0644'
become: true
- name: Add {{ k8s_service_user }} public key to authorized_keys
ansible.posix.authorized_key:
user: "{{ k8s_service_user }}"
key: "{{ hostvars[groups['k3s_master'][0]][k8s_service_user + '_ssh_public_key'] }}"
state: present
become: true