第 22 章 配置自动配置集标记
内省操作会执行一系列的基准数据测试,director 将保存这些测试数据。您可以创建一组策略来以不同方式使用这些数据。可使用多种方式创建使用此数据的策略集:
- 这些策略可识别性能不佳或不稳定的节点并隔离这些节点,使其不在 overcloud 中使用。
- 这些策略可定义是否将节点自动标记到特定配置集。
22.1. 策略文件语法
策略使用 JSON 格式,它包括了一组规则。每个规则都包括一个 description、一个 condition 和一个 action。
描述
规则描述
Example:
"description": "A new rule for my node tagging policy"
Conditions
condition 就是使用以下键-值来定义评估:
- field
定义要评估的字段:
-
memory_mb
- 节点的内存大小 (MB)。 -
cpus
- 节点 CPU 的总线程数。 -
cpu_arch
- 节点 CPU 的架构。 -
local_gb
- 节点根磁盘的总存储空间。
-
- op
指定测试所使用的操作。这包括如下属性:
-
eq
- 等于 -
ne
- 不等于 -
lt
- 少于 -
gt
- 多于 -
le
- 少于或等于 -
ge
- 多于或等于 -
in-net
- 检查一个 IP 地址是否在指定的网络中 -
matches
- 完全和提供的正则表达式相匹配 -
contains
- 包括和正则表达式匹配的值; -
is-empty
- 检查项是否为空。
-
- invert
- 一个布尔值,用来指定是否对检查结果进行反向处理。
- multiple
在存在多个结果的情况下,定义使用的测试。此参数包括如下属性:
-
any
- 只需要任何一个结果匹配 -
all
- 需要所有结果都匹配 -
first
- 需要第一个结果匹配
-
- value
- 测试中的值。如果项和操作结果为这个值,则条件返回为一个“true”的结果。否则,条件返回 false 的结果。
Example:
"conditions": [ { "field": "local_gb", "op": "ge", "value": 1024 } ],
Actions
如果条件为“true”,策略将执行一个操作。此操作使用 action
密钥和其他密钥,具体取决于 action
的值:
-
fail
- 使内省失败。需要一个message
参数来包括失败的信息。 -
set-attribute
- 在一个 Ironic 节点上设置一个属性。需要一个path
项,它是到一个 Ironic 属性(如/driver_info/ipmi_address
)的路径,以及一个value
值。 -
set-capability
- 在一个 Ironic 节点上设置一个能力。需要name
和value
字段,它们是新能力的名称和值。当前存在的相同能力的值会被覆盖。例如,使用它来定义节点配置集。 -
extend-attribute
- 与set-attribute
相似,只是在存在相同能力时把这个值附加到当前的值后面。如果同时使用了unique
参数,则在相同值已存在时不进行任何操作。
Example:
"actions": [ { "action": "set-capability", "name": "profile", "value": "swift-storage" } ]