Установка разрешений с помощью rsync только в том случае, если файл принадлежит пользователю

Ansible docs упоминают это, но только вскользь. «Некоторые ошибки могут помешать запуску обработчика, например, если хост становится недоступным». Нет никаких предложений, что делать в этом случае.

Упоминается - обработчики силы . Здесь есть некоторая путаница. Проблема # 4777 запрашивает параметр - force-handlers , который запускал бы все обработчики, независимо от того, были ли они уведомлены, чтобы разрешить восстановление в этой ситуации. Этот вопрос был закрыт с комментарием «теперь это реализовано». Рассказчик: не было реализовано. Я открыл новый выпуск , чтобы запросить такую ​​функцию.

К сожалению, я считаю, что этот комментарий заставил некоторых предложить - force-handlers в качестве решения этой проблемы на stackexchange или где-либо еще, когда это не так.


Полное решение изменило бы ansible для записи базы данных ожидающих обработчиков. (Обработчик будет записан немедленно, когда задача обнаружит, что изменение собирается быть внесено).

Если не считать этого, вы бы хотели избежать таких перерывов.Потому что вам нужно будет внимательно просмотреть оба обработчика и все задачи, обусловленные | измененным , и обязательно запустить их на повторных целевых объектах.

Мораль: может быть полезно использовать обработчики и избегать разбрызгивания | изменено в учебнике.

Менее элегантное, но столь же правильное решение могло бы включать изменение анзибля с возможностью принудительного запуска всех обработчиков. Или, возможно, рассматривать все непропущенные задачи как измененные. Если исходный запуск требовал перезапуска службы, вполне разумно запланировать второй запуск, который перезапускает службу. Недостатком является то, что при первоначальном запуске требовалось только перезапускать некоторые службы.

Вы также можете избежать прерывания воспроизведения, используя доступный «режим вытягивания». Или, если основная проблема заключается в том, что ansible запускается удаленно, вы можете запустить ansible на сервере на том же сайте, используя постоянный сеанс с screen / tmux .

2
23.05.2017, 02:41
1 ответ

Используйте параметр --no-perms, чтобы предотвратить изменение прав доступа к существующим целевым файлам. Разрешения --chmod будут использоваться только для новых создаваемых файлов/папок.

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

Однако вместо добавления разрешений с помощью --chmod=g+w следует указать полный набор разрешений, например --chmod=ug=rwX,o=rX, потому что --no-perms указывает не копировать исходные разрешения для копируемых файлов.

1
27.01.2020, 22:18

Теги

Похожие вопросы