У меня есть два ресурса в моем рецепте. Первый - это ресурс user
, который устанавливает каталог пользователя uid/gid/home и т. Д. Он использует supports :manage_home => true
.Рецепт шеф-повара - как запустить ресурс, только если пользовательский ресурс сделал manage_home
Мой второй ресурс - это ресурс bash
. В настоящее время скрипт работает на каждом сеансе работы шеф-повара, что немного лишним. Я хочу, чтобы сценарий запускался только в том случае, если при запуске ресурса пользователя был вызван manage_home
(например, запустите сценарий, если домашний каталог пользователя был изменен, и файлы были перемещены, в противном случае ничего не делать).
Я только смог найти примеры использования only_if
с некоторым чистым условием Ruby (например, если существует определенный файл, если узел имеет определенный элемент в своем списке запуска и т. Д.), Но то, что я хочу сделать требует, чтобы условие было связано с результатом другого ресурса шеф-повара. Я знаю, что пользовательский ресурс просто запускает usermod
(или useradd
), который, похоже, не указывает на то, перемещен ли домашний каталог или нет. Так возможно ли это?
Вы можете проверить домашний каталог до и после запуска для различий? Вы можете назначить значение команды узлу, например 'node [: blah] = \' ls -la/home/blah \ '' См. Http://stackoverflow.com/questions/16309808/how-can-i- put-the-the-a-chef-execute-resource-in-a-variable –
Спасибо за помощь! – tytk