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



         

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


Учитывая информацию, передаваемую функции modify(), можно переписать для Net: : ЮАР предыдущую программу, меняющую Бостон на Индиану:

use Net::LDAP;

$server = $ARGV[0];

Sport = getservbynameC'ldap", "tcp") |j "389";

Sbasedn = "dc=ccs,dc=hogwarts,c!c=edu";

$scope = "sub";

Srootdn = "c!i=Manager, ou=Syste'ns, dc=ccs, dc-hogwarrs, do-edu".

$pw = "secret",

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

die "Невозможно соединиться с сервером Ssorver

$«>'\n": $c->bind(dn --> S'ootrin. password => $pw) or

die "Ошибка при соедимении; $@\n";

Ssearchob] = $c->search(base => Soasedn, fiiiei => "(l-Bosion)".

scope => $scope, attrs -s [''}.

typeso.il у => 1): dio "Ошибка поиска: ". Ssear-chonj->er! or

if (SsearchobJ){

(Sentries = $searcnopj->entries;

ОГ ( aPI't ' .OS ) {

Собираем все вместе

Теперь, когда нам известны все основные LDAP-функции, напишем несколько небольших сценариев для системного администрирования. Мы импортируем базу данных машин из главы 5 «Службы имен TCP/IP» на сервер LDAP и затем сгенерируем некую полезную информацию, основываясь на LDAP-запросах. Вот пара выдержек из этого простого файла (для того только, чтобы напомнить вам формат):

name: shimmer

address: 192.168.1.11

aliases: shim shimmy shimmydoodles

owner: David Davis

department: software

building: main

room: 909

manufacturer: Sun

model: UltraGO

name: bendir address: 192.168.1,3 aliases:

ben bendoodles owner: Cindy Coltrane department:

IT building: west room: 143

manufacturer: Apple model: 7500/100

Первое, что нужно сделать,  приготовить сервер каталогов для приема этих данных. Мы будем использовать нестандартные атрибуты, так что придется обновить схему сервера. Различные серверы выполняют это по-разному. Например, сервер каталогов Netscape имеет симпатичную графическую консоль Directory Server Console для подобных изменений. Другие серверы требуют внесения изменений в текстовые конфигурационные файлы. Работая с OpenLDAP, можно использовать нечто подобное в файле, включенном основным конфигурационным файлом для определения собственных пользовательских классов объектов для машины:




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