There are two config files used when a Swarm node boots:
A "BOOT CONFIG" file that tells the node what software to load (e.g. Swarm)
When booting from a USB stick, the boot config file is: "syslinux.cfg"
When using PXE boot, the boot config file is a file within the "pxelinux.cfg" directory of the tftp server.
You will need to create a unique boot config here for each node (see below for more info)
A "SWARM CONFIG" file that provides Swarm its settings.
If Swarm is passed a "castor_cfg" setting (specified in the above boot config file), it will attempt to use settings from the file given in that parameter (more info below)
Otherwise, Swarm will look for "node.cfg" on a local USB stick
You will need to use the castor_cfg paramter (see below for more info)
To have separate configurations for each node when using PXE boot:
Create Separate PXELINUX Boot Configs For Each Node: In your tftpboot/pxelinux.cfg/ directory, make a copy of "default" for each node & name these files based on the MAC addresses of each node (for details on the file naming convention, see "samples/Network-Boot/pxelinux.txt" on the Swarm USB stick). This allows PXE to pass each Swarm node a different config setting on boot.
Use Separate Config-List Files: Edit each of the 3 files Created in step #1 & add a castor_cfg parameter.
Now, PXE boot will use a separate boot configuration for each node and that boot config will use a different config-list for each node. The config-lists will reference a single file with all the common settings and a node-specific file with just the unique settings (in the example case vols parameter).