Должны ли мы действительно использовать шеф-повар для управления файлом sudoers?

Это мой вопрос. Меня беспокоит, что если Chef сломает что-то в файле sudoers, вероятно, из-за того, что пользователь Chef неправильно использует кулинарную книгу, то сервер будет полностью недоступен.

Я бы не хотел, чтобы мы полностью потеряли производственный сервер для клиента, потому что мы испортили файл sudoers и больше не можем подключиться к машине по ssh.


person Jordan Violet    schedule 13.05.2016    source источник
comment
Просто настройте Chef для периодического запуска от имени пользователя root в cronjob (поваренная книга Chef_client может сделать это за вас). Следовательно, если вы сломаете его в поваренной книге, исправьте это в поваренной книге, и при следующем запуске Chef исправит файлы.   -  person Tensibai    schedule 13.05.2016
comment
checkout sudo поваренную книгу, вам будет намного проще управлять файлом sudoers. как всегда, вы даже можете протестировать свою кулинарную книгу, в которой используется sudo кулинарная книга, с помощью chefspec.   -  person Mr.    schedule 16.05.2016


Ответы (1)


У Chef есть функция, которая помогает в этом, верификаторы. Вы можете настроить verifies в своем шаблоне sudoer следующим образом:

template '/etc/sudoers' do
  source 'whatever.erb
  verify 'visudo -c -f %{path}'
end

Если visudo отклоняет синтаксис, временный файл никогда не будет помещен на место, и сходимость завершится ошибкой. Конечно, это не поможет, если у вас есть синтаксически корректный, но бесполезный sudoers. Вы можете рассмотреть возможность использования структуры /etc/sudoers.d, так как она сохраняет каждый бит, по крайней мере, в некоторой степени разделенным, и вам сложнее случайно навредить себе.

person coderanger    schedule 13.05.2016
comment
Недавно я загрузил сломанный файл sudoers с шеф-поваром, это было довольно страшно. Приятно видеть шаг проверки. - person jorfus; 19.01.2017
comment
спасибо за этот ответ! К сожалению, это не помогло мне (см. мой вопрос здесь). Как вы заставили проверку работать? - person derHugo; 07.12.2017
comment
(И вам не хватает закрывающего ' после источника;)) - person derHugo; 07.12.2017