Perl для системного администрирования



         

LDAP: сложная служба каталогов - часть 24


Ssuffix = "ou=data, ou=systems, dc=ccs, dc=hogwarts, dc=edu";

$rootdn = "cn=Manager. o=University of Michigan, c=US";

$pw = "secret";

$c = new Net::LDAP($server.port => Sport) or

die "Невозможно соединиться с сервером Sserver: $@\n";

$c->bind(dn => Srootdn. password => Spw) or die "Ошибка при соединен;',

open(DATA,Sdatafile) or die "Невозможно открыть $datafile:$!\n";

while (<DATA>) {

chomp;

 в

начале новой записи создаем

if (,/"nare:\S'(. •)/'){

$d^="cn=$1. Ssbffix":

Sentry = new fiet: : LDAP 'E:"t'\.

$еп:г^,-аса( с *' . $i)

ne:xt i

$entry-vad<l( aliases'. [splitO]):

next }

$entry->add( "objectciass". [ "тор", "riacii'ie" ]):

$entry->dn($dn);

$res = $c->add($entry);

warn "Ошибка добавления для "

undef Sentry;

next; }

ft добавляем все остальные атрибуты

$entry->add(split(':\s*')); # считаем, что у атрибута только одно значение >

close(DATA); $c->unbind();

После того как данные были импортированы на сервер, можно приступить к довольно любопытным вещам. В следующих примерах мы будем поочередно обращаться к двум LDAP-модулям. Для краткости в каждом примере не будет повторяться заголовок, в котором устанавливаются конфигурационные переменные, и код для соединения с сервером.

Так что же можно сделать с данными, расположенными на сервере LDAP? Можно на лету создать файл узлов:

use Mozilla::LDAP;

Sentry = $c->search($basedn,'one','(objectclass=machirie) ,0.

'en','address','aliases'); die "Ошибка поиска:". $c->getErrorString()."\n" if $c->getErrorCode( ;.

if (SentryM

print "#\n\U host file - GENERATED BY $0\n

tt

DO NOT EDIT BY HAND!\n«\n"; while(Sentry)!

print $entry->{adflress}[0]."\t". $ег!!-у->{сп}[0]," ".

jdir(' ' .?{$e^rry->{a:iasesM V " i": $entry = Sc-'-nextEntr1, (): }; ) $o->close();

Вот что получается:




Содержание  Назад  Вперед