Я знаю, что когда я использую два ресурса с одинаковым именем, я могу получить предупреждение «Использование устаревшей функции: клонирование ресурсов» в Chef 12. Я мог бы изменить имя второго ресурса, чтобы избежать клонирования ресурсов и избавиться от этого предупреждения. Но что, если я не могу изменить имя ресурса? Допустим, у меня есть mount в начале моего рецепта:
mount '/mnt/directory' do
device "//192.168.1.2/something"
action [:mount]
end
а затем в конце у меня есть umount:
mount '/mnt/directory' do
device "//192.168.1.2/something"
action [:umount]
end
Я знаю, что не принято делать и монтирование, и размонтирование в одном рецепте, но это мой неортодоксальный способ чего-то добиться. При выполнении этого рецепта я получаю предупреждение о "Используется устаревшая функция: клонирование ресурсов". Как я могу избежать этого предупреждения, когда я не могу изменить имя второго ресурса, поскольку «/mnt/directory» — это имя, и я не могу изменить каталог, над которым будет выполняться действие umount?





Каждый ресурс в Chef имеет так называемое свойство имя. Значение этого свойства берется из имени ресурса, но его также можно перезаписать, используя явное имя свойства.
Для ресурса mount свойство имя равно mount_point. Если вы установите mount_point в своем ресурсе, не имеет значения, как вы назовете ресурс:
mount 'mount /mnt/directory' do
mount_point '/mnt/directory'
device "//192.168.1.2/something"
action [:mount]
end
mount 'umount /mnt/directory' do
mount_point '/mnt/directory'
device "//192.168.1.2/something"
action [:umount]
end