#!/usr/bin/perl

# add-puppethost.pl

use Net::LDAP;
use Net::LDAP::Util qw(ldap_error_text ldap_error_name);

# put your ldap info here

my $ldaphost = "";
my $ldapuser = "";
my $passwd = "";
my $base = "";

if ($#ARGV != 2) {
    print "Usage: $0 fqdn ipaddress description\n";
    exit 1;
}

my $fqdn = $ARGV[0];
my $ip = $ARGV[1];
my $desc = $ARGV[2];



$ldap = Net::LDAP->new ( $ldaphost ) or die "$@";

$mesg = $ldap->bind ( "$ldapuser",
                      password => "$passwd",
                      version => 3 );

if ($mesg->code) {
    die "An error occurred binding to the LDAP server: "
        .ldap_error_text($mesg->code)."\n";
}

$result = $ldap->add("cn=$fqdn,$base",
                     attr => [ 'cn' => $fqdn,0],
                               'ipHostNumber' => $ip,
                               'description' => $desc,
                               'objectClass' => 'device',
                               'objectClass' => 'puppetClient',
                               'objectClass' => 'ipHost'
                               ]
                     );

if ($result->code) {
    die "An error occurred adding the host $fdqn: "
        .ldap_error_text($result->code)."\n";
}



$ldap->unbind;