
- •Предмет совместного использования
- •Копирование файлов
- •Install опции [каталог-адресат];
- •Вытягивание Файлов: система expect
- •Сетевая информационная служба
- •"Волшебные ключики" nis
- •Сетевые группы
- •Пренмушества и недостаткн nis
- •Обзор системы nis
- •Конфигурирование клиентов nis
- •Другие системы управления базами аанных
- •Назначение приоритетов источникам административной информации
Совместное использование системных файлов. NIS и NIS+
Введение
Нормально функционирующая система зависит от десятков, иногда даже сотен файлов конфигурации, каждый из которых должен содержать корректные данные. Умножьте количество файлов конфигурации, имеющихся на одной машине, на число машин, работающих в сети, и Вы получите в результате тысячи файлов — слишком много, чтобы управлять ими вручную.
В реальном мире — с административной точки зрения — многие машины удивительно похожи одна на другую. Вместо того чтобы редактировать текстовые файлы на каждой машине, гораздо эффективнее будет объединить машины в группы, совместно использующие информацию о конфигурации. Это можно сделать несколькими способами.
Простейший метод заключается в удалении всех текстовых файлов и выдаче каждой машине информации о ее конфигурации с центрального сервера. Делать это сложнее, чем просто копировать файлы, но зато попутно решаются некоторые другие проблемы. Например, клиенты в любом случае будут получать исправленные редакции файлов, даже если во время внесения изменений машина-клиент была отключена. Кроме того, получать информацию с сервера в некоторых случаях можно быстрее, чем из файла (это зависит от быстродействия локального диска и объема кэширования, выполняемого сервером). С другой стороны, отказ сервера может привести к зависанию всей сети.
Имели место попытки разработки административных баз данных для больших сетей, в результате чего созданы интересные системы. К сожалению, ни один из ведущих продуктов не являются безупречным по своей идеологии. Некоторые из них просты, но не отличаются достаточной степенью безопасности и возможного расширения, а некоторые обладают хорошими функциональными способностями, но чересчур тяжеловесны. Всем этим системам присущи ограничения, которые могут помешать правильно построить сеть.
Ниже рассматриваются некоторые базовые методы обеспечения синхронизации файлов в сети.
Предмет совместного использования
В Unix-системах имеется много файлов конфигурации, но совместно использоваться несколькими машинами могут далеко не все из них. Наиболее распространенные совместно используемые файлы перечислены ниже.
-
Имя файла
Функция -
/еtс/passwd
Файл, в котором содержится информация о пользовательских бюджетах
/etc/group
Определения UNIX-групп
/etc/hosts
Соответствия между именами машин и их IP-адресами
/etc/networks
Связывает текстовые имена сетей с сетевыми IP-номерами
/etc/services
Перечень номеров портов популярных сетевых услуг
/etc/protocols
Соответствия между символьными именами и номерами протоколов
/etc/ethers'
Соответствия между именами машин и Ethernet-адресами
/etc/aliases
Псевдонимы электронной почты
/etc/rpc
Перечень идентификационных номеров услуг RPC
/etc/netgroup
Определения совокупностей машин, пользователей и сетей
Большинство систем, функционирующих на основе серверов, настроены так, чтобы работать только с этими и (иногда) еще с несколькими файлами. В некоторых случаях возможно добавление еще нескольких файлов, но, поскольку стандартное системное программное обеспечение не будет обращаться к ним автоматически, эта особенность наиболее полезна для совместного использования локальных файлов. Доступ к перечисленным выше файлам о6ычно осуществляется через подпрограммы, определенные в стандартной библиотеке С. Например, поиск в файле /etc/passwd производится подпрограммами getpwuid, getpwnam и getpwent. Эти подпрограммы берут на себя открытие, чтение и синтаксический разбор файла passwd, так что этого не нужно делать подпрограммам пользовательского уровня.
Поскольку лишь немногие программы обращаются к вышеперечисленным файлам конфигурации непосредственно, перестроить систему на использование сетевой базы данных относительно легко. При корректировке библиотечных подпрограмм большинство программ-клиентов автоматически модифицируется. Даже программное обеспечение, полученное Вами бесплатно или от третьих фирм-поставщиков, обычно работает нормально при условии компиляции его с новой библиотекой.
Копирование файлов
При сопровождении сети можно использовать копирование файлов методом грубой силы. Это решение не из элегантных, но работает на всех типах машин и отличается простоту настройки и сопровождения.
В руководствах (в соответствии с общими принципами Unix-культуры) предполагается, что будет использоваться системы типа NIS и NIS+, если таковая имеется. Если, однако, у Вас нет сложных задач, то и сложное решение Вам не нужно. Иногда самое тупое, самое тривиальное решение оказывается самым лучшим.
Если организация состоит из нескольких связанных, но независимые "владений". Совместно используется лишь незначительная часть административных данных. В нашей схеме распространения файлов каждое владение имеет один-два сервера, на которых хранятся оригиналы его системных файлов. Это — разновидность среды, в которой копирование файлов работает хорошо, поскольку задача сводится просто к перекачке данных» без подгонки их под условия конкретных машин или сетей.
Системы копирования файлов могут пользоваться моделью проталкивания (push) или моделью вытягивания (pull). В модели проталкивания главный сервер периодически рассылает самые свежие файлы каждому клиенту независимо от желания последнего. Файлы могут проталкиваться явно при каждом изменении или просто регулярно распространяться согласно графику (при этом, вероятно, одни файлы будут пересылаться чаще других).
Преимущество модели проталкивания заключается в том, что система распространения работает централизованно, на одной машине. Файлы, списки клиентов, откорректированные сценарии и расписания хранятся» одном месте, что делает эту схему простой в управлении. Есть у нее и недостатки: каждый клиент должен позволять главному серверу модифицировать свои системные файлы, что не всегда приемлемо с точки зрения безопасности.
В модели вытягивания каждый клиент отвечает за обновление самого себя с помощью данных, запрашиваемых им с сервера. Это менее централизованный способ распространения файлов, но он более гибок и безопасен. Система вытягивания особенно привлекательна при совместном использовании данных с пересечением ими различного рода границ, поскольку вовсе не обязательно, чтобы главной машиной и машиной-клиентом управляла одна команда.
Проталкиванне файлов: комада rdist
В большинстве случаев наилучший способ распространения файлов с центрального сервера — команда rdist. В ней есть сходство с командой make: вначале в текстовом редакторе пользователь составляет спецификацию файлов, подлежащих рассылке, а затем с помощью rdist осуществляет операции пересылки в соответствии со спецификацией. Команда rdist копирует файлы только в том случае, если их копии устарели, поэтому Вы можете задать в спецификации копирование всех файлов, a rdist самостоятельно определит, какие файлы и когда следует копировать.
Команда rdist сохраняет информацию о владельце, группе, коде прав доступа и времени модификации файла. Когда rdist обновляет существующий файл, то перед инсталляцией нового она удаляет старую версию. Это позволяет использовать rdist для пересылки выполняемых файлов, которые, возможно, будут задействованы во время обновления.
Как и make, rdist ищет в текущем каталоге управляющий файл (distfile или Distfile). Команда rdist -f distfile задает путевое имя управляющего файла явно. В качестве разделителей в этом управляющем файле используются знаки табуляции, пробелы и признаки новой строки. Комментарии вводятся знаком фунта (#),
Тело управляющего файла состоит из операторов, имеющих следующий синтаксис:
метка; путевые имена -> адресаты команды
Поле метка является именем данного оператора. Из shell Вы можете дать команду rdist метка, которая обеспечит рассылку только тех файлов, которые описаны в конкретном операторе.
Поля путевые_имена и адресаты — это перечень файлов, подлежащих копированию, и перечень машин, на которые их нужно копировать. Если в списке больше одного элемента, его нужно заключить в скобки, а элементы разделить. Список путевые_имена может включать метасимволы, допустимые для C-shell (например, /usr/lib/* или /usr/man/inan[12345]) . Приемлема также запись ~пользователь, но соответствующие ей значения на машине-отправителе и машине-адресате могут не совпадать.
По умолчанию rdist копирует файлы и каталоги, перечисленные в списке путевые_имена, в эквивалентные пути на каждой машине-адресате. Этот порядок можно изменить, указав последовательность команды. Каждую команду следует завершать точкой с запятой.
Можно использовать такие команды: