We use TheForeman.
I never really tested anything else, since it worked very well from the beginning for me and so far I can highly recommend the project.
Foreman is a complete life cycle management, though you can use it as ENC / Puppet master only.
We mainly choose Foreman because I had prior experience, RH(EL) platform well supported, oVirt well supported as compute resource. Note, though RedHat staffs the project support on other platforms then EL sees to be quite as good according to Users at the ML.
I will answer your questions from top to bottom:
- Mostly Ruby, some Python
- I think the hostgroup' concept matches node inheritace closely. Hostgroups can be nested as well
- Parameterized classes are fully supported. Class parameters can be set on class (most global), environment, OS, architecture, hostgroup, host level to name a few. The precedence order can be set for every single parameter.
- Not yet, but very soon
- GNU GPL v3 or newer
Let me add to that:
- Global variables can be added and are available to your manifests as expected
- There is currently a discussion on the ML to move to Hiera and maybe drop the ENC concept. This highly depends on the Puppet project of course and is in the far future.
- Facts and trends are collected as well as logs
- Great CLI (called Hammer)
- RestAPI, LDAP auth and all' the modern stuff you can expect from a current project
We run Forenan in a small sized VM on EL7. AFAIK RH / EL is the devel platform for the project. Binary packages and full support is available for these distros:
- Red Hat Enterprise Linux 6 or 7
- CentOS, Scientific Linux or Oracle Linux 6 or 7
- Fedora 19
- Debian 8 (Jessie)
- Debian 7 (Wheezy)
- Ubuntu 14.04 (Trusty)
- Ubuntu 12.04 (Precise)