я использую lineinfile
для обновления файла конфигурации. Файл существует и ansible_ssh_user
владеет им и имеет разрешение на запись, но содержащий каталог принадлежит root
. Когда моя задача запускается, появляется ошибка:
Каталог назначения (/ parent / directory / name) не доступен для записи текущему пользователю.
Я могу редактировать файл вручную, используя vim
, и мой lineinfile
задача включает create=no
, поэтому я не понимаю, почему Ansible нужно разрешение на запись в родительский каталог. Что-то мне не хватает? Есть ли способ разрешить доступу для записи в файл без предоставления разрешений для каталога, в котором он находится?
PS - очень не хочу использовать become
или sudo
с этим сборником пьес; он предназначен для простой книги без ввода пароля.
Используй источник, Люк! :)
Если вы посмотрите на источник для lineinfile
модуль, вы можете видеть, что он записывает изменения во временный файл, а затем выполняет атомарную копию файла в целевое имя файла, перезаписывая старую версию файла.
Пользователю, с которым вы работаете, потребуются права на запись в родительский каталог.