Hi,
I've been wondering: is there a standard (or
common) way of loading IOC configuration data upon power up?
If one have a site with, say, 100 computers (x86), each
running an IOC, then what would be the best way to load their
configuration? I'm thinking basically in two scenarios where
this would be necessary:
1. During testing, when configuration (and/or
binaries) might change often
2. Diskless systems, which don't have local
storage and must load their data when they boot
Suppose there is a DHCP server which gives them
their IP addresses. For the diskless systems, I think
something like PXE to boot a Operating System would be
necessary.
Then, once booted, I thought about some solutions:
1. Mount remote folders residing in a server, via
NFS. Maybe the name of the folder would contain the IP address
of the interface, so you could have, for instance, a file tree
in the server that would look like:
nfs/
general/ --> for all IOC's (binaries, maybe)
10.0.0.2/ --> for each IOC
(st.cmd, .db files, etc)
Would this solution overload the network? This is
the simplest solution, I think.
2. Use the same scheme above, but copy all the
necessary data locally, then umount the NFS folder. In a
system with local storage, this copy could happen
conditionally, only if the local files differ from the remote
ones. There would be a lot of shell scripts to be written.
3. Write scripts that run in the server and use
scp to copy the files to the computers. The server would have
to keep track of the versions of the files in the systems with
disk to avoid unnecessary copies.
4. Use git. Since I'm already checking for
different versions, why not go full version control? In this
situation, there would be a "general" git repository and then
one repository for each IP. Once booted, a computer would
simply do a git pull (or a git clone if it is a diskless
system) and then it would have all the latest files locally.
Of course, this is a naïve approach. So, before
going into the trouble of implementing and testing these, I
came here to see if any of you could point out a better way of
doing this, or if you have advice about any of those four
"solutions".
Thanks in advance!
Best regards,