cisco.intersight.intersight_server_pool_qualification_policy module – Server Pool Qualification Policy configuration for Cisco Intersight

Note

This module is part of the cisco.intersight collection (version 2.12.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install cisco.intersight.

To use it in a playbook, specify: cisco.intersight.intersight_server_pool_qualification_policy.

Synopsis

  • Manages Server Pool Qualification Policy configuration on Cisco Intersight.

  • A Server Pool Qualification Policy defines conditions to qualify servers for resource pools based on various hardware and configuration attributes.

  • Supports multiple qualifier types including Domain, Rack Server, Blade, Tag, Memory, GPU, Processor, and Network Adaptor qualifiers.

  • For more information see Cisco Intersight.

Parameters

Parameter

Comments

api_key_id

string / required

Public API Key ID associated with the private key.

If not set, the value of the INTERSIGHT_API_KEY_ID environment variable is used.

api_private_key

path / required

Filename (absolute path) or string of PEM formatted private key data to be used for Intersight API authentication.

If a string is used, Ansible vault should be used to encrypt string data.

Ex. ansible-vault encrypt_string --vault-id tme@/Users/dsoper/Documents/vault_password_file ‘-----BEGIN EC PRIVATE KEY-----

<your private key data>

-----END EC PRIVATE KEY-----’

If not set, the value of the INTERSIGHT_API_PRIVATE_KEY environment variable is used.

api_uri

string

URI used to access the Intersight API.

If not set, the value of the INTERSIGHT_API_URI environment variable is used.

Default: "https://intersight.com/api/v1"

blade_qualifier

dictionary

Blade qualifier for qualifying blade-based servers.

asset_tags

list / elements=string

List of asset tags to qualify blade servers.

Qualifies servers based on the AssetTag property.

chassis_pids

list / elements=string

List of chassis PIDs to qualify (maximum 20).

Qualifies blade servers based on chassis PID.

chassis_slot_ranges

list / elements=dictionary

List of chassis and slot ID ranges to qualify blade servers.

chassis_id_range

dictionary / required

Chassis ID range specification.

max_value

integer / required

Maximum chassis ID value (min_value-40).

min_value

integer / required

Minimum chassis ID value (1-40).

slot_id_ranges

list / elements=dictionary

List of slot ID ranges within the chassis.

Can only be specified if chassis_id_range is provided.

max_value

integer / required

Maximum slot ID value (min_value-8).

min_value

integer / required

Minimum slot ID value (1-8).

pids

list / elements=string

List of blade server PIDs to qualify (maximum 20).

Qualifies blade servers based on their PID.

user_labels

list / elements=string

List of user labels to qualify blade servers.

Qualifies servers based on the UserLabel property.

description

aliases: descr

string

The user-defined description for the Server Pool Qualification Policy.

Description can contain letters(a-z, A-Z), numbers(0-9), hyphen(-), period(.), colon(:), or an underscore(_).

domain_qualifier

dictionary

Domain qualifier for Fabric Interconnect and domain-based qualification.

domain_names

list / elements=string

List of domain names to qualify resources.

Qualifies resources based on the DomainName property.

fabric_interconnect_pids

list / elements=string

List of Fabric Interconnect PIDs to qualify resources.

Qualifies resources based on the PID property of Fabric Interconnects.

gpu_qualifier

dictionary

GPU qualifier for qualifying servers based on GPU specifications.

If not specified, a default GPU qualifier with servers_without_gpu evaluation type is automatically added.

evaluation_type

string

GPU evaluation type for server qualification.

servers_without_gpu - Qualifies servers without GPUs (default).

all_servers - Qualifies all servers regardless of GPU presence.

servers_with_gpu - Qualifies only servers with GPUs.

Choices:

  • "servers_without_gpu" ← (default)

  • "all_servers"

  • "servers_with_gpu"

gpu_count_range

dictionary

GPU count range (only applicable when evaluation_type is servers_with_gpu).

max_value

integer / required

Maximum number of GPUs (min_value-16).

min_value

integer / required

Minimum number of GPUs (1-16).

pids

list / elements=string

List of GPU PIDs to qualify (maximum 20, only for servers_with_gpu).

vendor

string

GPU vendor (only applicable when evaluation_type is servers_with_gpu).

Choices:

  • "nvidia"

  • "intel"

  • "amd"

memory_qualifier

dictionary

Memory qualifier for qualifying servers based on memory specifications.

capacity_range

dictionary

Memory capacity range in GiB.

max_value

integer / required

Maximum memory capacity in GiB (min_value-999999).

min_value

integer / required

Minimum memory capacity in GiB (1-999999).

units_range

dictionary

Number of memory units range.

max_value

integer / required

Maximum number of memory units (min_value-99999).

min_value

integer / required

Minimum number of memory units (1-99999).

name

string / required

The name assigned to the Server Pool Qualification Policy.

The name must be between 1 and 62 alphanumeric characters, allowing special characters :-_.

network_adaptor_qualifier

dictionary

Network adaptor qualifier for qualifying servers based on network adaptor count.

adaptors_range

dictionary

Number of network adaptors range.

max_value

integer / required

Maximum number of network adaptors (min_value-16).

min_value

integer / required

Minimum number of network adaptors (1-16).

organization

string

The name of the Organization this resource is assigned to.

Profiles and Policies that are created within a Custom Organization are applicable only to devices in the same Organization.

Default: "default"

processor_qualifier

dictionary

Processor qualifier for qualifying servers based on CPU specifications.

cores_range

dictionary

CPU cores range.

max_value

integer / required

Maximum number of CPU cores (min_value-9999).

min_value

integer / required

Minimum number of CPU cores (1-9999).

pids

list / elements=string

List of processor PIDs to qualify (maximum 100).

speed_range

dictionary

CPU speed range in GHz.

max_value

integer / required

Maximum CPU speed in GHz (min_value-99).

min_value

integer / required

Minimum CPU speed in GHz (1-99).

vendor

string

Processor vendor.

Choices:

  • "intel"

  • "amd"

rack_server_qualifier

dictionary

Rack server qualifier for qualifying rack-based servers.

asset_tags

list / elements=string

List of asset tags to qualify servers.

Qualifies servers based on the AssetTag property.

pids

list / elements=string

List of rack server PIDs to qualify (maximum 20).

Qualifies rack servers based on their PID.

rack_id_ranges

list / elements=dictionary

List of rack ID ranges to qualify servers.

Each range specifies min_value and max_value for rack IDs.

max_value

integer / required

Maximum rack ID value (min_value-256).

min_value

integer / required

Minimum rack ID value (1-256).

user_labels

list / elements=string

List of user labels to qualify servers.

Qualifies servers based on the UserLabel property.

state

string

If present, will verify the resource is present and will create if needed.

If absent, will verify the resource is absent and will delete if needed.

Choices:

  • "present" ← (default)

  • "absent"

tag_qualifier

dictionary

Tag qualifier for qualifying resources based on tags.

chassis_tags

list / elements=dictionary

List of chassis tags in key-value format.

key

string / required

Tag key.

value

string / required

Tag value.

domain_profile_tags

list / elements=dictionary

List of domain profile tags in key-value format.

key

string / required

Tag key.

value

string / required

Tag value.

server_tags

list / elements=dictionary

List of server tags in key-value format.

key

string / required

Tag key.

value

string / required

Tag value.

tags

list / elements=dictionary

List of tags in Key:<user-defined key> Value:<user-defined value> format.

use_proxy

boolean

If no, it will not use a proxy, even if one is defined in an environment variable on the target hosts.

Choices:

  • false

  • true ← (default)

validate_certs

boolean

Boolean control for verifying the api_uri TLS certificate

Choices:

  • false

  • true ← (default)

Examples

- name: Create minimal Server Pool Qualification Policy
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    organization: "default"
    name: "ServerPool-Minimal-Policy"
    description: "Minimal policy - GPU qualifier automatically added with servers_without_gpu"
    state: present

- name: Create Server Pool Qualification Policy with domain and rack qualifiers
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    organization: "default"
    name: "ServerPool-Qual-Policy-01"
    description: "Server pool qualification with domain and rack filters"
    domain_qualifier:
      fabric_interconnect_pids:
        - ucs-fi-6454
        - ucs-fi-64108
      domain_names:
        - "AC08-6454"
    rack_server_qualifier:
      rack_id_ranges:
        - min_value: 2
          max_value: 4
        - min_value: 5
          max_value: 8
      pids:
        - "UCSC-C245-M8SX"
        - "UCSC-C220-M8S"
      asset_tags:
        - "production"
      user_labels:
        - "datacenter-a"
    state: present

- name: Create Server Pool Qualification Policy with blade and memory qualifiers
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    name: "ServerPool-Blade-Policy"
    blade_qualifier:
      pids:
        - "UCSB-B480-M5"
        - "UCSB-B200-M5"
      chassis_pids:
        - "N20-C6508"
      chassis_slot_ranges:
        - chassis_id_range:
            min_value: 2
            max_value: 10
          slot_id_ranges:
            - min_value: 4
              max_value: 6
    memory_qualifier:
      capacity_range:
        min_value: 64
        max_value: 512
      units_range:
        min_value: 10
        max_value: 20
    state: present

- name: Create Server Pool Qualification Policy with GPU requirements
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    name: "ServerPool-GPU-Policy"
    description: "Policy for servers with NVIDIA GPUs"
    gpu_qualifier:
      evaluation_type: servers_with_gpu
      gpu_count_range:
        min_value: 2
        max_value: 4
      vendor: nvidia
    processor_qualifier:
      cores_range:
        min_value: 16
        max_value: 64
      vendor: intel
    state: present

- name: Create Server Pool Qualification Policy with tag qualifiers
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    name: "ServerPool-Tag-Policy"
    tag_qualifier:
      server_tags:
        - key: "environment"
          value: "production"
        - key: "tier"
          value: "1"
      chassis_tags:
        - key: "location"
          value: "datacenter-a"
    network_adaptor_qualifier:
      adaptors_range:
        min_value: 2
        max_value: 8
    state: present

- name: Create comprehensive Server Pool Qualification Policy
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    organization: "Production"
    name: "ServerPool-Comprehensive-Policy"
    description: "Comprehensive qualification policy with multiple qualifiers"
    domain_qualifier:
      fabric_interconnect_pids:
        - ucs-fi-6454
    rack_server_qualifier:
      pids:
        - "UCSC-C220-M6S"
        - "UCSC-C240-M6S"
    blade_qualifier:
      pids:
        - "UCSX-210C-M7"
        - "UCSX-410C-M7"
    memory_qualifier:
      capacity_range:
        min_value: 128
        max_value: 1024
    processor_qualifier:
      cores_range:
        min_value: 32
        max_value: 128
      vendor: intel
    gpu_qualifier:
      evaluation_type: servers_without_gpu
    network_adaptor_qualifier:
      adaptors_range:
        min_value: 2
        max_value: 4
    tags:
      - Key: "Environment"
        Value: "Production"
    state: present

- name: Delete Server Pool Qualification Policy
  cisco.intersight.intersight_server_pool_qualification_policy:
    api_private_key: "{{ api_private_key }}"
    api_key_id: "{{ api_key_id }}"
    name: "ServerPool-Qual-Policy-01"
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

api_response

dictionary

The API response output returned by the specified resource.

Returned: always

Sample: {"api_response": {"Name": "ServerPool-Qual-Policy-01", "ObjectType": "resourcepool.QualificationPolicy", "Organization": {"Moid": "675450ee69726530014753e2", "ObjectType": "organization.Organization"}, "Qualifiers": [{"DomainNames": ["AC08-6454"], "FabricInterConnectPids": ["UCS-FI-6454", "UCS-FI-64108"], "ObjectType": "resource.DomainQualifier"}, {"ObjectType": "resource.RackServerQualifier", "Pids": ["UCSC-C245-M8SX"], "RackIdRange": [{"MaxValue": 4, "MinValue": 2}]}]}}

Authors

  • Ron Gershburg (@rgershbu)