Current stable version: 0.4.1
Current bleeding version: CVS (devel-0_5 tag)

We were using PIKT and we were ALMOST happy with it. The list of ``issues'' was basically this:

  • We wanted to be able to send files from arbitrary hosts to arbitrary hosts. Because of the client-server PIKT model, we needed to install synchronized masters and slaves in every machine we wanted to copy data to and fro. That was annoying.
  • We didn't like using RPC (rpc_portmapper + pikc_svc). We were using SSH in all servers and would like to use it as the only method to access them. Also, SSH is more secure.
  • We already had some system checks in perl, and we wanted to use them. PIKT has a script language with a lot of useful features, but we didn't use it.
  • We didn't like PIKT syntax. We needed a more powerful macro and condition system.

Of course, we liked a lot of ideas in PIKT, so we used them.


Sure PICA has lots of features to make you happy. No, sorry, it can't do you laundry for you... well... not yet (after all, it's written in Perl)... By now, it can:

  • Copy files from one machine to an arbitrary number of them, using various methods (simple ssh, tar'ed archive copied by ssh).
  • Allow you to define machine and object groups, to handle all this mess easily and efficiently.
  • Execute arbitrary commands in remote machines (as long as you provide the password or use RSA authentication).
  • Show differences (diff -u) between objects (files) you care for, in their installed and current versions.
  • Delete objects from remote machines.
  • Show the object list seen by a given machine.
  • Help you creating, installing and deleting alarms.

Everything is SSH and Perl based. You can use Perl expressions almost anywhere, and those nasty script kiddies won't sniff your stuff. Oh, and you'll realize we love using eval to bring PICA the whole power of Perl!

If you want to, you can read the original article we wrote for SysAdmin.