一千萬個為什麽

搜索


讓我們說我做 knife node edit mynode ,並在正常部分中編輯JSON以添加“myattribute”:“myvalue”,。我保存並通過發布 knife search node -a myattribute mynode 來驗證它是否生效,並且我在那裏看到它。那麽我將如何使用配方中的這個值?我希望能夠在 mynode 上運行配方時只能說 node ['myattribute'] ,但它不會返回任何結果。通常的Ohai屬性如 node ['hostname'] 顯然按預期工作。

轉載註明原文: 從配方中訪問屬性

一共有 1 個回答:

我認為根據廚師文檔,您應該將 normal 與節點數據一起使用。

正常屬性是一個保存在節點對象中的設置。一個   普通屬性具有比默認更高的屬性優先級   屬性。

你可以在這裏讀到它:

https://docs.chef.io/attributes.html

https://docs.chef.io/knife_node.html

一些例子:

  "normal": {
    "ebs": {
      "devices": [
        {
          "mount_device": "/dev/xvdf",
          "encrypt": true,
          "volume_mapping": [
            {
              "device": "/dev/xvdf"
            }
          ]
        }
      ]
    },

在你的食譜中:

if node.ebs.devices[0]['mount_device'] == '/dev/xvdf' and node.ebs.devices[0]['encrypt'] ...

Another example with node['myattribute']

   "normal": {
        "myattribute": "myvalue"
        },