Нужно настроить PXE-сервер с доменом и вход PXE-клиентов в этот домен при старте (загрузке по сети). Настроили по документации. Клиент загружается под гостем, в домен не входит - в консоли просит пароль, хотя пароль для входа в домен указывали в настройках в файле: /var/calculate/pxe/os/cldx_13.6.1-x32/pxelinux.cfg/default
DEFAULTPARAM calculate=domain:192.168.1.17,domain_pw:XXXXXX
К указанному домену пытается подключаться, монтирует шару, но пароль всё равно запрашивает в консоли. Ну и под гостем автоматом заходит.
По ссылке: http://www.calculate-linux.org/blogs/show/355
Описано как кое-чего побеждать наложением шаблонов. Положил эти шаблоны - они не накладываются на клиента.
ПРо шаблоны почитал, зачем они и какие они бывают - понятно. Но не понятно кем и когда они накладываются, реализация этой задумки не видна - документации нет и внятных примеров нет, либо я не нашёл.
Проблема больше в непонимании логики работы системы.
Вопрос не в нюансах настройки под конкретную задачу. Вопрос в том, чтобы понять принцип работы системы calculate, на каком этапе загрузки накладываются шаблоны, в каких ещё случаях (читал, что при preinstall ещё накладываются). Откуда всё это запускается, в какую директорию ложить нужный шаблон, чтобы он накладывался именно в нужном мне случае и т.д.
Подобной документации нет. Или я не нашёл. Какая-нибудь блок-схема с описанием была бы…
Нашёл введение в шаблоны: http://www.calculate-linux.org/blogs/show/142
там про простые шаблоны, в примере используется утилита cl-template - у меня ни на сервере ни на клиенте - её нет.
Правда внизу приписка, что в новых версиях примеры работать не будут. Но утилита-то должна быть…
Вообще, документация, на мой взгляд, отличается множеством деталей высокого уровня и простым описанием начального уровня, а серединки - нет
Может я плохо искал?
Возможность автоввода в домен сломалась из-за изменений порядка загрузки - поправим в ближайшее время.
Вообще, документация, на мой взгляд, отличается множеством деталей высокого уровня и простым описанием начального уровня, а серединки - нет
К сожалению документация не всегда поспевает за изменениями в утилитах. cl-template давно не используется.
Вопрос в том, чтобы понять принцип работы
Шаблоны выполняются при разных событиях: настройка системы при первой загрзки/livecd (вызов в init.d/calculate), настройка пакета во время установки (cl-core-setup в profile.bashrc), настройка сеанса в момент входа пользователя в сеанс (cl-desktop), обновление настроек при обновлений портежей (cl-update в eix-sync.conf) и т.д. Выбор какие шаблоны нужно выполнять зависит от переменных ac_. Они описываются на странице http://www.calculate-linux.ru/main/ru/templates\_variables, которая к сожалению устарела. В ближайшее время мы будем ее обновлять.
Спасибо за направления.
Можно ещё тогда пару вопросов?
Правильно ли я понимаю, как работает загрузка calculate по PXE:
1. Загружается ядро - ему через параметры командной строки передаются параметры домена, доменконтроллера и пароля для входа в домен
2. На этапе инициализации запускается /etc/init.d/client
Где производится монтирование удалённой директории remote, где, в том числе, лежат и темплейты “remote”.
Производится вход в домен
Производится наложение темплейтов для домена
3. После запускается calculate-core, который обеспечивает удалённое управление компьютером для админских задач
Как я понял, вход в домен осуществляется с помощью утилиты cl-client:
cl-client $SERVERLIVE
Нужные переменные берутся через
cl-core-variables-show --only-value client.$varname
При этом cl-client спрашивает пароль для входа в домен. В опциях есть опция: --domain-password, которой не передаётся параметр… Как быть?
И вопрос по системе:
Откуда переменные берёт cl-core-variables-show (он же /usr/sbin/cl-core) на этапе загрузки? Подключается к серверу calculate-core, переданном в параметрах ядру?
Кто и как забирает параметры, переданные в параметрах ядру?
В директориях с темплейтами лежат файлы, например с таким содержимым:
# Calculate append=skip ac_client_domain==up&&os_remote_auth!=
Как я понял, данные темплейты будут выполняться, только если переменная ac_client_domain=up/on
На сервере cl-core-variables-show не показывает наличие такой переменной, почему?
На коиенте она есть, но в режиме “только на чтение”. Поменять с помощью -set нельзя. Прошёлся по всем calculate.env на сервере не нашёл упоминания ac_client_domain.
Попробовал прописать в /var/calculate/remote/calculate.env в секцию client:
ac_client_domain = on
my_test_var = on
Перезагрузил клиента - но cl-core-variables-show показывает всё тоже, что и до изменения: отсутствие my_test_var и ac_client_domain=off
Переменные действия только для чтения, и устанавливаются утилитами. Например переменная ac_client_domain==on будет при вводе машины в домен (cl-client ip_домена), при подключении remote (cl-client --mount), настройка пакета если машина в домене (cl-core-setup).
В последней версии утилит добавлена новая команда cl-core-custom, позволяющая выполнять шаблоны для произвольного действия. Фильтрация шаблонов производится по переменной ac_custom_name.
Например эта команда выполнит шаблоны в ветке где ac_custom_name==test
cl-core-custom test
Возможность добавлять пользовательские переменные через calculate.env пока отсутствует.
Документация по переменным действий (ac_) сейчас разрабатывается.
На сервере cl-core-variables-show не показывает наличие такой переменной, почему?
На сервере не установлены calculate-client и calculate-desktop - они там не нужны. Во всяком случае сейчас нет возможности безболезненно вводить сервер в домен.
Понятно.
Спасибо большое! Разобрался и начал “пилить” шаблоны.
Но наткнулся на странный “баг”. Такое ощущение, что ^ обрабатывается только для первой строки:
Просто изменить код - нельзя. Шаблоны могут отъехать из-за несовместимости. К тому же как указать начало файла, а не строки в шаблоне? В calculate-libs-3.1.7-r5 для format=patch будут добавлены две опции multiline и dotall.
Просто изменить код - нельзя. Шаблоны могут отъехать из-за несовместимости. К тому же как указать начало файла, а не строки в шаблоне? В calculate-libs-3.1.7-r5 для format=patch будут добавлены две опции multiline и dotall.
Ну как-то это не хорошо. Есть базовые понятия регексов. Для стороннего наблюдателя - это баг, а не фича. Лично мне пришлось “поприсядать”, походить вокруг этих “грабелек” и определить, что это не я виноват, а это особая баго-фича.
Так можно весь регекс переназначить, понаписать под это дело шаблонов и оставить всё как есть.
П.С. А как всё-таки в текущем положении определять начало строки?
Как тогда указать начало файла если ^ - начало строки?
Ну можно было добавить что-то вроде встроенных переменных из awk
к примеру <reg FNR==1 >^... для первой строки, и <reg FNR!=1 >... для остальных.
Это позволило-бы в одном шаблоне отдельно отрабатывать ситуацию с началом файла, и с началом строки. Правда, я не уверен, что парсер xml в pythonе не свихнется от таких пареметров (опять-же, обойти можно как в djangoFNR__gt=1).
Ну да сейчас это уже не важно. Необходимо было хоть какое-то решение этой проблемы.
Сейчас решение есть, зная работу python-а с регекспами, понять принцип этого формата несложно.
Наличие dotall тоже будет полезно, позволит работать с конфигами с многострочными параметрами, к примеру как в postfix-е.