25.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
能力。