Как распространять файлы sudoers с помощью REX Configuration Management
При попытке отправить файл sudoers на другие машины задача / команда rexcm зависает.
Проблема в том (как мне кажется), что файл sudoers принадлежит пользователю rex во время записи и установлено "другое" разрешение, что приводит к сбою "sudo" (что приводит к нарушению "sudo TRUE" в Rexfile):
mySrv:/etc# ls -l sudoers.d/
-rw-rw-r-- 1 rexuser rexuser 72 Jul 25 07:49 sudoersFile
Я пытался распространять файл из источника и из шаблона.
file "/etc/sudoers.d/sudoersFile",
#source => "files/sudoers.d/sudoersFile",
owner=>"root", group=>"root", mode => "600",
content => template("templates/sudoers.d/sudoersFile.tpl"),
on_change => sub{
say "file sudoersFile transfered";
};
};
Вопрос: Как (или: существует ли) правильный способ распространения файлов sudoers с помощью управления конфигурацией rex?
Обновление / Обход:
(спасибо xq от #rex@freenode)
- скопировать файл во временную папку на удаленной системе (тот же код, что и выше, но другой путь)
переместить / скопировать файлы в "/ etc" (команда rex для "mv" - это "переименовать", ставится в конце того же определения задачи)
rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
... недостаток: вы должны вручную указать событие on_change
1 ответ
Просто отвечая на вопрос с обходным путем, упомянутым в вопросе, поскольку в течение года не было нового просветления:
(спасибо xq от #rex@freenode)
- скопировать файл во временную папку на удаленной системе (тот же код, что и выше, но другой путь)
переместить / скопировать файлы в "/etc" (rex/perl-команда для "mv" - это "переименовать", поставить в конце того же определения задачи)
rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
... недостаток: вы должны вручную указать событие on_change