I've 4 Linux machines (1 32-bit laptop, 1 64-bit laptop, 1 64-bit desktop and 1 Raspberry Pi 2). Is there some opensource software to manage the installed packages, the configurations and the users on it? Also, it must be easy to add a 5th machine. If it requires a server, that server needs to run on a Raspberry Pi B+.
I was using Ansible for a similar size home cloud in my experimental project (I have Raspberry Pi as well).
The base CLI functionality is open source and free, the GUI (called Tower) is for money. In case of such low number of nodes, CLI is comfortable enough. It's using YML as configuration language (which I don't really like, but it's my personal problem).
There are minimal requirements for the host:
- ssh daemon running
- python installed
As you see, no agent is required, you only have to set up an account (with sudo rights) on the node.
You can organize your nodes by roles, and you can set up "playbooks", which contain items for specific roles or role groups.
Say, you set up "sql server" and "web server" roles, and create a "setup" playbook. Then you can define tasks "upgrade packages" for both rules, and "assume apache2 is installed" for only the "web server" role (it installs stuff if it's not installed, and does nothing if it's already installed).
Ansible has lot of modules in several function groups, but you can write yours in Python (I haven't needed it).
One more to consider is Puppet
Much like Chef they have open-source and commercial models.
Having used both I would say that although less configurable in the long run, Puppet has a shallower learning curve and is easier to get started with.