AnsweredAssumed Answered

Nimbus robot via rpm cookbook

Question asked by david.pippenger on Mar 11, 2009
Latest reply on Mar 24, 2010 by david.pippenger

I run a large number of systems and the provided installer was not acceptable for my deployments. Through a bit of trial and error and some hints from the devs I have been using rpms for deployment since like 2.70. I thought I would share...

The goal here is to just get the 3 core components of the robot deployed via rpm. Actual probe deployment is another topic entirely but is somewhat more managable once you have the robot in place automatically. So the 3 components are controller, spooler, and hdb. The tricks here could be expanded to handle other probe types as well.

So a bit of background on what the controller does and does not care about in the install directory. It *does not* care about modifications made to any cfg files *except* the controller.cfg. It *does* care about any modifications made to probe binaries, but only after they are listed in the controller.cfg with a magic_key. The magic key is created unqiuely per system so we have to convince the controller to do this work for us and it's impossible for us to create a fully loaded controller.cfg.

The way we do this is by first getting a full set of installed binaries and default configs by using the nimldr program on a system. Don't install any probes and tar up that dir to put elsewhere for you to work. You need to clean up the directory so you only have the following files and directories (you may need to add the robot/changes directory)

./tmp
./bin
./bin/inst_init.sh
./bin/nimqosdefinition
./bin/pu
./bin/nimbus
./bin/nimalarm
./bin/niminit
./bin/nimqos
./probes
./probes/system
./probes/database
./probes/service
./probes/service/hdb
./probes/service/hdb/hdb.cfx
./probes/service/hdb/hdb.cfg
./probes/service/hdb/hdb
./pids
./robot
./robot/controller
./robot/expire.cfg
./robot/changes
./robot/spooler
./robot/controller.cfg
./robot/expire.crc
./robot/q1.rdb
./robot/pkg
./robot/pkg/ready
./robot/pkg/temp
./robot/pkg/inst
./robot/pkg/inst/installed.pkg
./robot/spooler.cfg
./robot/q2.rdb
./robot/pids

Once you have have removed all of the old pid files, logs and various other bits you should end up with just about the same list of files. I removed the robot.cfg also since it has host specific config data from the system you perfromed this install.

Next you want to empty the controller.cfg file, it should be zero bytes. One that is complete you need to edit the installed.pkg file under the the robot/pkg/inst directory. You should see something like this in that file if you did a clean install.

<robot_core>
   <LINUX_23>
      version = 3.12
      update = controller, spooler, hdb
      install_date = 1236637268
      <files>
         <controller>
            dir = robot
            check = yes
         </controller>
         <spooler>
            dir = robot
            check = yes
         </spooler>
         <hdb>
            dir = probes/service/hdb
            check = yes
         </hdb>
      </files>
      <spooler>
         active = yes
      </spooler>
      <hdb>
         active = yes
      </hdb>
   </LINUX_23>
</robot_core>



Outcomes