Skip to content

Commit

Permalink
fix: host_vars and group_vars custom ssh_from
Browse files Browse the repository at this point in the history
  • Loading branch information
Xenion1987 committed Feb 13, 2025
1 parent 898b747 commit 6888f20
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
5 changes: 3 additions & 2 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ user_management_default_primary_group: null
user_management_default_secondary_groups: []
user_management_default_secondary_groups_append: false

user_management_default_ssh_from:
- "*"
user_management_default_ssh_from: []
user_management_group_ssh_from: []
user_management_host_ssh_from: []

user_management_users:
- name: user_management_john.doe
Expand Down
18 changes: 16 additions & 2 deletions meta/argument_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,22 @@ argument_specs:
- Default user's shell. Omitted if `null`.
required: false
type: str
user_management_group_ssh_from:
default: []
description:
- '`group_vars` specific `from=""` value added to `authorized_keys` for each user having `user_management_users.ssh_public_keys` defined'
# elements: str
required: false
type: list
user_management_host_ssh_from:
default: []
description:
- '`host_vars` specific `from=""` value added to `authorized_keys` for each user having `user_management_users.ssh_public_keys` defined'
# elements: str
required: false
type: list
user_management_default_ssh_from:
default: ["*"]
default: []
description:
- Default, global `from=""` value added to `authorized_keys` for each user having `user_management_users.ssh_public_keys` defined
# elements: str
Expand Down Expand Up @@ -320,7 +334,7 @@ argument_specs:
default: []
description:
- '`from=""` value added to `authorized_keys` if user has `user_management_users.ssh_public_keys` defined.'
- If `user_management_default_ssh_from` or `custom_ssh_from` is defined and not set to `'*'`, all values will be concatenated.
- "All values from `user_management_default_ssh_from`, `user_management_group_ssh_from` and `user_management_host_ssh_from` will be concatenated."
# elements: str
required: false
type: list
Expand Down
7 changes: 4 additions & 3 deletions templates/authorized_keys.j2
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{%- for ssh_key in item.ssh_public_keys -%}
{%- set from_options_global = user_management_default_ssh_from -%}
{%- set from_options_custom_host = host_vars_ssh_from | default([]) -%}
{%- set from_options_group_vars = user_management_group_ssh_from | default([]) -%}
{%- set from_options_host_vars = user_management_host_ssh_from | default([]) -%}
{%- set from_options_custom_item = item.custom_ssh_from | default([]) -%}
{%- set from_options_custom = from_options_custom_host + from_options_custom_item | default([]) -%}
{%- set from_options_custom = from_options_group_vars + from_options_host_vars+ from_options_custom_item | default([]) -%}
{%- set from_options = from_options_global + from_options_custom | default([]) -%}
{%- if ssh_key is defined -%}
from="{% if from_options %}{{ from_options | join(',') }}{% else %}*{% endif %}" {{ ssh_key }}
{% if from_options %}from="{{ from_options | join(',') }}" {% endif %}{{ ssh_key }}
{% endif %}
{% endfor %}

0 comments on commit 6888f20

Please sign in to comment.