如何避免 Chef 12 中的“资源克隆”警告,同时使用名称无法更改的资源
How to avoid “resource cloning” warning in Chef 12, while using resource which name can't be changed
我知道当我使用两个同名的资源时,我可能会在 Chef 12 中收到 "deprecated feature used: resource cloning" 警告。我可以更改第二个资源的名称以避免资源克隆并消除该警告.但是,如果我不能更改资源名称怎么办?假设我在食谱的开头有 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
我知道在一个方法中同时执行挂载和卸载并不常见,但这是我实现某些目标的非正统方式。在执行这个食谱时,我收到关于 "deprecated feature used: resource cloning" 的警告。当我无法更改第二个资源的名称时,如何避免该警告,因为“/mnt/directory”是名称,我无法更改 umount 将对其执行操作的目录?
Chef 中的每个资源都有一个 so-called 名称 属性。此 属性 的值取自资源名称,但也可以使用显式 属性 名称本身进行覆盖。
对于 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
我知道当我使用两个同名的资源时,我可能会在 Chef 12 中收到 "deprecated feature used: resource cloning" 警告。我可以更改第二个资源的名称以避免资源克隆并消除该警告.但是,如果我不能更改资源名称怎么办?假设我在食谱的开头有 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
我知道在一个方法中同时执行挂载和卸载并不常见,但这是我实现某些目标的非正统方式。在执行这个食谱时,我收到关于 "deprecated feature used: resource cloning" 的警告。当我无法更改第二个资源的名称时,如何避免该警告,因为“/mnt/directory”是名称,我无法更改 umount 将对其执行操作的目录?
Chef 中的每个资源都有一个 so-called 名称 属性。此 属性 的值取自资源名称,但也可以使用显式 属性 名称本身进行覆盖。
对于 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