Introduction aux jeux de propriétés (conception de centre de données)
Les jeux de propriétés sont des ensembles de données qui définissent les propriétés de l’appareil. Ils fonctionnent en conjonction avec les configlets et les sondes Analytics. (Les modèles de configuration des blueprints Freeform utilisent également des jeux de propriétés, mais ils ne sont pas liés aux jeux de propriétés du catalogue de conception, comme indiqué ici.) Au lieu d’incorporer des données directement dans des configlets ou des sondes, vous pouvez stocker les valeurs des variables dans un jeu de propriétés, puis faire référence au jeu de propriétés à partir du configlet ou de la sonde. Cela vous donne de la flexibilité au cas où vous voudriez modifier les valeurs plus tard. Une fois que vous aurez créé votre blueprint, vous importerez vos configlets et jeux de propriétés du catalogue Design (global) dans le catalogue de blueprints.
Mais d’abord, vous devez écrire le jeu de propriétés (et le configlet ou la sonde qui l’utilisera). Vous pouvez l’écrire en JSON ou en YAML. Vous pouvez utiliser des paires clé-valeur, des listes, des dictionnaires et toute combinaison de ces structures de données en les imbriquant.
Vous trouverez ci-dessous un exemple de jeu de propriétés et de configlet qui l’utilise pour modifier le champ d’emplacement SNMP en fonction d’une liste fournie de system_name à mappage d’emplacement.
Ensemble de propriétés
{ "created_at": "2023-08-26T13:20:04.488463+0000", "updated_at": "2023-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" }
Vous pouvez entrer les détails du jeu de propriétés dans n’importe quel ordre, mais lorsque vous ouvrez un jeu de propriétés après l’avoir créé, il aura été automatiquement trié par ordre alphabétique (selon la fonction de dictionnaire Python). Par exemple, si vous créez l’ensemble de propriétés ci-dessus, il sera trié comme indiqué ci-dessous.
{ "created_at": "2023-08-26T13:20:04.488463+0000", "id": "c4006bb8-f8f4-4aa7-82c3-8da5dfc03c43", "label": "PS_SNMP_Locations", "updated_at": "2023-08-28t18:57:41.169692+0000", "values": { "PS_SNMP_Locations": { "leaf1": "DC1-Room1-Rack32", "leaf2": "DC1-Room1-Rack34", "leaf3": "DC1-Room1-Rack33", "spine1": "DC1-Room1-Rack30", "spine2": "DC1-Room1-Rack31" } }, "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" }
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" }
Dans le menu de navigation de gauche, accédez à Jeux de propriétés de conception > pour accéder aux jeux de propriétés dans le catalogue de conception. Vous pouvez créer, cloner, modifier et supprimer des jeux de propriétés.