Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

付録E プロファイルの自動タグ付け

イントロスペクションプロセスでは、一連のベンチマークテストを実行します。director は、これらのテストからデータを保存します。このデータをさまざまな方法で使用するポリシーセットを作成することができます。以下に例を示します。

  • ポリシーにより、パフォーマンスの低いノードまたは不安定なノードを特定して、オーバークラウドで使用されないように隔離することができます。
  • ポリシーにより、ノードを自動的に特定のプロファイルにタグ付けするかどうかを定義することができます。

E.1. ポリシーファイルの構文

ポリシーファイルは JSON 形式で、ルールセットが記載されます。各ルールでは、説明条件、および アクション が定義されます。

description

これは、プレーンテキストで記述されたルールの説明です。

以下に例を示します。

"description": "A new rule for my node tagging policy"

conditions

ここでは、以下のキー/値のパターンを使用して評価を定義します。

field
評価するフィールドを定義します。フィールドの種別については、「プロファイルの自動タグ付けのプロパティー」を参照してください。
op

評価に使用する演算を定義します。これには、以下の属性が含まれます。

  • eq: 等しい
  • ne: 等しくない
  • lt: より小さい
  • gt: より大きい
  • le: より小さいか等しい
  • ge: より大きいか等しい
  • in-net: IP アドレスが指定のネットワーク内にあることをチェックします。
  • matches: 指定の正規表現と完全に一致する必要があります。
  • contains: 値には、指定の正規表現が含まれる必要があります。
  • is-empty: フィールドが空欄であることをチェックします。
invert
評価の結果をインバージョン (反転) するかどうかを定義するブール値
multiple

複数の結果が存在する場合に、使用する評価を定義します。これには、以下の属性が含まれます。

  • any: いずれかの結果が一致する必要があります。
  • all: すべての結果が一致する必要があります。
  • first: 最初の結果が一致する必要があります。
value
評価する値を定義します。フィールドと演算の結果でその値となった場合には、条件は true の結果を返します。そうでない場合には、条件は false の結果を返します。

以下に例を示します。

"conditions": [
  {
    "field": "local_gb",
    "op": "ge",
    "value": 1024
  }
],

actions

条件が true を返す場合にアクションが実行されます。ここでは、action キーと、action の値に応じた追加のキーが使用されます。

  • fail: イントロスペクションが失敗します。失敗のメッセージには、message パラメーターが必要です。
  • set-attribute: Ironic ノードの属性を設定します。Ironic の属性へのパス (例: /driver_info/ipmi_address) を指定する path フィールドおよび設定する value が必要です。
  • set-capability: Ironic ノードのケイパビリティーを設定します。新しいケイパビリティーに応じた名前と値を指定する name および value のフィールドが必要です。同じケイパビリティーの既存の値は置き換えられます。たとえば、これを使用してノードのプロファイルを定義します。
  • extend-attribute: set-attribute と同じですが、既存の値を一覧として扱い、その一覧に値を追記します。オプションの unique パラメーターを True に設定すると、対象の値がすでに一覧に含まれている場合には何も追加しません。

たとえば、以下のようになります。

"actions": [
  {
    "action": "set-capability",
    "name": "profile",
    "value": "swift-storage"
  }
]