Как избежать предупреждения «клонирования ресурса» в Chef 12 при использовании ресурса, имя которого нельзя изменить - PullRequest
1 голос
/ 20 июня 2019

Я знаю, что когда я использую два ресурса с одинаковыми именами, в Chef 12 может появиться предупреждение «Не рекомендуется использовать функцию: клонирование ресурсов». Я могу изменить имя второго ресурса, чтобы избежать клонирования ресурсов и избавиться от этого. предупреждение. Но что, если я не могу изменить имя ресурса? Допустим, у меня есть крепление в начале моего рецепта:

mount '/mnt/directory' do
  device "//192.168.1.2/something"
  action [:mount]
end

и затем в конце я получаю:

mount '/mnt/directory' do
  device "//192.168.1.2/something"
  action [:umount]
end

Я знаю, что это не принято делать и монтировать, и монтировать в одном рецепте, но это мой неортодоксальный способ достижения чего-либо. При выполнении этого рецепта я получаю предупреждение о «устаревшая функция используется: клонирование ресурсов» . Как я могу избежать этого предупреждения, пока я не могу изменить имя второго ресурса, так как «/ mnt / directory» - это имя, и я не могу изменить каталог, в котором будет работать umount?

1 Ответ

1 голос
/ 20 июня 2019

Каждый ресурс в Chef имеет так называемое свойство name .Значение этого свойства берется из имени ресурса, но его также можно перезаписать, используя само явное имя свойства.

Для ресурса mount свойство name имеет значение 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
...