Viper - Adding clients and hosts

We use the word client to refer to someone who pays for goods or services, and the word host to refer to any computer that is hooked up to a computer network. (Thanks WordNet 2.0 for definition).

Adding a client

To set up a new client, take a look at ldifs/, a template file for a default client "" that you can use as basis for new clients (copy to new name, modify and extend).

You'll easily notice sections that do and do not require modification in the LDIF file. Fields you will want to modify include the name (, must correspond to domain name of the client), network subnet ( and related options), list of hosts, and hosts' MAC and IP addresses.

That about completes a simple client setup.

Adding a host

To add a host, copy an existing host definition (found within template ldifs/, and change the options, such as host name, MAC address, IP address and the list of puppet classes the host belongs to.

Viper (and DHCP) expect to find hosts by specific hwAddress search. This is not mandatory, you could assign an IP from the pool, but i.e. the preseed.cgi counts on being able to match the host and its configuration in LDAP based on the requestor's IP, so if possible, stick to literally-specified IP addresses.

Adding configuration values

The default Viper setup contains a set of Debconf keys that suffice to perform an automated install using preseeding.

The default keys (Debconf templates and questions) are not under host or client entry, but in the global ou=defaults tree, where they are queried if values are not found at any previous level (site-wide level at ou=defaults,,ou=clients, or host-specific level at cn=HOST,ou=hosts,,ou=clients).

So you should first go over the defaults in ldifs/0-defaults.ldif and verify the values (search for occurrences of "value:"). You can modify the defaults, or override them on site- or host-level by copying over to your client's LDIF, adjusting the DN and changing the value.

For information on how to apply the new values, and in general for a page dedicated to configuration values, see values.html.