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
      }
    ]
  }
]

이 예제는 다음 세 가지 규칙으로 구성되어 있습니다.

  • 메모리가 4096MiB 미만인 경우 인트로스펙션이 실패합니다. 클라우드에서 특정 노드를 제외하려는 경우 이러한 유형의 규칙을 적용할 수 있습니다.
  • 하드 드라이브 크기가 1TiB 이상인 노드에는 무조건 swift-storage 프로필이 할당됩니다.
  • 하드 드라이브 크기가 40GiB보다 크고 1TiB 미만인 노드는 컴퓨팅 또는 컨트롤러 노드일 수 있습니다. 나중에 openstack overcloud profiles match 명령을 통해 최종 선택을 할 수 있도록 두 가지 기능(compute_profilecontrol_profile)을 할당할 수 있습니다. 이 프로세스가 성공하려면 기존 프로필 기능을 삭제해야 합니다. 삭제하지 않으면 기존 프로필 기능이 우선합니다.

프로필 일치 규칙은 다른 노드를 변경하지 않습니다.

참고

인트로스펙션 규칙을 사용하여 profile 기능을 할당하면 기존 값이 항상 재정의됩니다. 하지만 이미 프로필 기능이 있는 노드에 대해서는 [PROFILE]_profile 기능이 무시됩니다.