22.2. 策略文件示例
以下是一个带有要应用的内省规则的 JSON 文件示例(rules.json):
[
{
"description": "Fail introspection for unexpected nodes",
"conditions": [
{
"op": "lt",
"field": "memory_mb",
"value": 4096
}
],
"actions": [
{
"action": "fail",
"message": "Memory too low, expected at least 4 GiB"
}
]
},
{
"description": "Assign profile for object storage",
"conditions": [
{
"op": "ge",
"field": "local_gb",
"value": 1024
}
],
"actions": [
{
"action": "set-capability",
"name": "profile",
"value": "swift-storage"
}
]
},
{
"description": "Assign possible profiles for compute and controller",
"conditions": [
{
"op": "lt",
"field": "local_gb",
"value": 1024
},
{
"op": "ge",
"field": "local_gb",
"value": 40
}
],
"actions": [
{
"action": "set-capability",
"name": "compute_profile",
"value": "1"
},
{
"action": "set-capability",
"name": "control_profile",
"value": "1"
},
{
"action": "set-capability",
"name": "profile",
"value": null
}
]
}
]
这个示例包括 3 个规则:
- 如果内存低于 4096 MiB,内省失败。如果您想将某些节点排除在云之外,则可应用这些类型的规则。
- 硬盘容量大于或等于 1 TiB 的节点会被无条件地分配 swift-storage 配置集。
-
硬盘容量在 1 TiB 和 40 GiB 间的节点可以作为 Compute 节点或 Controller 节点。您可以分配两个能力(
compute_profile和control_profile),使openstack overcloud profiles match命令稍后可以作出最终选择。要使此过程成功,必须删除现有配置集能力,否则现有配置集能力具有优先级。
配置集匹配规则不更改任何其他节点。
注意
使用内省规则分配配置集总会覆盖存在的值。但是,对于已经具有配置集能力的节点,会忽略 [PROFILE]_profile 能力。