ssh-certs hosts.
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 0s

This commit is contained in:
hogweed1
2026-05-21 03:27:52 +10:00
parent 6edfeb5500
commit 3ceebabb4a
3 changed files with 44 additions and 3 deletions

View File

@@ -0,0 +1,8 @@
a_users:
- name: test-nigger2
sudo: true
#- name: ivan
# sudo: false
a_projects:
- zagon

View File

@@ -1,9 +1,8 @@
project_users: b_users:
- name: test-nigger - name: test-nigger
sudo: true sudo: true
#- name: ivan #- name: ivan
# sudo: false # sudo: false
allowed_projects: b_projects:
- zagon
- zagon2 - zagon2

View File

@@ -4,6 +4,40 @@
# Путь к ПУБЛИЧНОМУ ключу User CA на вашей Ansible-машине # Путь к ПУБЛИЧНОМУ ключу User CA на вашей Ansible-машине
local_ssh_user_ca_pub_path: "/etc/step-ca/ssh_user_ca_key.pub" local_ssh_user_ca_pub_path: "/etc/step-ca/ssh_user_ca_key.pub"
pre_tasks:
- name: Динамический сбор и мерж пользователей изо всех групп хоста
set_fact:
# Ищем переменные вида *_users (alpha_users, beta_users) для групп текущего хоста
project_users: >-
{{
group_names
| map('extract', hostvars[inventory_hostname])
| map('dict2items') | flatten
| selectattr('key', 'match', '.*_users$')
| map(attribute='value') | flatten
| unique
}}
# Ищем переменные вида *_projects (alpha_projects, beta_projects) и склеиваем в один список принципалов
allowed_projects: >-
{{
group_names
| map('extract', hostvars[inventory_hostname])
| map('dict2items') | flatten
| selectattr('key', 'match', '.*_projects$')
| map(attribute='value') | flatten
| unique
}}
- name: Дебаг получившейся матрицы доступов (Опционально)
debug:
msg: "Хост {{ inventory_hostname }} получит юзеров {{ project_users }} и принципалы {{ allowed_projects }}"
tasks: tasks:
- name: Создание системной директории для принципалов - name: Создание системной директории для принципалов
file: file: