The LDAP support in current release unattended is broken, because there
is no /etc/protocols file. I added this to my config.pl, because I
didn't feel like rebuilding the images, and putting it in
linuxaux/etc/protocols didn't work...
open(PROTO, /etc/protocols);
print PROTO ip 0 IP\n;
print PROTO icmp 1 ICMP\n;
print PROTO tcp 6 TCP\n;
print PROTO udp 17 UDP\n;
close PROTO;
I'm sure the correct fix is nice and simple however :-)
With this, I can do a lookup in LDAP for the macAddress, and find the
registered name for the machine. I intend to use if for OS selection
and other things shortly. We should develop a common 'unattended'
schema, to save each site inventing their own.
$u-{'UserData'}-{'ComputerName'} =
sub {
my $macaddr = $u-{'_meta'}-{'macaddr'};
my $ds= Net::LDAP-new('ldap.internal.hawkerc.net.') or die $@;
my $basedn = dc=hawkerc,dc=net;
$ds-bind() || die bind failed!;
my $attrs = [ 'cn', 'macAddress' ];
my $splitmac = join(':',split(/(..)/, lc($macaddr)));
$splitmac =~ /\:(.*)/;
$splitmac = $1;
$splitmac =~ s/\:\:/\:/g;
my $mesg = $ds-search(
base = $basedn,
filter =
(((objectClass=ieee802device)(macAddress=$splitmac))(cn=*)),
attrs = $attrs,
);
if ($mesg-count != 1) {
die Could not find computer in LDAP! (found mac address .
$splitmac. .$mesg-count. times in ldap);
}
return $mesg-entry(0)-get_value('cn');
};
The unattended system just saved me a lot of work last night - I rebuilt
a whole lab of computers, with most of the time taken by teaching them
to boot of the network and entering passwords (which I don't trust in an
anonymous share...).
Thanks!
Andrew Bartlett
--
Andrew Bartlett [EMAIL PROTECTED]
Authentication Developer, Samba Teamhttp://samba.org
Student Network Administrator, Hawker College [EMAIL PROTECTED]
signature.asc
Description: This is a digitally signed message part