the mini design of license and network policy distribution - xcat2/xcat-core GitHub Wiki

license distribution

The full path/content of cumulus license file should be specified in key field in prodkey table

[root@c910f03c05k21 xcat-core]# tabdump -d prodkey
node:               The node name or group name.

product:    A string to identify the product (for OSes, the osname would be used, i.e. wink28

key:                The product key relevant to the aforementioned node/group and product combination

comments:   Any user-written notes.

disable:    Set to 'yes' or '1' to comment out this row.

how to initiate license distribution?

  • user run updatenode command against the switches
  • ztp

2 kinds of license distribution mechanism:

  • individual mode: the full path or content of the license file is specified in prodkey.key, the specified licenses are installed on the switches respectively
  • pool mode: the full path to the directory which holds the license files are specified in prodkey.key, the switches request the appropriate licenses from the pool

This actual distribution mode is determined by an environment variable "PRODKEY" in mypostscript(.post) on the switch, which denotes 2 types of values in the prodkey.key attribute described above

configuration distribution

the configuration files are distributed to node/switch via syncfiles. The synclist file can include the following sections:

  1. the src and dst of files to sync
  2. the commands following EXECUTE/EXECUTEALWAYS to apply the configuration files, i.e, restart services, or send SIGHUP

currently synclist only bind to osimage, need to support synclist for node and group.

the synclists will be a node/group attribute, user specified the relevant synclist for the specified node or node groups.

like the the behavior of sycfiles , user can run commands like updatenode/xdsh to distribute the configuration files actively, or add syncfiles in postbootscripts to distribute the configuration files during switch ztp process

⚠️ **GitHub.com Fallback** ⚠️