Я пытаюсь создать файл sudoers динамически через куклу. Вот у меня есть hieradata как это:erb sudoers перебирать хэш массивов
---
sudoparameters:
cmnd_aliases:
CMND_ALIAS_A:
- /path/to/command_a *
- /path/to/command_b *
CMND_ALIAS_B:
- /path/to/command_c
- /path/to/command_d *
runas_aliases:
RUNAS_ALIAS_A:
- runas_user_a, runas_user_b
RUNAS_ALIAS_B:
- runas_user_a, runas_user_c
defaults:
- user!authenticate
- user!systlog
commands:
- user ALL=(root) NOPASSWD:/usr/sbin/puppetd --test agent --server=*
- user ALL=(root) NOPASSWD:/usr/bin/lsof -a *
- user ALL=(RUNAS_ALIAS_A) NOPASSWD: CMND_ALIAS_A
И эрб шаблон:
<% @sudoparameters['cmnd_aliases'].each do |cmnd_alias| -%>
Cmnd_Alias <%= cmnd_alias %> <%= cmnd_alias.map { |path| path.join(', ') } %>
<% end -%>
<% @sudoparameters['runas_aliases'].each do |runas_alias| -%>
Runas_Aliases <%= runas_alias %> <%= runas_alias.map { |path| path.join(', ') } %>
<% end -%>
<% @sudoparameters['defaults'].each do |default| -%>
Defaults:<%= default %>
<% end -%>
<% @sudoparameters['commands'].each do |command| -%>
<%= command %>
<% end -%>
Мой подход к итерацию по Cmnd_Aliases и runas_aliases не работает. Как я могу это сделать, чтобы создать список разделителей запятой für Cmnd_Aliases и Runas_Aliases, если эти массивы существуют в sudoparameter hash?
Приветствия
Christian
Что именно не работает? Вы получили сообщение об ошибке? Я не могу сказать из пасты, если вы заполнили переменную 'sudoparameters' в манифесте, а если нет, это может быть проблема или что-то еще не так. –
Были ошибки в моих * .map командах. Но теперь он терпит неудачу, если массив в хеше не установлен. 'Подробно: неопределенный метод' each 'for nil: NilClass' –