MFU: Mass Firmware Update
MFU is designed to all a user to update, edit and save the BIOS and IPMI firmware accross multiple nodes through a single command.
Installation
- Scmsh must be installed on the host from which you will run the commands.
- Each node to be controlled must have the scmsh agent daemon installed on the system (scmnode).
Adding nodes to the scmsh
For each node to be monitored by scmsh a line must be added to the nodes.cfg file on the master node.
The line must contain four bits on information:
- Node Name
- Node Mac address
- Node Ipaddress / Hostname
- Port it will use to communicate (default 4422)
compute020=00:25:90:6C:DC:DE,compute020:4422
Running in Interactive Mode
To start MFU in interactive mode, navigate to the install directory and run the command:
./run_scmshRunning in Scripted Mode
MFU can also be scripted to automate fw updates across a cluster
# Assumes the following are set
export LANG=C
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH:/opt/scmsh/lib
export SCMSH_PATH=/opt/scmsh/
export SCMNODE_PATH=/opt/scmnode/
# then run with scmsh <cmd>, for eg
./scmsh list node
[local] (0ms)
blade1 (MAC: 00:25:90:95:30:90, IP: 172.28.1.22, Port: 4422)
compute020 (MAC: 00:25:90:6C:DC:DE, IP: compute020, Port: 4422)
icr (MAC: 00:25:90:6A:E9:B9, IP: 10.9.2.1, Port: 4422)
Total: 3MFU General Commands
You will see a command prompt appear. There are a small number of commands used in MFU
- cd
Navigate around the different folders in MFU
- list
lists the commands available in the current folder - similar to ls in linux.
- help
List every command and option possible to be run - not really that clear but may be helpful in some cases
- MFU commands
To run a command from MFU, naviagte to the correct folder and simply type the command. It will come up with help on waht options are needed for each command
MFU flags
- -n <nodename>
The list of nodes you want to run the command on
- -f (only needed for some commands)
The file name either to read or write
- -m (only needed for some commands)
The mode in which the command runs (eg raw or script).