Hello


To the OP, I would keep everything centralized and in a repository. Then dedicate a test machine, or two, that you will use to deploy your updates and test the integrity of your automation system. If all goes well with the test, push the tested updates over to the production repos. That particular production system should automatically pull the updates on the next scheduled system update via cron or some custom polling system. If the updates crap out the production server, you can then revert your changes in the repos, the server will pick up the revert, and everything will be back to the original, hopefully. The only tricky part, for me to grasp, is how to execute a set of actions before/after updating/adding/deleting a system file if needed?

I am working on an automation system that will commence from OS installation. For instance, all the questions asked during OS installation can be placed in a config file on the central repos. To initiate an installation, run bsd.rd via CD or PXEBOOT. When asked whether to run install, upgrade or shell, run shell. Then ftp your system build script to the bare system and run it. The script will then run the installation for you and build you a base system, filling in the blanks. It will then "customize" the system by pulling individual updates meant only for that server. Command line interaction:

That's what cfengine do:
   - a simple daemon on the client hosts,
- a set of spec file that contains, what to do, in which cases (machine type, service provided, os type ....) - a set off predifined actions desined to be portable (packages install, file modes ...) - a reference repository to store config files and other file (under a source control repository)

an example of spec file :

control:

  any::
     inform = ( on )
     domain = ( foo.org )

     actionsequence = ( shellcommands )

shellcommands:

  any::

"/bin/echo Hello World"
  openbsd::
     "/bin/echo Openbsd Host"




We use it for our servers and machines and it works great, (about 70 servers and 150 workstation ). Setup for such and infrastructure is not trivial but far less complicated than tons of scripts...


To feet your needs, you can create another install set conaining cfengine and distribute is accross your managed machines


Cheers,
Frangois

Reply via email to