В ansible я могу сделать это:
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
И он рекурсивно устанавливает владельца, группу и разрешения на 0775 для всех каталогов и файлов по этому пути. Но я хочу установить для каталогов значение 0775, а для файлов - 0664. Есть ли какой-нибудь способ сделать ansible для этого?
file-permissions
ansible
Эдвард Нед Харви
источник
источник
Ответы:
установит каталоги на 755, а файлы на 644.
источник
X
неx
для каталогов, и ничего для файлов. И вот какchmod
, неansible
относится к строке режима. Я хотелS
бы, чтобы относились так же.Источник: https://stackoverflow.com/a/28782805/1306186
источник
recurse
вариант, но не другой.Если вы хотите использовать файл модуля в ansible, вы можете:
С помощью этого метода вы сначала устанавливаете весь файл (recurse = yes) на «644», а затем вы устанавливаете / foo / bar / somedir на «775».
Это не идеально, потому что это будет изменять ваши права доступа к каталогу каждый раз, когда вы играете в свою книгу. Но, по крайней мере, это идемпотент, а не команда модуля.
Если вы не хотите иметь «измененный» статус, вы можете использовать модуль stat. Он перечислит все файлы и каталог в / foo / bar / somedir, поэтому вы регистрируете ответ, а затем делаете цикл только для этих файлов.
источник
Я не уверен, какой смысл в том, чтобы устанавливать для каталогов значение 0775 (
rwxrwxr-x
), а для файлов - 0644 (rw-r--r--
): каталоги с возможностью записи в группы, но не файлы?Если вы намеревались установить для файлов значение 0664 (
rw-rw-r--
), чтобы гарантировать, что файлы не будут выполняться, а каталоги можно просматривать, есть элегантное решение, включающее только однуchmod
команду:Вот как это можно использовать в Ansible :
chmod -c
печатает все изменения, которые мы можем удобно использовать для заполнения «измененного» статуса в Ansible . Я надеюсь, что это имеет смысл.источник
Чтобы изменить моды только при необходимости:
источник