В школьном отделении, в котором я работаю, у нас есть мастер Open Directory в каждой из дюжины школ. Есть настройки, которыми я хотел бы управлять в нескольких каталогах для нескольких рабочих или групп компьютеров.
Безумный способ сделать это - открыть каждый каталог по очереди (с помощью Workgroup Manager), выбрать все группы, которыми я хочу управлять, настроить все параметры и повторить для каждого сервера, надеясь, что я все сделаю правильно, и получить идентичные результаты.
Есть ли способ лучше?
Я подумал, что есть какой-то способ скопировать и вставить настройки из менеджера рабочей группы. Я знаю, что для экспорта и импорта настроек можно использовать какую-то команду. Похоже, что для этого должен быть инструмент. (Конечно, Workgroup Manager работал бы лучше, если бы мы использовали один мастер и несколько реплик, но мы не собираемся пробовать это снова в ближайшее время.)
Что ж, я начну отвечать на свой вопрос.
Чтобы получить список узлов с управляемыми настройками на удаленном мастере Open Directory Master, вы можете сделать что-то вроде этого:
dscl -u DIRADMINUSER -p -url HOST \
list /LDAPv3/127.0.0.1/TYPE MCXSettings \
| cut -d " " -f 1
Замените слова заглавными буквами правильными значениями. HOST - это IP или DNS-имя или ваш Open Directory Master. Параметр -url экспортирует значения в кодировке URL-адресов, что довольно удобно означает, что все они остаются в одной строке, и мы можем применить команду вырезания. Обратите внимание: если вы хотите указать пароль в командной строке вместо безопасного запроса, замените -p
с участием -P 'PASSWORD'
.
Для ТИПА вы, скорее всего, захотите использовать:
Допустим, у нас есть группа пользователей (TYPE = Group) под названием Grade5 (ITEMNAME = Grade5). Чтобы скопировать данные удаленно, мы могли бы заменить эту команду на:
dscl -u DIRADMINUSER -p HOST \
mcxexport /LDAPv3/127.0.0.1/TYPE/ITEMNAME \
-format plist \
-o EXPORTFILE.plist
Теперь вы не можете (легко) импортировать файл удаленно из-за Radar 4122565. Итак, скопируйте EXPORTFILE.plist в Open Directory Master, где вы хотите дублировать настройки, и в этом поле импортируйте его следующим образом:
dscl -u DIRADMINUSER -p \
/LDAPv3/127.0.0.1 mcximport /TYPE/NEWITEMNAME \
EXPORTFILE.plist
Обратите внимание, что можно управлять несколькими «доменами приложений» (например, файлами настроек). Чтобы узнать, какие из них, используйте:
dscl -u DIRADMINUSER -p HOST \
mcxread /LDAPv3/127.0.0.1/TYPE/ITEMNAME \
-format text \
| grep "App domain" | uniq | cut -d " " -f3-
Затем вы можете экспортировать только один домен приложения или даже домен приложения и определенный ключ.
dscl -u DIRADMINUSER -p HOST \
mcxexport /LDAPv3/127.0.0.1/TYPE/ITEMNAME \
-format plist \
-o EXPORTFILE.plist APP_DOMAIN KEYNAME
Я мог бы использовать "com.apple.dock" для APP_DOMAIN и опустить KEYNAME, если мне нужны все настройки для док-станции, и я мог бы использовать APP_DOMAIN com.apple.mcxprinting с KEYNAME для PrintFooter, если бы я хотел только печать настройка нижнего колонтитула для печати.
После экспорта настройки вы можете импортировать ее как обычно. (Я еще не тестировал, перезаписывает он что-то или нет.)
Наконец, обратите внимание, что можно использовать mcxread и mcxset вместо mcxexport и mcximport.
Вы можете экспортировать и импортировать ТОЛЬКО рабочие группы (в зависимости от ваших целей) через строку меню -> Сервер -> Экспорт (или Импорт). Я определенно с уважением склоняюсь перед сценарием оболочки в вашем последующем сообщении, но он может быть более высоким, чем вам удобно.
Кроме того, у вас может быть удаленный сервер просто «Подключиться к» Open Directory Master вместо того, чтобы делать их репликами. Вы получаете большинство из тех же преимуществ. Я лично управляю серверами Connected и Replica в течение многих лет. Я даже проделал оба этих варианта через сильно загруженные соединения T-1. (На самом деле, есть только две причины использовать реплику вместо настройки «Подключено». Одна связана с производительностью на удаленном сайте с большими задержками. Другая - для избыточности - главный компьютер может отключиться, а пользователи по-прежнему могут входить в систему. )
Может быть, это даст вам идеальное решение? Какие проблемы у вас были с репликами? Может, я смогу помочь, если тебе интересно.