如何在Chef配方中找到可用的磁盘?

Jor*_*son 5 chef-infra

在执行Chef配方时,我想确定是否有足够的可用磁盘空间来执行操作.

怎么做到最好?

Jor*_*son 12

Ohai每次运行时都会检测节点的某些属性.这些属性将作为自动属性捕获,并可作为节点属性使用.

属性节点['filesystem']包含有关系统上每个设备的信息.为了获得特定设备的kb空间:

node['filesystem']['/dev/xvda1']['kb_available']
Run Code Online (Sandbox Code Playgroud)

以下是Ohai的文件系统属性JSON的示例:

   "filesystem": {
  "/dev/xvda1": {
    "kb_size": "521882300",
    "kb_used": "119914572",
    "kb_available": "375474240",
    "percent_used": "25%",
    "mount": "/",
    "fs_type": "ext4",
    "mount_options": [
      "rw"
    ],
    "uuid": "248b8180-f75f-48fc-a8be-e3ff3506c4d6"
  },
  "tmpfs": {
    "kb_size": "1987292",
    "kb_used": "0",
    "kb_available": "1987292",
    "percent_used": "0%",
    "mount": "/dev/shm",
    "fs_type": "tmpfs",
    "mount_options": [
      "rw",
      "rootcontext=\"system_u:object_r:tmpfs_t:s0\""
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)