属性集(数据中心设计)
属性集是定义设备属性的数据集。它们与 configlet 和分析探针协同工作。(自由格式蓝图中的配置模板也使用属性集,但它们与设计目录中的属性集无关,如此处所述。您可以将变量值存储在属性集中,然后引用 configlet 或探测器中的属性集,而不是将数据直接嵌入到 configlet 或探测器中。这使您可以灵活地在以后更改值。创建蓝图后,您需要将 configlet 和属性集从设计(全局)目录导入到蓝图目录中。
首先,需要编写属性集(以及使用它的 configlet 或探测器)。你可以用 JSON 编写,或者从 Apstra 版本 4.1.2 开始,你也可以用 YAML 编写。Apstra 版本 4.1.1 及更低版本仅支持键值对。从 Apstra 4.1.2 版开始,您还可以使用列表、字典和这些数据结构的嵌套组合。
下面是一个属性集和 configlet 的示例,该属性集和 configlet 使用它根据提供的system_name到位置映射列表更改 SNMP 位置字段。
属性集
{ "created_at": "2022-08-26T13:20:04.488463+0000", "updated_at": "2022-08-28t18:57:41.169692+0000", "values_yaml": "PS_SNMP_Locations:\n leaf1: DC-Room1-Rack32\n leaf2: DC1-room1-Rack34\n leaf3: DC1-Room1-Rack33\n spine1: DC1-Room1-Rack30\n spine2: DC1-Room1-Rack31\n", "values": { "PS_SNMP_Locations": { "spine1": "DC1-Room1-Rack30", "spine2": "DC1-Room1-Rack31", "leaf1": "DC1-Room1-Rack32", "leaf3": "DC1-Room1-Rack33", "leaf2": "DC1-Room1-Rack34" } }, "label": "PS_SNMP_Locations", "id": "c4006bb8-f8f4-4aa7-82c3-8da5dfc03c43" }
Configlet
{ "ref_archs": [ "two_stage_l3clos" ], "generators": [ { "config_style": "junos", "section": "system", "template_text": "{% if PS_SNMP_Locations[hostname] is defined %}\nsnmp {\n location \"{{PS_SNMP_Locations[hostname]}}\";\n}\n{5 endif %}\n", "negation_template_text": ::, "filename": "" } ], "created_at": "2022-08-26T13:23:57.2720142", "id": "b2739659-897d-4fa2-a8e9-2060ae1c045f", "last_modified_at": "2022-08-26T13:29:40.1924382", "display_name": "SNMP_location" }
从左侧导航菜单中,导航到 “设计>属性集 ”以转到“设计”目录中的属性集。您可以创建、克隆、编辑和删除属性集。