Регулярное исполнение шаблонов на клиентских машинах.

Приветствую, сообщество.
Предлагаю поделиться опытом кто как решил/не решил проблему регулярного выполнения шаблонов на клиентских машинах. Например по cron выполнять cl-core --method some-method.
Выполнение шаблонов при логине пользователя не предлагать :slight_smile: Некоторые юзвери не перезагружаются месяцами.
Интересует какой метод лучше для этого использовать, и под какое событие шаблоны писать?

Перенесено из источника

cl-core-setup можно использовать для того, чтобы наложить шаблон какого-то конкретного приложения

Как я, например, это вижу. Синхронизируете по крону каталог шаблонов и применяете шаблон конкретного приложения. Если вам не привязать шаблон к чему-то конкретному, можете сделать и фейковое приложение и держать его в своем локальном оверлее.

Хех, это действительно вариант, но фу как некрасиво. Других альтернатив нет?
Было бы замечательно получить спец событие для этого. Н-р: system_configure==up Для контроля за проведенными действиями использовать /etc/calcualte/ini.env по аналогии с ~/.calculate/ini.env.

Что если я захочу поставить/обновить некоторый случайный пакет сразу всем клиентам, лично заходить по cssh и красноглазить? Другое дело написать шаблончик/скриптик который при следующем cron выполнится :slight_smile:

Приведите пример, что Вы хотите менять по крону.

Сергей Федотов wrote:

Что если я захочу поставить/обновить некоторый случайный пакет сразу всем клиентам, лично заходить по cssh и красноглазить? Другое дело написать шаблончик/скриптик который при следующем cron выполнится :slight_smile:

Скриптик закидывается в общий remote-ресурс, настраивается ssh доступ по ключам с сервера на клиенты и в скриптике уже на сервере циклично заходите по ссш на машины в сети и выполняете этот скрипт из общего ресурса.

Yuri Blohin wrote:

Скриптик закидывается в общий remote-ресурс, настраивается ssh доступ по ключам с сервера на клиенты и в скриптике уже на сервере циклично заходите по ссш на машины в сети и выполняете этот скрипт из общего ресурса.

Так тоже сработает, но может случиться что сервер будет стучаться в закрытые двери. Вы представьте что машин несколько сотен, какие-то просто выключены, а когда включаться неизвестно. Шаблоны в этом случае 100% выполнились бы, хоть спустя месяц.

Alexander Tratsevskiy wrote:

Приведите пример, что Вы хотите менять по крону.

Более всего мне может потребоваться:
Установить/обновить конкретный пакет.
Менять настройки прокси.

По крону скрипт на машинах может выполнять локальные шаблоны при включении/выключении/входе в сеанс, каждый час или при вызове утилиты с сервера через ssh (‘ssh -o ‘StrictHostKeyChecking=no’ root\@$ip $exec’), просканировав сеть перед этим.

Шаблоны можно построить таким образом, что они будут отписывать версию изменений, как это делается с ~/.calculate/ini.env файлом в пользовательской директории. Эта же функция может работать с ini.env в директории /etc. Если Вы ставите пакет в то время, как в системе работают пользователи, они получат обновления.

2Alexander Tratsevskiy:
Именно так я это все и хочу видеть :slight_smile: Интересует лишь способ “поправильнее”. Какой метод использовать, какое событие.
Например могу ли я использовать событие ac_desktop_desktop==up совместно с cl-core – method desktop #- ur_login -# в cron, для настройки системных файлов. Или все же правильнее будет сделать как предложил Юрий, с фейковым приложением. Раньше можно было выполнить cl-templates -l место-шаблонов, а сейчас?

Раньше можно было выполнить cl-templates -l место-шаблонов, а сейчас?

А теперь ‘cl-setup-system -l local’.

Все же несуществующие приложения лучше не создавать, либо привязаться к существующему, но никогда не используемому. А чем плох вызов выполнения локальных шаблонов? Дальше в них можно описать любые условия и события.

Alexander Tratsevskiy wrote:

А чем плох вызов выполнения локальных шаблонов? Дальше в них можно описать любые условия и события.

Ни чем не плох :slight_smile: Просто в моем конкретном случае, мне кое-что непонятно.

Моя переменная cl_template_path = /var/lib/layman/calculate/profiles/templates,/var/lib/layman/tm-calculate/profiles/templates,/var/calculate/remote/templates

Я так понял cl-setup-system будет брать места шаблонов из этой переменной?
Что в данном случае будет считаться локальными шаблонами? Шаблоны из моего оверлея? Если так то мне это подходит.

Какое событие генерирует метод cl-setup-system? ac_install_system?

В 3.1 на смену ac_install_system придёт более логичное имя ac_install_disk.
cl-setup-system устанавливает несколько событий: ac_install_merge, ac_install_live и ac_desktop_merge.
Для cl_template_path есть переменная соответствий cl_template_location.

Хорошо, спасибо за ответы.