Files
K3S/roles/k8s-user/tasks/generate_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

51 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
# Генерация RSA 4096 ключевой пары для k8s пользователя
# Выполняется ОДИН РАЗ на первом мастере, ключи затем распространяются на все хосты
- name: Generate RSA {{ k8s_service_user_key_bits }} key pair for k8s user
ansible.builtin.command:
cmd: >
ssh-keygen
-t {{ k8s_service_user_key_type }}
-b {{ k8s_service_user_key_bits }}
-N ''
-C "{{ k8s_service_user_key_comment }}"
-f /home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa
creates: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa"
become: true
become_user: "{{ k8s_service_user }}"
- name: Set correct permissions on private key
ansible.builtin.file:
path: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa"
owner: "{{ k8s_service_user }}"
group: "{{ k8s_service_user }}"
mode: '0600'
become: true
- name: Set correct permissions on public key
ansible.builtin.file:
path: "/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: Slurp private key from first master
ansible.builtin.slurp:
src: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa"
register: k8s_private_key_raw
become: true
- name: Slurp public key from first master
ansible.builtin.slurp:
src: "/home/{{ k8s_service_user }}/{{ k8s_service_user_ssh_dir }}/id_rsa.pub"
register: k8s_public_key_raw
become: true
- name: Store key content as persistent facts (доступны во всех последующих plays)
ansible.builtin.set_fact:
"{{ k8s_service_user }}_ssh_private_key": "{{ k8s_private_key_raw.content | b64decode }}"
"{{ k8s_service_user }}_ssh_public_key": "{{ k8s_public_key_raw.content | b64decode | trim }}"
cacheable: true