Версия: 1.4
UBPile - система управления узлами сети, включающая механизмы автоматизации и оркестрации, предназначена для комплексного управления информационной инфраструктурой организации любого уровня. UBPile используется для автоматизации задач по развертыванию и конфигурации рабочих станций и серверов, управлению парком вычислительной техники, а также для координации действий ИТ-специалистов по управлению ИТ-инфраструктурой.
Cистему управления UBPile можно использовать на версиях UBLinux: Server, Desktop Enterprise и Education.
UBPile - веб-ориентированная система управления, обеспечивающая удобный и гибкий доступ к функционалу как с сервера управления, где непосредственно развернута, так и с любого узла сети при использовании стандартных веб-браузеров, гарантируя кроссплатформенность.
С помощью UBPile легко управлять узлами в сети (ПК, ноутбуки, интерактивные панели, серверное оборудование и т.д.), устанавливать/удалять пакеты и модули, настраивать параметры операционных систем и прикладного программного обеспечения, а также выполнять откат состояния операционных систем узлов сети. UBPile обеспечивает полный контроль параметров конфигураций узлов сети.
UBPile предоставляет администратору сети мощный инструментарий для создания и выполнения заданий по управлению узлами сети, а также мониторингу их состояния и возникающих событий. Система управления UBPile находится на более высоком логическом уровне и имеет более обширный и гибкий перечень функциональных возможностей, по сравнению с такими системами оркестрации как Ansible, Salt, Chef и Puppet.
Отличительные особенности:
Возможности UBPile по мониторингу состояния и журналированию системных событий узлов сети:
Возможности UBPile по управлению и настройке интерфейса пользователя на узлах сети:
Возможности UBPile по управлению учетными записями на узлах сети:
Возможности UBPile по управлению параметрами безопасности и восстановления работы узлов сети:
Возможности UBPile в управлении системными настройками на узлах сети:
Возможности UBPile в управлении сетевыми настройками:
Возможности UBPile в управлении подключенным оборудованием:
Вкладка «Главная», представляет собой страницу с панелью мониторинга, которая отображается сразу после входа в систему.
На ней отображается основная информация о сервере, текущих активных (выполняющихся) заданиях и список предстоящих заданий на ближайшие 24 часа
.
Страница разделена по вертикали на три основных раздела:
В этом разделе содержится сводка различных статистических данных. Некоторые из них представляют собой текущие итоги, а другие — ежедневные итоги.
Статистика | Описание |
---|---|
Всего событий | Текущее количество активных событий в расписании. |
Всего категорий | Текущее количество категорий событий в системе. |
Всего плагинов | Текущее количество зарегистрированных плагинов в системе. |
Сегодня завершенных работ | Количество заданий, выполненных сегодня (сбрасывается в полночь по местному времени сервера). |
Сегодня работ с ошибками | Количество заданий, которые сегодня завершились неудачей (сбрасывается в полночь по времени локального сервера). |
Процент успешных работ | Процент успешно завершенных сегодня заданий (сбрасывается в полночь по местному времени сервера). |
Всего серверов | Текущее общее количество серверов в кластере. |
Всего используется ЦП | Текущее общее использование ЦП (все серверы, все задания, все процессы). |
Всего используется ОЗУ | Текущий общий объем используемой оперативной памяти (все серверы, все задания, все процессы). |
Время работы главного сервера | Время, прошедшее с момента перезапуска UBPile на основном сервере. |
Средняя продолжительность работы | Среднее затраченное время для всех выполненных сегодня заданий (сбрасывается в полночь по времени локального сервера). |
Средний размер журнала заданий | Средний размер файла журнала заданий для всех выполненных сегодня заданий (сбрасывается в полночь по времени локального сервера). |
В таблице активных заданий перечислены все активные (выполняющиеся) в данный момент задания и различная информация о них.
Столбец | Описание |
---|---|
ID Задания | Уникальный идентификатор, присвоенный заданию. Следует нажать на него, чтобы увидеть ход выполнения задания в реальном времени. |
Название события | Имя запланированного события, которое запустило задание. |
Категория | Категория, к которой относится событие. |
Имя хоста | Имя хоста сервера, на котором выполняется задание. |
Прошло | Текущее время, прошедшее с момента запуска задания. |
Прогресс | Визуальное представление хода выполнения задания, если оно доступно. |
Осталось | Примерное оставшееся время, если оно доступно. |
Действие | Позволяет отменить задание. |
В этой таблице перечислены все предстоящие запланированные события на ближайшие 24 часа и различная информация о них.
Столбец | Описание |
---|---|
Название события | Название запланированного события. Нажатие на событие позволяет перейти в редактирование. |
Категория | Категория, к которой относится событие. |
Плагин | Плагин, который будет загружен для запуска события. |
Цель | Целевой сервер (группа серверов или имя хоста отдельного сервера), на котором будет выполняться событие. |
Запланированное время | Время когда запланировано выполнение задания (в местном часовом поясе, если не указано иное). |
Осталось времени | Сколько времени осталось до начала мероприятия. |
Действие | Нажатие на «Редактировать событие» позволяет открыть редактирование события. |
На этой вкладке отображается список всех событий в расписании, включая активные и отключенные. Отсюда можно добавлять новые события, редактировать существующие события, запускать события по требованию и переходить к истории и статистике событий.
Над таблицей с событиями расположена панель с кнопками действий и фильтрацией списка:
Ниже панели фильтрации расположена строка поиска и сортировка плагинов:
Столбец | Описание |
---|---|
Активный | Этот флажок указывает, активно ли событие или отключено. |
Название события | Название запланированного события. Следует нажать на имя для перехода в редактирование события. |
Категория | Категория, к которой относится событие. |
Плагин | Плагин, который будет загружен для запуска события. |
Цель | Целевой сервер (группа серверов или имя хоста отдельного сервера), на котором будет выполняться событие. |
Хронометраж | Сводная информация о настройках времени события (ежедневно, ежечасно и т. д.). |
Последний запуск | Текущий статус события (простой или количество запущенных заданий). |
Изменен | Дата последнего изменения события. |
Действия | Список действий, которые можно выполнить. См. ниже. |
Действия, которые можно выполнить для каждого события:
Действие | Описание |
---|---|
Запуск | Немедленно запускает событие (запускает задание по требованию), независимо от настроек времени события. |
Редактировать | Происходит переход на вкладку «Редактировать событие», чтобы отредактировать событие. |
Статистика | Происходит переход на вкладку «Статистика событий», где можно просмотреть статистику о событии и прошлых заданиях. |
История | Происходит переход на вкладку «История событий», где можно просмотреть историю выполненных заданий по событию. |
Удалить | Позволяет удалить выбранное событие. |
На вкладке «Редактировать событие» отображается форма для редактирования запланированных событий и создания новых.
ID события
Каждое событие имеет уникальный идентификатор, который используется при вызовах API и в противном случае может быть проигнорирован. Это отображается только при редактировании событий.
Название события
У каждого события есть имя, которое может быть любым. Оно отображается на вкладке «Расписание», а также в отчетах, электронных письмах и т. д.
Расписание
Этот флажок указывает, включено ли событие (активно) в планировщике и будет ли оно запускать задания в соответствии с временем события или отключено. Если этот параметр отключен, запускать задания по требованию можно будет нажав кнопку «Запустить сейчас».
Категория
Все события отнесены к определенной категории. Категории создавать не обязательно, в таком случае следует создать одну категорию для всех событий, например с названием: «Общие». Категории могут определять такие ограничения, как максимальное количество одновременных заданий, максимальное количество оперативной памяти на задание и максимальное количество процессоров на задание. Также можно создать категорию нажав "Добавить новую...".
Цель
В кластере с несколькими серверами события могут запускаться на отдельных серверах или группах серверов. Оба перечислены в раскрывающемся меню. Если целью является группа серверов, один из серверов группы выбирается каждый раз, когда событие запускает задание.
Алгоритм
Когда выбирается группа серверов, появляется дополнительное меню для выбора «алгоритма». Это просто метод, с помощью которого UBPile выбирает сервер в группе для выполнения вашего задания. По умолчанию установлено «Случайное» (т.е. для каждого задания выбирается случайный сервер из группы):
ID алгоритма | Название алгоритма | Описание |
---|---|---|
random | Случайное | Выбрать случайный сервер из группы. |
round_robin | По-круговой | Выбирать каждый сервер последовательно (в алфавитном порядке). |
least_cpu | Наименьшее использование ЦП | Выбрать сервер с наименьшей загрузкой ЦП в группе. |
least_mem | Наименьшее использование памяти | Выбрать сервер с наименьшим объемом использования памяти в группе. |
prefer_first | Предпочитаю первым | Выбрать первый сервер в группе (отсортированной по алфавиту), выбирая альтернативу только в том случае, если первый сервер недоступен. |
prefer_last | Предпочитаю последний | Выбрать последний сервер в группе (отсортированный по алфавиту), выбирая альтернативу только в том случае, если последний сервер недоступен. |
multiplex | Мультиплекс | Запустить событие на всех серверах группы одновременно. Когда эта функция включена, появится дополнительное текстовое поле «Задержка». Это позволяет поэтапно (постепенно откладывать) запуск заданий на серверах, чтобы они не запускались в одно и то же время. |
Мультиплексирование - если событие нацелено на группу серверов, то присутствует возможность «мультиплексировать» его. То есть событие будет запускать задания на всех серверах группы одновременно, а не выбирать один сервер случайным образом.
Плагин событий
Всякий раз, когда UBPile запускает событие, загружается «Плагин» для обработки задания. По сути, это команда оболочки, которая запускается как отдельный процесс, считывает JSON из STDIN для получения метаданных о задании и записывает JSON в STDOUT, чтобы сообщить о ходе выполнения и завершении. Плагины могут быть написаны практически на любом языке. Более подробную информацию см. в разделе «Плагины» ниже.
Если плагин определяет какие-либо пользовательские параметры, их можно редактировать для каждого события. Эта функция позволяет плагину определять набор элементов пользовательского интерфейса (текстовые поля, флажки, раскрывающиеся меню и т. д.), для которых редактор событий может предоставлять значения. Затем, когда задания запускаются, плагину предоставляется документ JSON, содержащий все пользовательские ключи и значения, установленные пользовательским интерфейсом для события.
Хронометраж
Время выполнения. События планируются на различные даты и время с помощью визуального виджета. Это позволяет выбрать любую комбинацию лет, месяцев, дней, дней недели, часов и/или минут для запуска события. Это будет повторяться периодически, каждый раз, когда часы сервера совпадают с выбором. Это очень похоже на формат Cron, но с более наглядным пользовательским интерфейсом.
Если оставить все флажки неотмеченными в определенном временном масштабе, это будет означать то же самое, что и «все» (аналогично оператору звездочки Cron *). Таким образом, если оставить все пустыми во всех категориях и выбрать только минуты «:00», это будет означать: каждый год, каждый месяц, каждый день, каждый будний день и каждый час в «:00». Или, другими словами, ежечасно.
Если нажать ссылку «Импорт...», то будут импортированы настройки даты и времени из Crontab, то есть известный * * * * * синтаксис. Это избавит от необходимости вручную переводить существующие файлы Crontab в пользовательский интерфейс UBPile.
По умолчанию события планируются в текущем местном часовом поясе, но это можно настроить с помощью меню в правом верхнем углу. Меню предварительно заполнено всеми стандартными часовыми поясами IANA. Кроме того, выбранный часовой пояс сохраняется для каждого события, поэтому UBPile всегда точно знает, когда все они должны запуститься, независимо от часового пояса сервера.
Параметры времени - позволяет расширить расписание
Параллельно
Селектор позволяет указать, сколько одновременных заданий разрешено запускать для данного события. Например, может потребоваться запуск нескольких заданий, если событие запланировано на ежечасный запуск, но выполнение задания занимает больше часа. Или задание может уже выполняться, и кто-то щелкнет ссылку «Выполнить сейчас» на вкладке «Расписание». Этот селектор определяет максимально разрешенное одновременное выполнение заданий для каждого события.
Если событие не может запустить задание из-за ограничения параллелизма, регистрируется ошибка в «Журнал активности». Что произойдет дальше, зависит от опций события. Если для события включен режим «Выполнить все» (Catch-Up), планировщик будет продолжать попытки запустить каждое запланированное задание в течение неопределенного времени. В противном случае он просто будет ждать следующего запланированного запуска.
Тайм-аут
При желании можно указать тайм-аут события, который является максимальным временем выполнения заданий событий. Если задание занимает больше времени, чем указанный период ожидания, оно прерывается и регистрируется как невыполненное задание. Чтобы отключить таймаут и разрешить заданиям выполняться бесконечно, следует установить для этого поля значение 0.
Повторные попытки
Если задание выдает внутреннюю ошибку (то есть оно возвращает ненулевое значение code в ответе JSON или команда оболочки завершается с ненулевым кодом завершения), можно настроить UBPile автоматически повторить его до 32 раз. Прерывание задания (вручную или по тайм-ауту) не приводит к повторной попытке.
Если для количества повторов установлено ненулевое значение, появится текстовое поле «Задержка повтора». Это позволяет заставить UBPile ждать определенное время между повторными попытками. Идея состоит в том, чтобы уменьшить количество нападок на сервисы, которые могут быть перегружены.
Следует обратить внимание, что тайм-аут события применяется к общему времени выполнения задания, включая все повторные попытки. Например, если установлен тайм-аут на 10 минут, а задание занимает 9 минут и завершается сбоем, у всех повторных попыток будет только 1 минута для завершения задания.
Разное. Параметры
В этом разделе можно выбрать параметры обработки заданий для события.
Запустить все режимы
Если для события включен режим «Догоняющий (Пробежать все)», планировщик сделает все возможное, чтобы гарантировать выполнение каждого запланированного задания, даже если оно должно выполняться с опозданием. Это полезно для событий, чувствительных ко времени, таких как создание отчетов. Так, например, если запланировано ежечасное выполнение события, но что-то мешает его запуску или завершению, планировщик будет продолжать попытки бесконечно, пока не будет запущено каждое отдельное ежечасное задание. Если событие не может выполняться в течение нескольких часов, задания просто встанут в очередь, и планировщик выполнит их все по порядку так быстро, как позволяют его правила.
Если режим «Выполнить все (догоняющий)» отключен и задание не может быть выполнено или завершается сбоем по любой из перечисленных выше причин, планировщик просто регистрирует ошибку и возобновляет нормальную работу. Мероприятие не будет проводиться до следующего запланированного времени, если таковое имеется. Это больше подходит для событий, не зависящих от времени, таких как ротация журналов.
Отдельный режим
Когда для события включен режим "Отдельный (бесперебойный)", задания запускаются как автономные фоновые процессы, которые не прерываются из-за таких вещей, как перезапуск демона UBPile. Это предназначено в основном для критических операций, выполнение которых нежелательно прерывать до завершения.
Рекомендуется использовать этот режим с осторожностью и только тогда, когда это действительно необходимо, так как у него есть недостатки. Прежде всего, поскольку процесс выполняется отдельно и автономно, обновления в реальном времени не производятся. Это означает, что индикатор выполнения и оставшееся время отображаются с задержкой до минуты. Кроме того, после завершения задания существует задержка до минуты, прежде чем UBPile осознает и пометит задание как выполненное.
Разрешить задания в очереди
По умолчанию, когда задания не могут выполняться из-за настроек параллелизма или других проблем, например недоступности целевого сервера, генерируется ошибка. То есть, если не включить очередь событий. При включенной организации очереди задания, которые не могут быть запущены немедленно, ставятся в очередь и выполняются в порядке очереди, так быстро, как позволяют условия.
Когда очередь включена для события, в форме появится новый раздел «Ограничение очереди», позволяющий установить максимальную длину очереди для каждого события. Если этот предел достигнут, дополнительные задания не могут быть поставлены в очередь и будет сгенерирована ошибка.
Отслеживать ход выполнения очередей событий можно на вкладке «Главная». События и счетчики в очереди отображаются в таблице между разделами «Активные задания» и «Предстоящие события». Отсюда также можно «очистить» очередь событий (т.е. удалить все задания в очереди), если одно из них выйдет из-под контроля.
Цепная реакция
Режим «Цепная реакция» позволяет выбрать событие, которое будет запускаться автоматически каждый раз, когда текущее событие завершает задание. По сути, два события «связываются» вместе, поэтому одно всегда выполняется после завершения другого. Эта цепочка может состоять из любого количества событий, и все события могут выполняться на разных серверах.
При желании можно выбрать различные события для запуска в случае успешного или неудачного выполнения текущего задания. Например, при наличии специального события обработки ошибок/уведомления, которое необходимо запускать при определенных сбоях событий.
Можно лучше контролировать этот процесс, используя API JSON в своих плагинах.
Машина времени
При редактировании существующего события, для которого включен режим "Догоняющий (Пробежать все)", появится пункт "Машина времени". Это способ сбросить внутренние «часы» события, позволяющий повторно запустить прошлые задания или пропустить очередь зависших заданий.
Для каждого события в расписании UBPile хранит внутренние часы, называемые «курсором». Можно представить, что время течет по прямой линии, курсоры событий представляют собой точки вдоль этой линии. Когда основной сервер отмечает новую минуту, он перемещает все курсоры событий вперед до текущей минуты, запуская по пути любые запланированные события.
Так, например, если нужно повторно запустить событие ежедневного отчета в 4 утра, можно просто отредактировать часы курсора и установить его обратно на 3:59 утра. Курсор будет догонять текущее время настолько быстро, насколько это возможно, останавливаясь только для запуска любых запланированных событий по пути. Также можно использовать эту функцию, чтобы «перепрыгнуть» через очередь, если задания для события накопились. Следует просто установить часы курсора на текущее время, и планировщик возобновит выполнение заданий с этого момента.
Часы события для Time Machine отображаются и интерпретируются в соответствии с выбранным в данный момент часовым поясом события.
Уведомление
UBPile может дополнительно отправлять уведомление по электронной почте индивидуальному списку получателей о завершении каждого задания (для нескольких адресов, разделенных запятыми). Также можно указать разные адреса электронной почты в случае успешного выполнения задания и в случае его неудачи. Электронные письма будут содержать множество информации о событии, задании и ошибке, если это применимо.
Можно контролировать большую часть содержимого этих электронных писем. Код ошибки и описание полностью генерируются собственными плагинами и могут быть настолько подробными и подробными, насколько это необходимо. Показатели производительности также генерируются плагинами (если применимо), а примечания к событиям берутся прямо из пользовательского интерфейса события. Наконец, весь шаблон электронного письма можно настроить, включив в него дополнительную информацию. Также поддерживаются электронные письма в формате HTML.
Ограничения
UBPile может автоматически ограничивать потребление ресурсов сервера заданиями, отслеживая их процессор, память и/или размер файла журнала, а также прерывая их, если ограничения превышены. Также можно указать время «поддержки» для ЦП и памяти, чтобы никакие действия не предпринимались до тех пор, пока ограничения не будут превышены в течение определенного периода времени.
Использование ЦП и ОЗУ измеряется каждые 10 секунд путем анализа процесса, порожденного для задания, а также любых дочерних процессов, которые также могли быть порождены кодом. Поэтому, если будет создан свой собственный дочерний подпроцесс или будет выполнен переход к утилите командной строки, вся память суммируется и сравнивается с ограничениями ресурсов для задания.
Примечания к событию
Заметки о событиях предназначены для вашего внутреннего использования. Они отображаются пользователям при редактировании события и во всех электронных письмах, касающихся успешных или неудачных заданий. Например, можно использовать это, чтобы описать событие членам команды, которые могут быть незнакомы, и, возможно, предоставить ссылку на другую документацию. Ограничений на количество символов нет.
Кнопка "Запустить сейчас"
Чтобы запустить событие немедленно, следует нажать кнопку «Запустить сейчас». При этом текущее событие будет запущено независимо от его настроек времени, а также от того, включено или отключено событие в расписании. Это просто задание по требованию, которое создается и выполняется сразу же.
Если нужно настроить внутренние часы для задания, следует удерживать клавишу Shift и нажать кнопку «Выполнить сейчас». Откроется диалоговое окно, позволяющее установить дату и время, которые плагин будет рассматривать как «текущее время» только для задания по требованию. Это не повлияет ни на другие задания, ни на само событие.
На этой вкладке показаны все недавно завершенные задания для всех событий, а также сведения о том, были ли они выполнены успешно или неудачно. UBPile будет хранить в хранилище до завершенных заданий (по умолчанию — 10 000). Задания сортируются по дате/времени завершения, причем самые последние находятся вверху.
Столбец | Описание |
---|---|
ID задания | Уникальный идентификатор, присвоенный заданию. |
Название события | Имя запланированного события для задания. |
Категория | Категория, к которой относится событие. |
Плагин | Плагин, который использовался для запуска задания. |
Имя хоста | Имя хоста сервера, на котором выполнялось задание. |
Результат | Это показывает, успешно ли выполнено задание или возвращена ошибка. |
Дата/время начала | Дата/время первого запуска задания. |
Пройденное время | Общее время, затраченное на выполнение задания (включая все повторные попытки). |
На этой вкладке показаны все недавно выполненные задания для одного конкретного события.
Данную вкладку можно открыть нажав на название события в таблице на вкладке "Завершённые".
UBPile будет хранить в хранилище до завершенных заданий (по умолчанию — 10 000). Задания сортируются по дате/времени завершения, причем самые последние находятся вверху.
Столбец | Описание |
---|---|
ID задания | Уникальный идентификатор, присвоенный заданию. |
Имя хоста | Имя хоста сервера, на котором выполнялось задание. |
Результат | Это показывает, успешно ли выполнено задание или возвращена ошибка. |
Дата/время начала | Дата/время первого запуска задания. |
Пройденное время | Общее время, затраченное на выполнение задания (включая все повторные попытки). |
Среднее ЦП | Средний процент ЦП, используемый процессом задания (включая все подпроцессы), где 100 % соответствует одному ядру ЦП. |
Средняя ОЗУ | Средний объем памяти, используемый процессом задания (включая любые подпроцессы). |
На этой вкладке содержится статистика по конкретному событию, включая основную информацию и графики производительности. Данные рассчитываются по последним 50 выполненным заданиям. Вот список всей статистики, которая отображается в верхней части экрана:
Столбец | Описание |
---|---|
Название события | Название отображаемого события. |
Название категории | Категория, к которой относится событие. |
Хронометраж события | Настройки времени проведения события (ежедневно, ежечасно и т.д.). |
Имя пользователя | Имя пользователя, который первым создал событие. |
Название плагина | Плагин выбран для запуска заданий для события. |
Цель события | Группа серверов или отдельный сервер, выбранный для запуска заданий для события. |
Среднее. Прошло | Среднее затраченное время заданий для события. |
Среднее. ЦП | Среднее значение ЦП, используемого заданиями для события. |
Среднее. ОЗУ | Средний объем оперативной памяти, используемый заданиями для события. |
Степень успеха | Процент успеха заданий для события. |
Последний результат | Показывает результат последнего завершения задания (успешное или неудачное). |
Среднее. Размер лога | Средний размер файла журнала заданий для события. |
Под статистикой расположено несколько графиков:
Первый график показывает эффективность показателей плагина с течением времени. Различные показанные категории полностью определяются пользовательским кодом.
Под графиком истории производительности расположены графики истории использования ЦП
и истории использования ОЗУ
. Они отображают использование ресурсов сервера события с течением времени. Каждая точка на графике соответствует конкретному выполнению задания, а история ведется для 50 запусков, если таковая имеется.
Вкладка «Сведения о задании» используется для просмотра выполняемых в данный момент заданий и просмотра сведений о завершенных заданиях. В каждом случае отображение немного отличается. Для выполняемых заданий будет отображена некоторая статистика о задании, которая обновляется в реальном времени, а также три большие кольцевые диаграммы: Показатели производительности (если он предоставляется плагином), а также текущее использование ЦП и памяти.
Над диаграммами расположена область "Подробности задания"
Статистика | Описание |
---|---|
ID здания | Уникальный идентификатор, присвоенный заданию. |
Название события | Название отображаемого события. |
Хронометраж события | Настройки времени проведения события (ежедневно, ежечасно и т.д.). |
Название категории | Категория, к которой относится событие. |
Имя плагина | Плагин выбран для запуска заданий для события. |
Цель события | Группа серверов или отдельный сервер, выбранный для запуска заданий для события. |
Источник задания | Источник задания (кто его запустил, планировщик или вручную вручную). |
Имя сервера | Имя хоста сервера, на котором выполняется задание. |
ID процесса | Идентификатор процесса, в данный момент выполняющего задание. |
Задание запущенно | Дата/время первого запуска задания. |
Задание завершено | Текущее прошедшее время задания. |
Пройденное время | Примерное оставшееся время (если доступно). |
Кольцевая диаграмма ЦП
визуально показывает, насколько работа близка к использованию полного ядра ЦП. Если используется больше (т. е. несколько потоков или подпроцессов), диаграмма просто показывает «полную» (сплошной цвет).
Кольцевая диаграмма ОЗУ
визуально указывает объем памяти вашего задания в сравнении с «максимальным» настроенным пределом ресурсов или 1 ГБ, если ограничения ресурсов не действуют для задания. Цвета: зеленый, если диаграмма заполнена менее чем на 50 %, желтый — от 50 % до 75 % и красный — если более 75 %.
После завершения задания или при просмотре сведений о ранее выполненном задании отображение выглядит немного иначе:
Единственное отличие в таблице статистики состоит в том, что верхняя таблица содержит дату/время завершения задания вместо оставшегося времени. Ниже на кольцевом графике слева теперь отображаются показатели производительности плагина (если он предусмотрен).
Кольцевые диаграммы ЦП и памяти теперь показывают средние значения за время выполнения задания, а не «текущие» значения во время выполнения задания. Применяются те же визуальные максимумы и правила цвета.
Вот как выглядит вкладка «Сведения о задании» в случае сбоя задания:
На этой вкладке можно редактировать профиль своей учетной записи, т.е. изменить свое имя, адрес электронной почты и/или пароль. У также есть возможность полностью удалить свою учетную запись с помощью кнопки «Удалить учетную запись». В целях безопасности, чтобы сохранить любые изменения, необходимо ввести существующий пароль учетной записи.
Изображение аватара пользователя автоматически извлекается из бесплатного сервиса Gravatar.com с использованием адреса электронной почты пользователя. Чтобы настроить свое изображение, следует войти в систему или создайте учетную запись Gravatar, используя тот же адрес электронной почты, что и в учетной записи UBPile.
Эта вкладка видна и доступна только пользователям уровня администратора. Вкладка позволяет просматривать глобальный журнал активности, управлять ключами API, категориями, плагинами, серверами и пользователями.
Все действия в UBPile протоколируются и доступны для просмотра на вкладке «Журнал действий». Журнал представлен в виде таблицы с разбивкой на страницы, отсортированной по убыванию даты и времени (самые новые действия вверху). Элементы управления нумерацией страниц расположены в правом верхнем углу. Столбцы таблицы следующие:
Столбец | Описание |
---|---|
Дата/Время | Дата и время действия (с учетом местного часового пояса). |
Тип | Тип активности (ошибка, событие, категория, сервер и т. д.). |
Описание | Описание деятельности (зависит от типа). |
Имя пользователя | Имя пользователя или ключ API, связанный с действием, если применимо. |
IP адрес | IP-адрес. |
Действия | Набор действий, которые необходимо выполнить при выполнении действия (обычно ссылки на дополнительную информацию). |
В журнале активности могут отображаться несколько различных типов активности:
Тип деятельности | Описание |
---|---|
Ошибка | Сообщения об ошибках, например, о невозможности отправки электронной почты или о рассинхронизации часов сервера. |
Предупреждение | Предупреждающие сообщения, например, о невозможности запуска запланированного события. |
API-ключ | Действия, связанные с ключами API, например создание, изменение или удаление пользователем ключей. |
Категория | Действия, связанные с категориями, например создание, изменение или удаление пользователем категорий. |
Событие | Действия, связанные с событиями, например создание, изменение или удаление пользователем событий. |
Группа | Действия, связанные с группой серверов, например создание, изменение или удаление пользователем групп. |
Работа | Деятельность, связанная с работой, включая каждое завершение работы (успешное или неудачное). |
Плагин | Действия, связанные с плагинами, такие как создание, изменение или удаление пользователем плагинов. |
Сервер | Действия, связанные с несколькими серверами, например добавление или удаление серверов из кластера. |
Планировщик | Действия, связанные с планировщиком, например, включение или отключение планировщика. |
Пользователь | Действия, связанные с пользователем, например, создание, изменение или удаление пользователя. |
UBPile будет хранить последние записи журнала активности в хранилище (по умолчанию — 10 000).
Ключи API позволяют регистрировать внешние приложения или службы для использования REST API. На этой вкладке перечислены все ключи API, зарегистрированные в системе, их можно редактировать, удалять и добавлять новые.
Столбец | Описание |
---|---|
Название приложения | Название приложения, связанное с ключом. |
API-ключ | Сам API-ключ, представляющий собой 32-значную шестнадцатеричную строку. |
Положение дел | Статус ключа, который может быть активным или отключенным. |
Автор | Имя пользователя, который изначально создал ключ. |
Создан | Дата создания ключа. |
Действия | Список действий, которые необходимо предпринять (редактировать и удалить). |
При создании нового ключа будет открыта вкладка "Новый ключ API":
Форма добавления API-ключа содержит следующие элементы:
События могут быть отнесены к определенным пользовательским категориям. Это отличный способ одновременно включить/отключить группы событий, установить максимальный лимит одновременных заданий для всей категории, установить ограничения на уведомления и ресурсы по умолчанию, а также выделить события определенным цветом.
Столбец | Описание |
---|---|
Название | Название категории, используемое для отображения. |
Описание | Необязательное описание категории. |
Назначенные события | Количество событий, присвоенных категории. |
Макс. одновременно | Максимально разрешенное количество одновременных заданий. |
Действия | Список действий, которые необходимо предпринять (редактировать и удалить). |
При создании новой категории будет открыта вкладка "Новая категория":
Форма редактирования категории содержит следующие элементы:
Плагины используются для запуска заданий и могут быть написаны практически на любом языке. Они создаются как подпроцессы, запускаемые с помощью предоставленного пользовательского сценария командной строки. Связь осуществляется посредством чтения и записи JSON в STDIN/STDOUT.
На данной вкладке расположен список всех плагинов, зарегистрированных в системе.
Столбец | Описание |
---|---|
Имя плагина | Имя плагина, используемое для отображения. |
Автор | Имя пользователя, который изначально создал плагин. |
Количество событий | Количество событий с использованием плагина. |
Создан | Дата первого создания плагина. |
Модифицирован | Дата последнего изменения плагина. |
Действия | Список действий, которые необходимо предпринять (редактировать и удалить). |
Форма редактирования плагина:
Содержит следующие элементы:
Параметры плагина:
Система параметров позволяет определить набор элементов управления пользовательского интерфейса для плагина (текстовые поля, текстовые поля, флажки, раскрывающиеся меню и т. д.), которые затем отображаются пользователю при редактировании событий.
Каждый параметр имеет идентификатор, который идентифицирует выбор пользователя и включается в данные JSON, отправляемые в плагин для каждого задания.
При добавлении или редактировании параметров плагина будет открыто окно "Добавить параметр":
Основной сервер - управляющий узел сети (персональный компьютер, ноутбук, серверное оборудование и т.д.), отвечает за управление временем, планирование и назначение задач для выполнения. Он может также выполнять работу в качестве рабочего сервера. Основной сервер помещается в группу "Primary", что означает, что только этот сервер может быть основным.
Рабочий сервер - управляемый узел сети (персональный компьютер, ноутбук, серверное оборудование и т.д.), подключенный к системе управления, для которого возможно запланировать и выполнить различные управляющие задания, а также задания по сбору необходимой информации.
UBPile может быть настроен для работы в среде с несколькими серверами и эта вкладка позволяет управлять кластером серверов. В верхней части страницы расположен список всех зарегистрированных в настоящее время серверов, их статус и элементы управления для их перезапуска или выключения. Столбцы таблицы включают в себя:
Столбец | Описание |
---|---|
Имя хоста | Имя хоста сервера. |
IP адрес | IP-адрес сервера. |
Группы | Список групп, к которым принадлежит сервер. |
Статус | Текущий статус сервера (основной, резервный или рабочий). |
Активные задачи | Количество активных заданий, запущенных в данный момент на сервере. |
Время работы | Время, прошедшее с момента перезапуска UBPile на сервере. |
Процессор | Текущее использование ЦП на сервере (все задания). |
Память | Текущее использование памяти на сервере (все задания). |
Действия | Список действий, которые можно выполнить на сервере (перезагрузка и выключение сервиса). |
Следует обратить внимание, что серверы в одной локальной сети должны автоматически обнаруживаться и добавляться в кластер. Обычно функция добавления сервера вручную используется только в том случае, если он находится в удаленном месте, за пределами локального диапазона широковещательной передачи UDP.
Группы серверов:
Раздел "Группы серверов" предоставляет возможность создать группы управляющих и управляемых серверов для выполнения на них событий.
При первой установке UBPile по умолчанию создаются две группы серверов. «Основная группа», содержащая только текущий (основной) сервер, и группа «Все серверы», содержащая все серверы (текущие и будущие). Группы автоматически добавляют серверы по регулярному выражению на основе имени хоста. Таким образом, когда к кластеру присоединяются дополнительные серверы, они автоматически распределяются по группам по имени хоста.
Список групп серверов содержит следующие столбцы:
Столбец | Описание |
---|---|
Заголовок | Название группы серверов. |
Регулярное выражение | Регулярное выражение имени хоста для автоматического добавления серверов в группу. |
Количество серверов | Количество серверов в настоящее время в группе. |
Количество событий | Количество событий, нацеленных на данную группу в данный момент. |
Статус | Классификация группы серверов (независимо от того, поддерживает ли она статус основного или нет). |
Действия | Список действий, которые можно выполнить на группе серверов (редактировать и удалить). |
На этой вкладке показаны все учетные записи пользователей, зарегистрированные в системе, их можно редактировать, удалять и добавлять новые.
Столбец | Описание |
---|---|
Имя пользователя | Имя пользователя учетной записи. |
Полное имя | Полное имя пользователя. |
Адрес электронной почты | Адрес электронной почты пользователя. |
Положение дел | Статус аккаунта (активен или отключен). |
Тип | Тип учетной записи (стандартная или администратора). |
Созданный | Дата первого создания пользователя. |
Действия | Список действий, которые необходимо предпринять (редактировать и удалить). |
При добавлении нового пользователя открывается вкладка "Добавить нового":
Форма редактирования пользователя содержит следующие элементы:
Привилегии:
Привилегия | Описание |
---|---|
Администратор | Позволяет выдать те же привилегии (права) указанному пользователю, что и у Администратора. |
Создание событий | Позволяет разрешить указанному пользователю создание событий на вкладке "Расписание". |
Редактирование событий | Позволяет разрешить указанному пользователю изменение событий на вкладке "Расписание". |
Удалить события | Позволяет разрешить указанному пользователю удаление событий на вкладке "Расписание". |
Запустить события | Позволяет разрешить указанному пользователю запуск событий на вкладке "Расписание". |
Прервать события | Позволяет разрешить указанному пользователю прерывать события, которые выполняются. |
Переключить планировщик | Позволяет разрешить указанному пользователю изменять запланированные события. |
Ограничить категории | Позволяет указать пользователю какие категории ему доступны для работы. |
Ограничить группы серверов | Позволяет указать пользователю какие группы серверов ему доступны для работы. |
Внимание! Если сервера загружены в режимах песочниц, то следует добавить каталог с UBPile в сохранение командой:
sudo ubconfig set [save] SAVE_ROOTCOPY_CHANGES="/opt/ubpile-workflow"
Внимание! Перед настройкой UBPile следует убедиться, что имена хостов на серверах - уникальны. Если имена хостов одинаковы, то следует их изменить: Смена имени рабочей станции
На основном сервере (управляющий узел сети) следует выполнить команду, которая укажет роль главного сервера:
sudo ubconfig set [server] UBPILE=admin
При необходимости использовать обратный прокси UBPile, следует выполнить команду (сервис haproxy-ubpile.service
будет запущен и добавлен в автозапуск):
sudo ubconfig set [server] UBPILE_REVERSE_PROXY=enable
На рабочих серверах (управляемый узел сети) следует выполнить команду, которая укажет роль исполнителя получаемых заданий от сервера "admin":
sudo ubconfig set [server] UBPILE=worker
Более подробное описание отличий между основным и рабочим сервером: Вкладка "Серверы".
Для доступа к веб-панели необходимо использовать имя хоста основного сервера (или IP) и порт 3012, например:
Если настроен обратный прокси, то вход в панель может быть реализован на порту 80.
В окне авторизации ввести логин и пароль:
В зависимости от настроек UBPile, порт и авторизационные данные могут отличаться от представленных в инструкции.
Для продолжения нажать "Вход":
Перед добавлением рабочего сервера следует установить настройки, указанные в пункте "Первоначальная настройка".
Для добавления следует перейти на вкладку "Администратор" > "Серверы"
.
Сервер с установленными первоначальными настройками должен появиться в таблице "Кластер серверов" c возможностью добавления.
Нажать кнопку "Добавить..."
напротив сервера:
Сервер добавлен со статусом "Исполнитель".
При необходимости сервер можно добавить вручную через кнопку " Добавить", расположенную в нижней части таблицы "Кластер серверов".
Ввести IP-адрес или рабочее имя станции и нажать "Добавить":
Сервер добавлен со статусом "Исполнитель":
Для выполнения необходимых задач на серверах требуются плагины. На основе плагинов создаются события (задачи).
Более подробное описание данной вкладки : Вкладка "Плагины".
Для добавления плагинов следует перейти на вкладку "Администратор" > "Плагины"
.
Нажать кнопку "Добавить..."
:
Ввести необходимые настройки для плагина, например минимальные рекомендуемые настройки плагина:
node bin/shell-plugin.js
);Параметры плагина отвечают за логику выполнения события и отображаемые поля при редактировании события.
Для добавления параметров следует нажать "Добавить"
:
Для работы скрипта, который указывается в поле "Скрипт", следует добавить обязательный параметр «Источник скрипта»:
Для остальных необходимых параметров следует повторить добавление:
После того, как были заполнены все необходимые поля и добавлены все нужные параметры, следует нажать "Создать"
:
При работе с событиями обязательным параметром настройки являются категории. Для добавления категорий следует перейти на вкладку "Администратор" > "Категории"
.
Нажать кнопку "Добавить..."
:
Ввести необходимые параметры для категории и нажать "Добавить":
Более подробное описание параметров данной вкладки : Вкладка "Категории".
После добавления новая категория будет отображена в списке категорий.
Для работы с плагинами необходимо создать и настроить события. События являются задачами, которые запускают выполнение плагинов с необходимыми настройками на конкретных серверах в заданное время.
Один плагин может быть использован для создания нескольких различных событий.
Для добавления событий следует перейти на вкладку "Расписание"
.
Нажать кнопку "Добавить событие"
:
Ввести необходимые параметры для события, например:
Более подробное описание параметров данной вкладки: Вкладка "Расписание".
Для сохранения события следует нажать "Создать".
Запуск событий может осуществляться как по расписанию (параметр "Хронометраж" при редактировании события), так и вручную с помощью кнопки "Запуск"
на вкладке "Расписание":
Событие можно также запустить на вкладке изменения нажав на кнопку "Запустить сейчас":
Внимание! Перед запуском изменённого события необходимо сохранить его, нажав кнопку "Сохранить".
После нажатия на кнопку "Запуск" будет выведено уведомление о запуске события в верхней части окна. Для подробного просмотра выполнения события следует нажать на ссылку "Нажмите здесь"
:
По нажатию на ссылку "Нажмите здесь" или по ID запущенного события будет открыта вкладка "Подробности задания", где отображена подробная информация о задании:
Время, необходимое для выполнения события, определяется действиями, указанными в плагине. События, которые были запущены и в настоящий момент выполняются, можно просмотреть на вкладке "Главная" в разделе "Активные задания":
Если задание в настоящий момент выполняется, то информация на данной вкладке обновляется в реальном времени.
При возникновении ошибок сервера, например:
Рекомендуется перезапустить службу UBPile или переподключить сетевой интерфейс.
Метод №1: Переподключение сетевого интерфейса:
Нажать на значок сети ;
Нажать на активное соединение (пример: Проводное подключение 1):
Дождаться переподключения. В правом верхнем углу будет выведено уведомление:
Выполнить вход в UBPile.
Метод №2: Перезапуск службы UBPile:
sudo systemctl restart ubpile-workflow
или команду перезапуска NetworkManager:sudo systemctl restart NetworkManager
Для добавления плагина позволяющего обновить операционную систему, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
pacman -Syu --noconfirm
араметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Программы) Обновление системы",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "pacman -Syu --noconfirm"
}
Для добавления плагина, который предоставляет возможность перезагружать и выключать рабочие сервера, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
if [ "${STATE}" == "Не выбрано" ]; then
echo "Ошибка: действие не выбрано. Остановка."
echo "------------------------------------------------"
elif [ "${STATE}" == "Перезагрузить" ]; then
echo "Выполняется перезагрузка"
echo "------------------------------------------------"
reboot --no-wall
elif [ "${STATE}" == "Выключить" ]; then
echo "Выполняется выключение"
echo "------------------------------------------------"
shutdown -h now
fi
араметр ID | Метка | Тип | Опции |
---|---|---|---|
script* | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
STATE | Выберите действие: | Меню | Пункты меню: Перезагрузить, Выключить, Не выбрано Выбранный элемент: Не выбрано |
annotate* | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo* | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "STATE",
"title": "Выберите действие",
"items": [
"Перезагрузить",
"Выключить",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Управление питанием",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ \"${STATE}\" == \"Не выбрано\" ]; then\n echo \"Ошибка: действие не выбрано. Остановка.\"\n echo \"------------------------------------------------\"\nelif [ \"${STATE}\" == \"Перезагрузить\" ]; then\n echo \"Выполняется перезагрузка\"\n echo \"------------------------------------------------\"\n\n\treboot --no-wall\nelif [ \"${STATE}\" == \"Выключить\" ]; then\n echo \"Выполняется выключение\"\n echo \"------------------------------------------------\"\n shutdown -h now\nfi"
}
Для добавления плагина, который предоставляет возможность управлять учетными записями пользователей на рабочих серверах, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Пользователи) Управление пользователями
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [ -n "${USERADD_NAME}" ]; then
USERADD_OPTIONS="${USERADD_GECOS}:${USERADD_UID}:${USERADD_GROUP}:${USERADD_EXTRA_GROUP}:"
[ -n "${USERADD_OPTIONAL_HOME}" ] && USERADD_OPTIONS+="--home-dir ${USERADD_OPTIONAL_HOME}"
[ -n "${USERADD_OPTIONAL_SHELL}" ] && USERADD_OPTIONS+=" -s ${USERADD_OPTIONAL_SHELL}"
[ "${USERADD_OPTIONAL_SYSTEM}" = "1" ] && USERADD_OPTIONS+=" -r"
[ "${USERADD_OPTIONAL_NO_HOME}" = "1" ] && USERADD_OPTIONS+=" -M"
[ "${USERADD_OPTIONAL_NO_GROUP}" = "1" ] && USERADD_OPTIONS+=" -N"
[ "${USERADD_OPTIONAL_NO_UNIQUE}" = "1" ] && USERADD_OPTIONS+=" -o"
[ "${USERADD_OPTIONAL_BADNAMES}" = "1" ] && USERADD_OPTIONS+=" --badnames"
[ "${USERADD_SYNC_BOOT}" = "1" ] && USERADD_SYNC_BOOT="boot" || unset USERADD_SYNC_BOOT
[ "${USERADD_SYNC_SHUTDOWN}" = "1" ] && USERADD_SYNC_SHUTDOWN="shutdown" || unset USERADD_SYNC_SHUTDOWN
[ "${USERADD_SYNC_BOOT}" = "boot" ] && [ "${USERADD_SYNC_SHUTDOWN}" = "shutdown" ] && COMMA="," || unset COMMA
USERADD_PASSWORD="${USERADD_PASSWORD:-x}"
if [ "${USERADD_AUTH}" = "Да" ]; then
USERADD_PASSWORD="!*${USERADD_PASSWORD}"
elif [ "${USERADD_AUTH}" = "Запрет по паролю" ]; then
USERADD_PASSWORD="!${USERADD_PASSWORD}"
fi
if [ "${USERADD_HASH}" = "Нет" ]; then
USERADD_PASSWORD="%%${USERADD_PASSWORD}"
fi
ubconfig set [users] USERADD[${USERADD_NAME}]="${USERADD_OPTIONS}:${USERADD_PASSWORD}"
ubconfig set [users] USERADD_SYNC[${USERADD_NAME}]=${USERADD_SYNC_BOOT}${COMMA}${USERADD_SYNC_SHUTDOWN}
echo "------------------------------------------------"
else
echo "Имя пользователя не было указано"
echo "------------------------------------------------"
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
USERADD_NAME | *Логин (пример: ivanov.ii): | Текстовое поле | Размер: 40 |
USERADD_GECOS | *Имя пользователя (пример: Иванов И.И.) | Текстовое поле | Размер: 40 |
USERADD_UID | UID (пример: x): | Текстовое поле | Размер: 20 |
USERADD_GROUP | Основная группа (пример: x): | Текстовое поле | Размер: 40 |
USERADD_EXTRA_GROUP | Доп. группы (пример: wheel): | Текстовое окно | Строк: 2 |
USERADD_OPTIONAL_NO_HOME | Не создавать домашний каталог пользователя | Флажок | Состояние по умолчанию: Не отмечено |
USERADD_OPTIONAL_HOME | Пользовательский путь к домашнему каталогу (пример: /mnt/users/username): | Текстовое поле | Размер: 40 |
USERADD_OPTIONAL_SHELL | Оболочка пользователя (пример: /bin/bash): | Текстовое поле | Размер: 40 |
USERADD_OPTIONAL_SYSTEM | Пользователь является системным | Флажок | Состояние по умолчанию: Не отмечено |
USERADD_OPTIONAL_NO_GROUP | Не создавать группу с тем же именем, что и у пользователя | Флажок | Состояние по умолчанию: Не отмечено |
USERADD_OPTIONAL_NO_UNIQUE | Разрешить не уникальный UID | Текстовое поле | Флажок |
USERADD_OPTIONAL_BADNAMES | Не проверять имя на неправильные символы | Текстовое поле | Флажок |
USERADD_PASSWORD | *Пароль (по умолчанию: ublinux): | Текстовое поле | Размер: 40 |
USERADD_HASH | Шифровать пароль: | Меню | Пункты меню: Да, Нет Выбранный элемент: Да |
USERADD_AUTH | Запретить аутентификацию | Меню | Пункты меню: Да, Нет, Запрет по паролю Выбранный элемент: Нет |
USERADD_SYNC_BOOT | Загрузить пользователя из конфигурации при загрузке системы | Флажок | Состояние по умолчанию: Отмечено |
USERADD_SYNC_SHUTDOWN | Сохранить пользователя в конфигурацию при завершении системы | Флажок | Состояние по умолчанию: Отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "text",
"id": "USERADD_NAME",
"title": "*Логин (пример: ivanov.ii):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "USERADD_GECOS",
"title": "*Имя пользователя (пример: Иванов И.И.)",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "USERADD_UID",
"title": "UID (пример: x):",
"size": 20,
"value": ""
},
{
"type": "text",
"id": "USERADD_GROUP",
"title": "Основная группа (пример: x):",
"size": 40,
"value": ""
},
{
"type": "textarea",
"id": "USERADD_EXTRA_GROUP",
"title": "Доп. группы (пример: wheel):",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "USERADD_OPTIONAL_NO_HOME",
"title": "Не создавать домашний каталог пользователя",
"value": 0
},
{
"type": "text",
"id": "USERADD_OPTIONAL_HOME",
"title": "Пользовательский путь к домашнему каталогу (пример: /mnt/users/username):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "USERADD_OPTIONAL_SHELL",
"title": "Оболочка пользователя (пример: /bin/bash):",
"size": 40,
"value": ""
},
{
"type": "checkbox",
"id": "USERADD_OPTIONAL_SYSTEM",
"title": "Пользователь является системным",
"value": 0
},
{
"type": "checkbox",
"id": "USERADD_OPTIONAL_NO_GROUP",
"title": "Не создавать группу с тем же именем, что и у пользователя",
"value": 0
},
{
"type": "checkbox",
"id": "USERADD_OPTIONAL_NO_UNIQUE",
"title": "Разрешить не уникальный UID",
"value": 0
},
{
"type": "checkbox",
"id": "USERADD_OPTIONAL_BADNAMES",
"title": "Не проверять имя на неправильные символы",
"value": 0
},
{
"type": "text",
"id": "USERADD_PASSWORD",
"title": "*Пароль (по умолчанию: ublinux):",
"size": 40,
"value": ""
},
{
"type": "select",
"id": "USERADD_HASH",
"title": "Шифровать пароль:",
"items": [
"Да",
"Нет"
],
"value": "Да"
},
{
"type": "select",
"id": "USERADD_AUTH",
"title": "Запретить аутентификацию",
"items": [
"Да",
"Нет",
"Запрет по паролю"
],
"value": "Нет"
},
{
"type": "checkbox",
"id": "USERADD_SYNC_BOOT",
"title": "Загрузить пользователя из конфигурации при загрузке системы",
"value": 1
},
{
"type": "checkbox",
"id": "USERADD_SYNC_SHUTDOWN",
"title": "Сохранить пользователя в конфигурацию при завершении системы",
"value": 1
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Пользователи) Управление пользователями",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ -n \"${USERADD_NAME}\" ]; then\n USERADD_OPTIONS=\"${USERADD_GECOS}:${USERADD_UID}:${USERADD_GROUP}:${USERADD_EXTRA_GROUP}:\"\n\n [ -n \"${USERADD_OPTIONAL_HOME}\" ] && USERADD_OPTIONS+=\"--home-dir ${USERADD_OPTIONAL_HOME}\"\n [ -n \"${USERADD_OPTIONAL_SHELL}\" ] && USERADD_OPTIONS+=\" -s ${USERADD_OPTIONAL_SHELL}\"\n [ \"${USERADD_OPTIONAL_SYSTEM}\" = \"1\" ] && USERADD_OPTIONS+=\" -r\"\n [ \"${USERADD_OPTIONAL_NO_HOME}\" = \"1\" ] && USERADD_OPTIONS+=\" -M\"\n [ \"${USERADD_OPTIONAL_NO_GROUP}\" = \"1\" ] && USERADD_OPTIONS+=\" -N\"\n [ \"${USERADD_OPTIONAL_NO_UNIQUE}\" = \"1\" ] && USERADD_OPTIONS+=\" -o\"\n [ \"${USERADD_OPTIONAL_BADNAMES}\" = \"1\" ] && USERADD_OPTIONS+=\" --badnames\"\n\t[ \"${USERADD_SYNC_BOOT}\" = \"1\" ] && USERADD_SYNC_BOOT=\"boot\" || unset USERADD_SYNC_BOOT\n\t[ \"${USERADD_SYNC_SHUTDOWN}\" = \"1\" ] && USERADD_SYNC_SHUTDOWN=\"shutdown\" || unset USERADD_SYNC_SHUTDOWN\n [ \"${USERADD_SYNC_BOOT}\" = \"boot\" ] && [ \"${USERADD_SYNC_SHUTDOWN}\" = \"shutdown\" ] && COMMA=\",\" || unset COMMA \n \n \n USERADD_PASSWORD=\"${USERADD_PASSWORD:-x}\"\n if [ \"${USERADD_AUTH}\" = \"Да\" ]; then\n USERADD_PASSWORD=\"!*${USERADD_PASSWORD}\"\n elif [ \"${USERADD_AUTH}\" = \"Запрет по паролю\" ]; then\n USERADD_PASSWORD=\"!${USERADD_PASSWORD}\"\n fi\n if [ \"${USERADD_HASH}\" = \"Нет\" ]; then\n USERADD_PASSWORD=\"%%${USERADD_PASSWORD}\"\n fi\n\tubconfig set [users] USERADD[${USERADD_NAME}]=\"${USERADD_OPTIONS}:${USERADD_PASSWORD}\" \n\tubconfig set [users] USERADD_SYNC[${USERADD_NAME}]=${USERADD_SYNC_BOOT}${COMMA}${USERADD_SYNC_SHUTDOWN}\n echo \"------------------------------------------------\"\nelse\n echo \"Имя пользователя не было указано\"\n echo \"------------------------------------------------\"\nfi\n"
}
Для добавления плагина, который предоставляет возможность настроить синхронизацию аппаратного времени и выбрать регион/зону на рабочих серверах, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
case "${HWCLOCK_SYNC}" in
"Время по UTC") HWCLOCK_SYNC=utc ;;
"Локальное время") HWCLOCK_SYNC=localtime ;;
esac
echo "------------------------------------------------"
[ "${HWCLOCK_SYNC}" != "Не выбрано" ] && { ubconfig set [clock] HWCLOCK_SYNC=${HWCLOCK_SYNC}; echo "Синхронизация времени установлена."; } || echo "Синхронизация времени не была выбрана."
echo "------------------------------------------------"
[ "${ZONE}" != "Не выбрано" ] && { ubconfig set [clock] ZONE=${ZONE}; echo "Регион/зона установлены: ${ZONE}."; } || echo "Регион/зона не были выбраны."
echo "------------------------------------------------"
араметр ID | Метка | Тип | Опции |
---|---|---|---|
script* | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
HWCLOCK_SYNC | Синхронизация аппаратного времени: | Меню | Пункты меню: Время по UTC, Локальное время, Не выбрано Выбранный элемент: Не выбрано |
ZONE | Регион/зона: | Меню | Пункты меню: Africa/Abidjan, Africa/Accra, Africa/Addis_Ababa, Africa/Algiers, Africa/Asmara, Africa/Asmera, Africa/Bamako, Africa/Bangui, Africa/Banjul, Africa/Bissau, Africa/Blantyre, Africa/Brazzaville, Africa/Bujumbura, Africa/Cairo, Africa/Casablanca, Africa/Ceuta, Africa/Conakry, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Douala, Africa/El_Aaiun, Africa/Freetown, Africa/Gaborone, Africa/Harare, Africa/Johannesburg, Africa/Juba, Africa/Kampala, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Lome, Africa/Luanda, Africa/Lubumbashi, Africa/Lusaka, Africa/Malabo, Africa/Maputo, Africa/Maseru, Africa/Mbabane, Africa/Mogadishu, Africa/Monrovia, Africa/Nairobi, Africa/Ndjamena, Africa/Niamey, Africa/Nouakchott, Africa/Ouagadougou, Africa/Porto-Novo, Africa/Sao_Tome, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, Africa/Windhoek, America/Adak, America/Anchorage, America/Anguilla, America/Antigua, America/Araguaina, America/Argentina/Buenos_Aires, America/Argentina/Catamarca, America/Argentina/ComodRivadavia, America/Argentina/Cordoba, America/Argentina/Jujuy, America/Argentina/La_Rioja, America/Argentina/Mendoza, America/Argentina/Rio_Gallegos, America/Argentina/Salta, America/Argentina/San_Juan, America/Argentina/San_Luis, America/Argentina/Tucuman, America/Argentina/Ushuaia, America/Aruba, America/Asuncion, America/Atikokan, America/Atka, America/Bahia, America/Bahia_Banderas, America/Barbados, America/Belem, America/Belize, America/Blanc-Sablon, America/Boa_Vista, America/Bogota, America/Boise, America/Buenos_Aires, America/Cambridge_Bay, America/Campo_Grande, America/Cancun, America/Caracas, America/Catamarca, America/Cayenne, America/Cayman, America/Chicago, America/Chihuahua, America/Ciudad_Juarez, America/Coral_Harbour, America/Cordoba, America/Costa_Rica, America/Creston, America/Cuiaba, America/Curacao, America/Danmarkshavn, America/Dawson, America/Dawson_Creek, America/Denver, America/Detroit, America/Dominica, America/Edmonton, America/Eirunepe, America/El_Salvador, America/Ensenada, America/Fort_Nelson, America/Fort_Wayne, America/Fortaleza, America/Glace_Bay, America/Godthab, America/Goose_Bay, America/Grand_Turk, America/Grenada, America/Guadeloupe, America/Guatemala, America/Guayaquil, America/Guyana, America/Halifax, America/Havana, America/Hermosillo, America/Indiana/Indianapolis, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Indianapolis, America/Inuvik, America/Iqaluit, America/Jamaica, America/Jujuy, America/Juneau, America/Kentucky/Louisville, America/Kentucky/Monticello, America/Knox_IN, America/Kralendijk, America/La_Paz, America/Lima, America/Los_Angeles, America/Louisville, America/Lower_Princes, America/Maceio, America/Managua, America/Manaus, America/Marigot, America/Martinique, America/Matamoros, America/Mazatlan, America/Mendoza, America/Menominee, America/Merida, America/Metlakatla, America/Mexico_City, America/Miquelon, America/Moncton, America/Monterrey, America/Montevideo, America/Montreal, America/Montserrat, America/Nassau, America/New_York, America/Nipigon, America/Nome, America/Noronha, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Nuuk, America/Ojinaga, America/Panama, America/Pangnirtung, America/Paramaribo, America/Phoenix, America/Port-au-Prince, America/Port_of_Spain, America/Porto_Acre, America/Porto_Velho, America/Puerto_Rico, America/Punta_Arenas, America/Rainy_River, America/Rankin_Inlet, America/Recife, America/Regina, America/Resolute, America/Rio_Branco, America/Rosario, America/Santa_Isabel, America/Santarem, America/Santiago, America/Santo_Domingo, America/Sao_Paulo, America/Scoresbysund, America/Shiprock, America/Sitka, America/St_Barthelemy, America/St_Johns, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Swift_Current, America/Tegucigalpa, America/Thule, America/Thunder_Bay, America/Tijuana, America/Toronto, America/Tortola, America/Vancouver, America/Virgin, America/Whitehorse, America/Winnipeg, America/Yakutat, America/Yellowknife, Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Macquarie, Antarctica/Mawson, Antarctica/McMurdo, Antarctica/Palmer, Antarctica/Rothera, Antarctica/South_Pole, Antarctica/Syowa, Antarctica/Troll, Antarctica/Vostok, Arctic/Longyearbyen, Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe, Asia/Ashgabat, Asia/Ashkhabad, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku, Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei, Asia/Calcutta, Asia/Chita, Asia/Choibalsan, Asia/Chongqing, Asia/Chungking, Asia/Colombo, Asia/Dacca, Asia/Damascus, Asia/Dhaka, Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Harbin, Asia/Hebron, Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Istanbul, Asia/Jakarta, Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Kashgar, Asia/Kathmandu, Asia/Katmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macao, Asia/Macau, Asia/Magadan, Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk, Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak, Asia/Pyongyang, Asia/Qatar, Asia/Qostanay, Asia/Qyzylorda, Asia/Rangoon, Asia/Riyadh, Asia/Saigon, Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran, Asia/Tel_Aviv, Asia/Thimbu, Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Ulan_Bator, Asia/Urumqi, Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon, Asia/Yekaterinburg, Asia/Yerevan, Atlantic/Azores, Atlantic/Bermuda, Atlantic/Canary, Atlantic/Cape_Verde, Atlantic/Faeroe, Atlantic/Faroe, Atlantic/Jan_Mayen, Atlantic/Madeira, Atlantic/Reykjavik, Atlantic/South_Georgia, Atlantic/St_Helena, Atlantic/Stanley, Australia/ACT, Australia/Adelaide, Australia/Brisbane, Australia/Broken_Hill, Australia/Canberra, Australia/Currie, Australia/Darwin, Australia/Eucla, Australia/Hobart, Australia/LHI, Australia/Lindeman, Australia/Lord_Howe, Australia/Melbourne, Australia/NSW, Australia/North, Australia/Perth, Australia/Queensland, Australia/South, Australia/Sydney, Australia/Tasmania, Australia/Victoria, Australia/West, Australia/Yancowinna, Brazil/Acre, Brazil/DeNoronha, Brazil/East, Brazil/West, CET, CST6CDT, Canada/Atlantic, Canada/Central, Canada/Eastern, Canada/Mountain, Canada/Newfoundland, Canada/Pacific, Canada/Saskatchewan, Canada/Yukon, Chile/Continental, Chile/EasterIsland, Cuba, EET, EST, EST5EDT, Egypt, Eire, Etc/GMT, Etc/GMT+0, Etc/GMT+1, Etc/GMT+10, Etc/GMT+11, Etc/GMT+12, Etc/GMT+2, Etc/GMT+3, Etc/GMT+4, Etc/GMT+5, Etc/GMT+6, Etc/GMT+7, Etc/GMT+8, Etc/GMT+9, Etc/GMT-0, Etc/GMT-1, Etc/GMT-10, Etc/GMT-11, Etc/GMT-12, Etc/GMT-13, Etc/GMT-14, Etc/GMT-2, Etc/GMT-3, Etc/GMT-4, Etc/GMT-5, Etc/GMT-6, Etc/GMT-7, Etc/GMT-8, Etc/GMT-9, Etc/GMT0, Etc/Greenwich, Etc/UCT, Etc/UTC, Etc/Universal, Etc/Zulu, Europe/Amsterdam, Europe/Andorra, Europe/Astrakhan, Europe/Athens, Europe/Belfast, Europe/Belgrade, Europe/Berlin, Europe/Bratislava, Europe/Brussels, Europe/Bucharest, Europe/Budapest, Europe/Busingen, Europe/Chisinau, Europe/Copenhagen, Europe/Dublin, Europe/Gibraltar, Europe/Guernsey, Europe/Helsinki, Europe/Isle_of_Man, Europe/Istanbul, Europe/Jersey, Europe/Kaliningrad, Europe/Kiev, Europe/Kirov, Europe/Kyiv, Europe/Lisbon, Europe/Ljubljana, Europe/London, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Mariehamn, Europe/Minsk, Europe/Monaco, Europe/Moscow, Europe/Nicosia, Europe/Oslo, Europe/Paris, Europe/Podgorica, Europe/Prague, Europe/Riga, Europe/Rome, Europe/Samara, Europe/San_Marino, Europe/Sarajevo, Europe/Saratov, Europe/Simferopol, Europe/Skopje, Europe/Sofia, Europe/Stockholm, Europe/Tallinn, Europe/Tirane, Europe/Tiraspol, Europe/Ulyanovsk, Europe/Uzhgorod, Europe/Vaduz, Europe/Vatican, Europe/Vienna, Europe/Vilnius, Europe/Volgograd, Europe/Warsaw, Europe/Zagreb, Europe/Zaporozhye, Europe/Zurich, Factory, GB, GB-Eire, GMT, GMT+0, GMT-0, GMT0, Greenwich, HST, Hongkong, Iceland, Indian/Antananarivo, Indian/Chagos, Indian/Christmas, Indian/Cocos, Indian/Comoro, Indian/Kerguelen, Indian/Mahe, Indian/Maldives, Indian/Mauritius, Indian/Mayotte, Indian/Reunion, Iran, Israel, Jamaica, Japan, Kwajalein, Libya, MET, MST, MST7MDT, Mexico/BajaNorte, Mexico/BajaSur, Mexico/General, NZ, NZ-CHAT, Navajo, PRC, PST8PDT, Pacific/Apia, Pacific/Auckland, Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter, Pacific/Efate, Pacific/Enderbury, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti, Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam, Pacific/Honolulu, Pacific/Johnston, Pacific/Kanton, Pacific/Kiritimati, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway, Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea, Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei, Pacific/Ponape, Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Samoa, Pacific/Tahiti, Pacific/Tarawa, Pacific/Tongatapu, Pacific/Truk, Pacific/Wake, Pacific/Wallis, Pacific/Yap, Poland, Portugal, ROC, ROK, Singapore, Turkey, UCT, US/Alaska, US/Aleutian, US/Arizona, US/Central, US/East-Indiana, US/Eastern, US/Hawaii, US/Indiana-Starke, US/Michigan, US/Mountain, US/Pacific, US/Samoa, UTC, Universal, W-SU, WET, Zulu, Не выбрано Выбранный элемент: Не выбрано |
annotate* | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo* | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "HWCLOCK_SYNC",
"title": "Синхронизация аппаратного времени:",
"items": [
"Время по UTC",
"Локальное время",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "select",
"id": "ZONE",
"title": "Регион/зона:",
"items": [
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Asmera",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Timbuktu",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/ComodRivadavia",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Atka",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Buenos_Aires",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Catamarca",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America/Eirunepe",
"America/El_Salvador",
"America/Ensenada",
"America/Fort_Nelson",
"America/Fort_Wayne",
"America/Fortaleza",
"America/Glace_Bay",
"America/Godthab",
"America/Goose_Bay",
"America/Grand_Turk",
"America/Grenada",
"America/Guadeloupe",
"America/Guatemala",
"America/Guayaquil",
"America/Guyana",
"America/Halifax",
"America/Havana",
"America/Hermosillo",
"America/Indiana/Indianapolis",
"America/Indiana/Knox",
"America/Indiana/Marengo",
"America/Indiana/Petersburg",
"America/Indiana/Tell_City",
"America/Indiana/Vevay",
"America/Indiana/Vincennes",
"America/Indiana/Winamac",
"America/Indianapolis",
"America/Inuvik",
"America/Iqaluit",
"America/Jamaica",
"America/Jujuy",
"America/Juneau",
"America/Kentucky/Louisville",
"America/Kentucky/Monticello",
"America/Knox_IN",
"America/Kralendijk",
"America/La_Paz",
"America/Lima",
"America/Los_Angeles",
"America/Louisville",
"America/Lower_Princes",
"America/Maceio",
"America/Managua",
"America/Manaus",
"America/Marigot",
"America/Martinique",
"America/Matamoros",
"America/Mazatlan",
"America/Mendoza",
"America/Menominee",
"America/Merida",
"America/Metlakatla",
"America/Mexico_City",
"America/Miquelon",
"America/Moncton",
"America/Monterrey",
"America/Montevideo",
"America/Montreal",
"America/Montserrat",
"America/Nassau",
"America/New_York",
"America/Nipigon",
"America/Nome",
"America/Noronha",
"America/North_Dakota/Beulah",
"America/North_Dakota/Center",
"America/North_Dakota/New_Salem",
"America/Nuuk",
"America/Ojinaga",
"America/Panama",
"America/Pangnirtung",
"America/Paramaribo",
"America/Phoenix",
"America/Port-au-Prince",
"America/Port_of_Spain",
"America/Porto_Acre",
"America/Porto_Velho",
"America/Puerto_Rico",
"America/Punta_Arenas",
"America/Rainy_River",
"America/Rankin_Inlet",
"America/Recife",
"America/Regina",
"America/Resolute",
"America/Rio_Branco",
"America/Rosario",
"America/Santa_Isabel",
"America/Santarem",
"America/Santiago",
"America/Santo_Domingo",
"America/Sao_Paulo",
"America/Scoresbysund",
"America/Shiprock",
"America/Sitka",
"America/St_Barthelemy",
"America/St_Johns",
"America/St_Kitts",
"America/St_Lucia",
"America/St_Thomas",
"America/St_Vincent",
"America/Swift_Current",
"America/Tegucigalpa",
"America/Thule",
"America/Thunder_Bay",
"America/Tijuana",
"America/Toronto",
"America/Tortola",
"America/Vancouver",
"America/Virgin",
"America/Whitehorse",
"America/Winnipeg",
"America/Yakutat",
"America/Yellowknife",
"Antarctica/Casey",
"Antarctica/Davis",
"Antarctica/DumontDUrville",
"Antarctica/Macquarie",
"Antarctica/Mawson",
"Antarctica/McMurdo",
"Antarctica/Palmer",
"Antarctica/Rothera",
"Antarctica/South_Pole",
"Antarctica/Syowa",
"Antarctica/Troll",
"Antarctica/Vostok",
"Arctic/Longyearbyen",
"Asia/Aden",
"Asia/Almaty",
"Asia/Amman",
"Asia/Anadyr",
"Asia/Aqtau",
"Asia/Aqtobe",
"Asia/Ashgabat",
"Asia/Ashkhabad",
"Asia/Atyrau",
"Asia/Baghdad",
"Asia/Bahrain",
"Asia/Baku",
"Asia/Bangkok",
"Asia/Barnaul",
"Asia/Beirut",
"Asia/Bishkek",
"Asia/Brunei",
"Asia/Calcutta",
"Asia/Chita",
"Asia/Choibalsan",
"Asia/Chongqing",
"Asia/Chungking",
"Asia/Colombo",
"Asia/Dacca",
"Asia/Damascus",
"Asia/Dhaka",
"Asia/Dili",
"Asia/Dubai",
"Asia/Dushanbe",
"Asia/Famagusta",
"Asia/Gaza",
"Asia/Harbin",
"Asia/Hebron",
"Asia/Ho_Chi_Minh",
"Asia/Hong_Kong",
"Asia/Hovd",
"Asia/Irkutsk",
"Asia/Istanbul",
"Asia/Jakarta",
"Asia/Jayapura",
"Asia/Jerusalem",
"Asia/Kabul",
"Asia/Kamchatka",
"Asia/Karachi",
"Asia/Kashgar",
"Asia/Kathmandu",
"Asia/Katmandu",
"Asia/Khandyga",
"Asia/Kolkata",
"Asia/Krasnoyarsk",
"Asia/Kuala_Lumpur",
"Asia/Kuching",
"Asia/Kuwait",
"Asia/Macao",
"Asia/Macau",
"Asia/Magadan",
"Asia/Makassar",
"Asia/Manila",
"Asia/Muscat",
"Asia/Nicosia",
"Asia/Novokuznetsk",
"Asia/Novosibirsk",
"Asia/Omsk",
"Asia/Oral",
"Asia/Phnom_Penh",
"Asia/Pontianak",
"Asia/Pyongyang",
"Asia/Qatar",
"Asia/Qostanay",
"Asia/Qyzylorda",
"Asia/Rangoon",
"Asia/Riyadh",
"Asia/Saigon",
"Asia/Sakhalin",
"Asia/Samarkand",
"Asia/Seoul",
"Asia/Shanghai",
"Asia/Singapore",
"Asia/Srednekolymsk",
"Asia/Taipei",
"Asia/Tashkent",
"Asia/Tbilisi",
"Asia/Tehran",
"Asia/Tel_Aviv",
"Asia/Thimbu",
"Asia/Thimphu",
"Asia/Tokyo",
"Asia/Tomsk",
"Asia/Ujung_Pandang",
"Asia/Ulaanbaatar",
"Asia/Ulan_Bator",
"Asia/Urumqi",
"Asia/Ust-Nera",
"Asia/Vientiane",
"Asia/Vladivostok",
"Asia/Yakutsk",
"Asia/Yangon",
"Asia/Yekaterinburg",
"Asia/Yerevan",
"Atlantic/Azores",
"Atlantic/Bermuda",
"Atlantic/Canary",
"Atlantic/Cape_Verde",
"Atlantic/Faeroe",
"Atlantic/Faroe",
"Atlantic/Jan_Mayen",
"Atlantic/Madeira",
"Atlantic/Reykjavik",
"Atlantic/South_Georgia",
"Atlantic/St_Helena",
"Atlantic/Stanley",
"Australia/ACT",
"Australia/Adelaide",
"Australia/Brisbane",
"Australia/Broken_Hill",
"Australia/Canberra",
"Australia/Currie",
"Australia/Darwin",
"Australia/Eucla",
"Australia/Hobart",
"Australia/LHI",
"Australia/Lindeman",
"Australia/Lord_Howe",
"Australia/Melbourne",
"Australia/NSW",
"Australia/North",
"Australia/Perth",
"Australia/Queensland",
"Australia/South",
"Australia/Sydney",
"Australia/Tasmania",
"Australia/Victoria",
"Australia/West",
"Australia/Yancowinna",
"Brazil/Acre",
"Brazil/DeNoronha",
"Brazil/East",
"Brazil/West",
"CET",
"CST6CDT",
"Canada/Atlantic",
"Canada/Central",
"Canada/Eastern",
"Canada/Mountain",
"Canada/Newfoundland",
"Canada/Pacific",
"Canada/Saskatchewan",
"Canada/Yukon",
"Chile/Continental",
"Chile/EasterIsland",
"Cuba",
"EET",
"EST",
"EST5EDT",
"Egypt",
"Eire",
"Etc/GMT",
"Etc/GMT+0",
"Etc/GMT+1",
"Etc/GMT+10",
"Etc/GMT+11",
"Etc/GMT+12",
"Etc/GMT+2",
"Etc/GMT+3",
"Etc/GMT+4",
"Etc/GMT+5",
"Etc/GMT+6",
"Etc/GMT+7",
"Etc/GMT+8",
"Etc/GMT+9",
"Etc/GMT-0",
"Etc/GMT-1",
"Etc/GMT-10",
"Etc/GMT-11",
"Etc/GMT-12",
"Etc/GMT-13",
"Etc/GMT-14",
"Etc/GMT-2",
"Etc/GMT-3",
"Etc/GMT-4",
"Etc/GMT-5",
"Etc/GMT-6",
"Etc/GMT-7",
"Etc/GMT-8",
"Etc/GMT-9",
"Etc/GMT0",
"Etc/Greenwich",
"Etc/UCT",
"Etc/UTC",
"Etc/Universal",
"Etc/Zulu",
"Europe/Amsterdam",
"Europe/Andorra",
"Europe/Astrakhan",
"Europe/Athens",
"Europe/Belfast",
"Europe/Belgrade",
"Europe/Berlin",
"Europe/Bratislava",
"Europe/Brussels",
"Europe/Bucharest",
"Europe/Budapest",
"Europe/Busingen",
"Europe/Chisinau",
"Europe/Copenhagen",
"Europe/Dublin",
"Europe/Gibraltar",
"Europe/Guernsey",
"Europe/Helsinki",
"Europe/Isle_of_Man",
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
"Europe/Luxembourg",
"Europe/Madrid",
"Europe/Malta",
"Europe/Mariehamn",
"Europe/Minsk",
"Europe/Monaco",
"Europe/Moscow",
"Europe/Nicosia",
"Europe/Oslo",
"Europe/Paris",
"Europe/Podgorica",
"Europe/Prague",
"Europe/Riga",
"Europe/Rome",
"Europe/Samara",
"Europe/San_Marino",
"Europe/Sarajevo",
"Europe/Saratov",
"Europe/Simferopol",
"Europe/Skopje",
"Europe/Sofia",
"Europe/Stockholm",
"Europe/Tallinn",
"Europe/Tirane",
"Europe/Tiraspol",
"Europe/Ulyanovsk",
"Europe/Uzhgorod",
"Europe/Vaduz",
"Europe/Vatican",
"Europe/Vienna",
"Europe/Vilnius",
"Europe/Volgograd",
"Europe/Warsaw",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"Factory",
"GB",
"GB-Eire",
"GMT",
"GMT+0",
"GMT-0",
"GMT0",
"Greenwich",
"HST",
"Hongkong",
"Iceland",
"Indian/Antananarivo",
"Indian/Chagos",
"Indian/Christmas",
"Indian/Cocos",
"Indian/Comoro",
"Indian/Kerguelen",
"Indian/Mahe",
"Indian/Maldives",
"Indian/Mauritius",
"Indian/Mayotte",
"Indian/Reunion",
"Iran",
"Israel",
"Jamaica",
"Japan",
"Kwajalein",
"Libya",
"MET",
"MST",
"MST7MDT",
"Mexico/BajaNorte",
"Mexico/BajaSur",
"Mexico/General",
"NZ",
"NZ-CHAT",
"Navajo",
"PRC",
"PST8PDT",
"Pacific/Apia",
"Pacific/Auckland",
"Pacific/Bougainville",
"Pacific/Chatham",
"Pacific/Chuuk",
"Pacific/Easter",
"Pacific/Efate",
"Pacific/Enderbury",
"Pacific/Fakaofo",
"Pacific/Fiji",
"Pacific/Funafuti",
"Pacific/Galapagos",
"Pacific/Gambier",
"Pacific/Guadalcanal",
"Pacific/Guam",
"Pacific/Honolulu",
"Pacific/Johnston",
"Pacific/Kanton",
"Pacific/Kiritimati",
"Pacific/Kosrae",
"Pacific/Kwajalein",
"Pacific/Majuro",
"Pacific/Marquesas",
"Pacific/Midway",
"Pacific/Nauru",
"Pacific/Niue",
"Pacific/Norfolk",
"Pacific/Noumea",
"Pacific/Pago_Pago",
"Pacific/Palau",
"Pacific/Pitcairn",
"Pacific/Pohnpei",
"Pacific/Ponape",
"Pacific/Port_Moresby",
"Pacific/Rarotonga",
"Pacific/Saipan",
"Pacific/Samoa",
"Pacific/Tahiti",
"Pacific/Tarawa",
"Pacific/Tongatapu",
"Pacific/Truk",
"Pacific/Wake",
"Pacific/Wallis",
"Pacific/Yap",
"Poland",
"Portugal",
"ROC",
"ROK",
"Singapore",
"Turkey",
"UCT",
"US/Alaska",
"US/Aleutian",
"US/Arizona",
"US/Central",
"US/East-Indiana",
"US/Eastern",
"US/Hawaii",
"US/Indiana-Starke",
"US/Michigan",
"US/Mountain",
"US/Pacific",
"US/Samoa",
"UTC",
"Universal",
"W-SU",
"WET",
"Zulu",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Настройка временной зоны",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "case \"${HWCLOCK_SYNC}\" in\n \"Время по UTC\") HWCLOCK_SYNC=utc ;;\n \"Локальное время\") HWCLOCK_SYNC=localtime ;;\nesac\n\necho \"------------------------------------------------\"\n[ \"${HWCLOCK_SYNC}\" != \"Не выбрано\" ] && { ubconfig set [clock] HWCLOCK_SYNC=${HWCLOCK_SYNC}; echo \"Синхронизация времени установлена.\"; } || echo \"Синхронизация времени не была выбрана.\"\necho \"------------------------------------------------\"\n[ \"${ZONE}\" != \"Не выбрано\" ] && { ubconfig set [clock] ZONE=${ZONE}; echo \"Регион/зона установлены: ${ZONE}.\"; } || echo \"Регион/зона не были выбраны.\"\necho \"------------------------------------------------\""
}
Для добавления плагина, который предоставляет возможность изменять пароли пользователей, включая root, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Установить настройки:
Имя плагина - (Пользователи) Смена пароля учетной записи
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [[ "${HASH_PASSWORD}" == "0" ]]; then
HASH_PASSWORD="%%"
else
unset HASH_PASSWORD
fi
if [[ -z "${USER_NAME}" || -z "${NEW_PASSWORD}" ]]; then
echo "Логин или пароль не были заданы."
echo "-----------------------------------------------------------"
else
if [[ "${USER_NAME}" == "root" ]]; then
echo "Установка нового пароля для пользователя \"root\":"
ubconfig set [users] DEFAULTROOTPASSWD="${HASH_PASSWORD}${NEW_PASSWORD}"
echo "------------------------------------------------"
echo "Пароль для пользователя \"root\" обновлен."
echo "------------------------------------------------"
exit 0
fi
USER_CONFIG=$(ubconfig get [users] USERADD["$USER_NAME"])
USER_CONFIG=$(echo "$USER_CONFIG" | sed -E "s/=['\"](.*)['\"]$/=\1/")
if [[ -z "$USER_CONFIG" || "$USER_CONFIG" == "(null)" ]]; then
echo "Пользователь \"$USER_NAME\" не был найден в системе."
exit 1
fi
UPDATED_USER_CONFIG=$(echo "$USER_CONFIG" | sed -E "s/([^:]*):[^:]*$/\1:${HASH_PASSWORD}${NEW_PASSWORD}/")
echo "Установка нового пароля для: $USER_NAME"
ubconfig set [users] "$UPDATED_USER_CONFIG"
echo "------------------------------------------------"
echo "Пароль обновлен для пользователя: $USER_NAME"
echo "------------------------------------------------"
USER_SYNC=$(ubconfig get [users] USERADD_SYNC["$USER_NAME"])
if [[ (-z "$USER_SYNC" || "$USER_SYNC" == "(null)") && "${USER_NAME}" != "root" ]]; then
echo "Установка параметра синхронизации:"
ubconfig set [users] USERADD_SYNC["$USER_NAME"]=boot
echo "------------------------------------------------"
echo "Настройка синхронизации пользователя \""$USER_NAME"\" при запуске ОС была установлена успешно."
fi
fi
if [[ "${LIST_USERS}" == "Упрощенный вывод" ]]; then
user_data=$(ubconfig get users USERADD[*])
header="ID: | Логин: | Имя пользователя: | Пароль:"
table_data=""
while IFS= read -r line; do
if [[ $line =~ USERADD\[([^\]]+)\]=[\'\"]([^:]*):([^:]*):[^:]*:([^:]*):[^:]*:[\'\"]?([^\'\"]*)[\'\"]? ]]; then
login="${BASH_REMATCH[1]}"
name="${BASH_REMATCH[2]}"
uid="${BASH_REMATCH[3]}"
password="${BASH_REMATCH[5]}"
if [[ $password == "" || $password == "x" || $password == "ublinux" ]]; then
password="По умолчанию"
elif [[ $password == "!"* || $password == "*" ]]; then
password="Заблокирован"
else
password="Зашифрован"
fi
table_data+="$uid | $login | $name | $password\n"
fi
done <<< "$user_data"
echo -e "$header\n$table_data" | column -s "|" -t
elif [[ "${LIST_USERS}" == "Подробный вывод" ]]; then
echo "Список пользователей из ublinux.ini:"
echo "------------------------------------------------"
ubconfig get users USERADD[*]
fi
Параметры:
араметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
USER_NAME | Логин пользователя (пример: superadmin): | Текстовое поле | Размер: 40 |
NEW_PASSWORD | Новый пароль пользователя: | Текстовое поле | Размер: 40 |
HASH_PASSWORD | Шифровать пароль | Флажок | Состояние по умолчанию: Отмечено |
LIST_USERS | Вывод текущих пользователей системы: | Меню | Пункты меню: Упрощенный вывод, Подробный вывод, Не выбрано Выбранный элемент: Не выбрано |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "text",
"id": "USER_NAME",
"title": "Логин пользователя (пример: superadmin):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "NEW_PASSWORD",
"title": "Новый пароль пользователя:",
"size": 40,
"value": ""
},
{
"type": "checkbox",
"id": "HASH_PASSWORD",
"title": "Шифровать пароль",
"value": 1
},
{
"type": "select",
"id": "LIST_USERS",
"title": "Вывод текущих пользователей системы:",
"items": [
"Упрощенный вывод",
"Подробный вывод",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "if [[ \"${HASH_PASSWORD}\" == \"0\" ]]; then\n HASH_PASSWORD=\"%%\"\nelse\n unset HASH_PASSWORD\nfi\n\nif [[ -z \"${USER_NAME}\" || -z \"${NEW_PASSWORD}\" ]]; then\n echo \"Логин или пароль не были заданы.\"\n echo \"-----------------------------------------------------------\"\n\nelse\nif [[ \"${USER_NAME}\" == \"root\" ]]; then\n echo \"Установка нового пароля для пользователя \\\"root\\\":\"\n ubconfig set [users] DEFAULTROOTPASSWD=\"${HASH_PASSWORD}${NEW_PASSWORD}\"\n echo \"------------------------------------------------\"\n echo \"Пароль для пользователя \\\"root\\\" обновлен.\"\n echo \"------------------------------------------------\"\n exit 0\nfi\n\nUSER_CONFIG=$(ubconfig get [users] USERADD[\"$USER_NAME\"])\n\nUSER_CONFIG=$(echo \"$USER_CONFIG\" | sed -E \"s/=['\\\"](.*)['\\\"]$/=\\1/\")\n\nif [[ -z \"$USER_CONFIG\" || \"$USER_CONFIG\" == \"(null)\" ]]; then\n echo \"Пользователь \\\"$USER_NAME\\\" не был найден в системе.\"\n exit 1\nfi\n\nUPDATED_USER_CONFIG=$(echo \"$USER_CONFIG\" | sed -E \"s/([^:]*):[^:]*$/\\1:${HASH_PASSWORD}${NEW_PASSWORD}/\")\necho \"Установка нового пароля для: $USER_NAME\"\nubconfig set [users] \"$UPDATED_USER_CONFIG\"\necho \"------------------------------------------------\"\necho \"Пароль обновлен для пользователя: $USER_NAME\"\necho \"------------------------------------------------\"\n\nUSER_SYNC=$(ubconfig get [users] USERADD_SYNC[\"$USER_NAME\"])\nif [[ (-z \"$USER_SYNC\" || \"$USER_SYNC\" == \"(null)\") && \"${USER_NAME}\" != \"root\" ]]; then\n echo \"Установка параметра синхронизации:\"\n ubconfig set [users] USERADD_SYNC[\"$USER_NAME\"]=boot\n echo \"------------------------------------------------\"\n echo \"Настройка синхронизации пользователя \\\"\"$USER_NAME\"\\\" при запуске ОС была установлена успешно.\"\nfi\n\n\n\nfi\n\nif [[ \"${LIST_USERS}\" == \"Упрощенный вывод\" ]]; then\nuser_data=$(ubconfig get users USERADD[*])\nheader=\"ID: | Логин: | Имя пользователя: | Пароль:\"\ntable_data=\"\"\nwhile IFS= read -r line; do\n if [[ $line =~ USERADD\\[([^\\]]+)\\]=[\\'\\\"]([^:]*):([^:]*):[^:]*:([^:]*):[^:]*:[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]? ]]; then\n login=\"${BASH_REMATCH[1]}\"\n name=\"${BASH_REMATCH[2]}\"\n uid=\"${BASH_REMATCH[3]}\"\n password=\"${BASH_REMATCH[5]}\"\n\n if [[ $password == \"\" || $password == \"x\" || $password == \"ublinux\" ]]; then\n password=\"По умолчанию\"\n elif [[ $password == \"!\"* || $password == \"*\" ]]; then\n password=\"Заблокирован\"\n else\n password=\"Зашифрован\"\n fi\n table_data+=\"$uid | $login | $name | $password\\n\"\n fi\ndone <<< \"$user_data\"\necho -e \"$header\\n$table_data\" | column -s \"|\" -t\n\nelif [[ \"${LIST_USERS}\" == \"Подробный вывод\" ]]; then\n echo \"Список пользователей из ublinux.ini:\"\n echo \"------------------------------------------------\"\nubconfig get users USERADD[*]\nfi",
"title": "(Пользователи) Смена пароля учетной записи",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который предоставляет возможность устанавливать или удалять необходимые модули, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Программы) Установка и удаление модулей
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
PACKAGES=("UBM_040_XORG_XFCE" "UBM_041_XORG_PLASMA" "UBM_042_XORG_GNOME" "UBM_043_XORG_MATE" "UBM_045_XORG_PANTHEON" "UBM_050_XORG_GTK_APP" "UBM_055_XORG_QT_APP" "UBM_060_XORG_THEME" "UBM_070_DM_LIGHTDM" "UBM_080_MULTIMEDIA" "UBM_100_UBLINUX" "UBM_CHROMIUM" "UBM_CHROMIUM_GOST" "UBM_DATABASE" "UBM_DRV_BROTHER" "UBM_DRV_CANON_CAPT" "UBM_DRV_CANON_UFRII" "UBM_DRV_EPSON" "UBM_DRV_KYOCERA" "UBM_DRV_PANTUM" "UBM_DRV_PRINTER" "UBM_DRV_RICOH" "UBM_DRV_SAMSUNG" "UBM_DRV_XEROX" "UBM_JAVA17_OPENJFX" "UBM_JDK11" "UBM_JDK17" "UBM_JDK21" "UBM_JDK8" "UBM_LIB32" "UBM_LIBREOFFICE" "UBM_LINUX515_DKMS" "UBM_LINUX515_NVIDIA" "UBM_LINUX515_NVIDIA_390XX" "UBM_LINUX515_NVIDIA_470XX" "UBM_LINUX61_DKMS" "UBM_LINUX61_NVIDIA" "UBM_LINUX61_NVIDIA_390XX" "UBM_LINUX61_NVIDIA_470XX" "UBM_LINUX66_DKMS" "UBM_PATCH" "UBM_RUSTDESK" "UBM_WEB" "UBM_WINE" "UBM_WPS_OFFICE" "UBM_YANDEX_BROWSER")
for PACKAGE in "${PACKAGES[@]}"; do
if [ "${!PACKAGE}" = "1" ]; then
PACKAGE_LOWER=$(echo "${PACKAGE,,}")
INSTALL_LIST+=("${PACKAGE_LOWER//_/-}")
fi
done
echo "Результат установки:"
echo "${INSTALL_LIST[@]}"
if [ "${MODULE_MENU}" != "Не выбрано" ]; then
if [ "${MODULE_MENU}" = "Установка модулей" ]; then
pacman -Sy --noconfirm ${MODULE_NAME} ${INSTALL_LIST[@]}
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "Успешно установлены модули: ${MODULE_NAME} ${INSTALL_LIST[@]}"
echo "------------------------------------------------"
else
echo "------------------------------------------------"
echo "Во время установки модулей были обнаружены ошибки."
echo "------------------------------------------------"
fi
elif [ "${MODULE_MENU}" = "Удаление модулей" ]; then
pacman -R --noconfirm ${MODULE_NAME} ${INSTALL_LIST[@]}
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "Успешно удалены модули: ${MODULE_NAME} ${INSTALL_LIST[@]}"
echo "------------------------------------------------"
else
echo "------------------------------------------------"
echo "Во время удаления модулей были обнаружены ошибки."
echo "------------------------------------------------"
fi
fi
else
echo "------------------------------------------------"
echo "Ошибка: Вариант действия не был выбран"
echo "------------------------------------------------"
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
MODULE_MENU | Вариант действия: | Меню | Пункты меню: Установка модулей, Удаление модулей, Не выбрано Выбранный элемент: Не выбрано |
UBM_040_XORG_XFCE | Модуль приложений Xfce | Флажок | Состояние по умолчанию: Не отмечено |
UBM_041_XORG_PLASMA | Модуль приложений KDE Plasma | Флажок | Состояние по умолчанию: Не отмечено |
UBM_042_XORG_GNOME | Модуль оболочки GNOME следующего поколения | Флажок | Состояние по умолчанию: Не отмечено |
UBM_043_XORG_MATE | Модуль оболочки MATE | Флажок | Состояние по умолчанию: Не отмечено |
UBM_045_XORG_PANTHEON | Модуль оболочки Pantheon | Флажок | Состояние по умолчанию: Не отмечено |
UBM_050_XORG_GTK_APP | Модуль приложений GTK | Флажок | Состояние по умолчанию: Не отмечено |
UBM_055_XORG_QT_APP | Модуль приложений QT | Флажок | Состояние по умолчанию: Не отмечено |
UBM_060_XORG_THEME | Модуль тем GTK и иконок | Флажок | Состояние по умолчанию: Не отмечено |
UBM_070_DM_LIGHTDM | Модуль дисплейного менеджера Lightdm | Флажок | Состояние по умолчанию: Не отмечено |
UBM_080_MULTIMEDIA | Модуль мультимедийных приложений | Флажок | Состояние по умолчанию: Не отмечено |
UBM_100_UBLINUX | Модуль системных утилит | Флажок | Состояние по умолчанию: Не отмечено |
UBM_CHROMIUM | Модуль с Chromium и плагинами | Флажок | Состояние по умолчанию: Не отмечено |
UBM_CHROMIUM_GOST | Модуль с Chromium-Gost и плагинами | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DATABASE | Модуль баз данных postgresql, mariadb и утилит | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_BROTHER | Модуль драйверов для принтеров Brother | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_CANON_CAPT | Модуль драйвера для принтеров Canon CAPT | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_CANON_UFRII | Модуль драйвера для принтеров Canon UFR II LIPSLX CARPS2 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_EPSON | Модуль драйверов для принтеров Epson | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_KYOCERA | Модуль драйверов для принтеров Kyocera | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_PANTUM | Модуль драйверов для принтеров Pantum | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_PRINTER | Модуль драйверов hplip, gutenprint, foomatic | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_RICOH | Модуль драйверов Ricoh | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_SAMSUNG | Модуль драйверов Samsung | Флажок | Состояние по умолчанию: Не отмечено |
UBM_DRV_XEROX | Модуль драйверов Xerox | Флажок | Состояние по умолчанию: Не отмечено |
UBM_JAVA17_OPENJFX | Модуль платформы клиентских приложений Java OpenJFX 17 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_JDK11 | Модуль комплекта разработки OpenJDK Java 11 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_JDK17 | Модуль комплекта разработки OpenJDK Java 17 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_JDK21 | Модуль комплекта разработки OpenJDK Java 21 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_JDK8 | Модуль комплекта разработки OpenJDK Java 8 | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LIB32 | Модуль 32-битных библиотек | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LIBREOFFICE | Модуль LibreOffice | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX515_DKMS | Модуль дополнительных модулей dkms | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX515_NVIDIA | Модуль последнего драйвера NVIDIA для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX515_NVIDIA_390XX | Модуль драйвера NVIDIA 390xx для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX515_NVIDIA_470XX | Модуль драйвера NVIDIA 470xx для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX61_DKMS | Модуль дополнительных модулей dkms | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX61_NVIDIA | Модуль последнего драйвера NVIDIA для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX61_NVIDIA_390XX | Модуль драйвера NVIDIA 390xx для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX61_NVIDIA_470XX | Модуль драйвера NVIDIA 470xx для Linux | Флажок | Состояние по умолчанию: Не отмечено |
UBM_LINUX66_DKMS | Модуль дополнительных модулей dkms | Флажок | Состояние по умолчанию: Не отмечено |
UBM_PATCH | Модуль патчей приложений | Флажок | Состояние по умолчанию: Не отмечено |
UBM_RUSTDESK | Модуль RustDesk | Флажок | Состояние по умолчанию: Не отмечено |
UBM_WEB | Модуль HTTP сервера и утилит | Флажок | Состояние по умолчанию: Не отмечено |
UBM_WINE | Модуль wine и утилит | Флажок | Состояние по умолчанию: Не отмечено |
UBM_WPS_OFFICE | Модуль офисного пакета Kingsoft Office (WPS Office) | Флажок | Состояние по умолчанию: Не отмечено |
UBM_YANDEX_BROWSER | Модуль Яндекс.Браузера и утилит | Флажок | Состояние по умолчанию: Не отмечено |
MODULE_NAME | Наименование модуля(-ей), через пробел: | Текстовое окно | Строки: 2 |
annotate* | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo* | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "MODULE_MENU",
"title": "*Вариант действия:",
"items": [
"Установка модулей",
"Удаление модулей",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "UBM_040_XORG_XFCE",
"title": "ubm-040-xorg-xfce Модуль приложений Xfce",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_041_XORG_PLASMA",
"title": "ubm-041-xorg-plasma Модуль приложений KDE Plasma",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_042_XORG_GNOME",
"title": "ubm-042-xorg-gnome Модуль оболочки GNOME следующего поколения",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_043_XORG_MATE",
"title": "ubm-043-xorg-mate Модуль оболочки MATE",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_045_XORG_PANTHEON",
"title": "ubm-045-xorg-pantheon Модуль оболочки Pantheon",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_050_XORG_GTK_APP",
"title": "ubm-050-xorg-gtk-app Модуль приложений GTK",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_055_XORG_QT_APP",
"title": "ubm-055-xorg-qt-app Модуль приложений QT",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_060_XORG_THEME",
"title": "ubm-060-xorg-theme Модуль тем GTK и иконок",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_070_DM_LIGHTDM",
"title": "ubm-070-dm-lightdm Модуль дисплейного менеджера Lightdm",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_080_MULTIMEDIA",
"title": "ubm-080-multimedia Модуль мультимедийных приложений",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_100_UBLINUX",
"title": "ubm-100-ublinux Модуль системных утилит",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_CHROMIUM",
"title": "ubm-chromium Модуль с Chromium и плагинами",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_CHROMIUM_GOST",
"title": "ubm-chromium-gost Модуль с Chromium-Gost и плагинами",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DATABASE",
"title": "ubm-database Модуль баз данных postgresql, mariadb и утилит",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_BROTHER",
"title": "ubm-drv-brother Модуль драйверов для принтеров Brother",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_CANON_CAPT",
"title": "ubm-drv-canon-capt Модуль драйвера для принтеров Canon CAPT",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_CANON_UFRII",
"title": "ubm-drv-canon-ufrii Модуль драйвера для принтеров Canon UFR II LIPSLX CARPS2",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_EPSON",
"title": "ubm-drv-epson Модуль драйверов для принтеров Epson",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_KYOCERA",
"title": "ubm-drv-kyocera Модуль драйверов для принтеров Kyocera",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_PANTUM",
"title": "ubm-drv-pantum Модуль драйверов для принтеров Pantum",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_PRINTER",
"title": "ubm-drv-printer Модуль драйверов hplip, gutenprint, foomatic",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_RICOH",
"title": "ubm-drv-ricoh Модуль драйверов Ricoh",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_SAMSUNG",
"title": "ubm-drv-samsung Модуль драйверов Samsung",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_DRV_XEROX",
"title": "ubm-drv-xerox Модуль драйверов Xerox",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_JAVA17_OPENJFX",
"title": "ubm-java17-openjfx Модуль платформы клиентских приложений Java OpenJFX 17",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_JDK11",
"title": "ubm-jdk11 Модуль комплекта разработки OpenJDK Java 11",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_JDK17",
"title": "ubm-jdk17 Модуль комплекта разработки OpenJDK Java 17",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_JDK21",
"title": "ubm-jdk21 Модуль комплекта разработки OpenJDK Java 21",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_JDK8",
"title": "ubm-jdk8 Модуль комплекта разработки OpenJDK Java 8",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LIB32",
"title": "ubm-lib32 Модуль 32-битных библиотек",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LIBREOFFICE",
"title": "ubm-libreoffice Модуль LibreOffice",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX515_DKMS",
"title": "ubm-linux515-dkms Модуль дополнительных модулей dkms",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX515_NVIDIA",
"title": "ubm-linux515-nvidia Модуль последнего драйвера NVIDIA для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX515_NVIDIA_390XX",
"title": "ubm-linux515-nvidia-390xx Модуль драйвера NVIDIA 390xx для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX515_NVIDIA_470XX",
"title": "ubm-linux515-nvidia-470xx Модуль драйвера NVIDIA 470xx для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX61_DKMS",
"title": "ubm-linux61-dkms Модуль дополнительных модулей dkms",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX61_NVIDIA",
"title": "ubm-linux61-nvidia Модуль последнего драйвера NVIDIA для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX61_NVIDIA_390XX",
"title": "ubm-linux61-nvidia-390xx Модуль драйвера NVIDIA 390xx для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX61_NVIDIA_470XX",
"title": "ubm-linux61-nvidia-470xx Модуль драйвера NVIDIA 470xx для Linux",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_LINUX66_DKMS",
"title": "ubm-linux66-dkms Модуль дополнительных модулей dkms",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_PATCH",
"title": "ubm-patch Модуль патчей приложений",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_RUSTDESK",
"title": "ubm-rustdesk Модуль RustDesk",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_WEB",
"title": "ubm-web Модуль HTTP сервера и утилит",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_WINE",
"title": "ubm-wine Модуль wine и утилит",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_WPS_OFFICE",
"title": "ubm-wps-office Модуль офисного пакета Kingsoft Office (WPS Office)",
"value": 0
},
{
"type": "checkbox",
"id": "UBM_YANDEX_BROWSER",
"title": "ubm-yandex-browser Модуль Яндекс.Браузера и утилит",
"value": 0
},
{
"type": "textarea",
"id": "MODULE_NAME",
"title": "Наименование модуля(-ей), через пробел:",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Программы) Установка и удаление модулей",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "PACKAGES=(\"UBM_040_XORG_XFCE\" \"UBM_041_XORG_PLASMA\" \"UBM_042_XORG_GNOME\" \"UBM_043_XORG_MATE\" \"UBM_045_XORG_PANTHEON\" \"UBM_050_XORG_GTK_APP\" \"UBM_055_XORG_QT_APP\" \"UBM_060_XORG_THEME\" \"UBM_070_DM_LIGHTDM\" \"UBM_080_MULTIMEDIA\" \"UBM_100_UBLINUX\" \"UBM_CHROMIUM\" \"UBM_CHROMIUM_GOST\" \"UBM_DATABASE\" \"UBM_DRV_BROTHER\" \"UBM_DRV_CANON_CAPT\" \"UBM_DRV_CANON_UFRII\" \"UBM_DRV_EPSON\" \"UBM_DRV_KYOCERA\" \"UBM_DRV_PANTUM\" \"UBM_DRV_PRINTER\" \"UBM_DRV_RICOH\" \"UBM_DRV_SAMSUNG\" \"UBM_DRV_XEROX\" \"UBM_JAVA17_OPENJFX\" \"UBM_JDK11\" \"UBM_JDK17\" \"UBM_JDK21\" \"UBM_JDK8\" \"UBM_LIB32\" \"UBM_LIBREOFFICE\" \"UBM_LINUX515_DKMS\" \"UBM_LINUX515_NVIDIA\" \"UBM_LINUX515_NVIDIA_390XX\" \"UBM_LINUX515_NVIDIA_470XX\" \"UBM_LINUX61_DKMS\" \"UBM_LINUX61_NVIDIA\" \"UBM_LINUX61_NVIDIA_390XX\" \"UBM_LINUX61_NVIDIA_470XX\" \"UBM_LINUX66_DKMS\" \"UBM_PATCH\" \"UBM_RUSTDESK\" \"UBM_WEB\" \"UBM_WINE\" \"UBM_WPS_OFFICE\" \"UBM_YANDEX_BROWSER\")\n\nfor PACKAGE in \"${PACKAGES[@]}\"; do\n if [ \"${!PACKAGE}\" = \"1\" ]; then\n PACKAGE_LOWER=$(echo \"${PACKAGE,,}\") \n INSTALL_LIST+=(\"${PACKAGE_LOWER//_/-}\") \n fi\ndone\n\nif [ \"${MODULE_MENU}\" != \"Не выбрано\" ]; then\n if [ \"${MODULE_MENU}\" = \"Установка модулей\" ]; then\n pacman -Sy --noconfirm ${MODULE_NAME} ${INSTALL_LIST[@]}\n if [ $? -eq 0 ]; then\n echo \"------------------------------------------------\"\n echo \"Успешно установлены модули: ${MODULE_NAME} ${INSTALL_LIST[@]}\"\n echo \"------------------------------------------------\"\n else\n echo \"------------------------------------------------\"\n echo \"Во время установки модулей были обнаружены ошибки.\"\n echo \"------------------------------------------------\"\n fi\n elif [ \"${MODULE_MENU}\" = \"Удаление модулей\" ]; then\n pacman -R --noconfirm ${MODULE_NAME} ${INSTALL_LIST[@]}\n if [ $? -eq 0 ]; then\n echo \"------------------------------------------------\"\n echo \"Успешно удалены модули: ${MODULE_NAME} ${INSTALL_LIST[@]}\"\n echo \"------------------------------------------------\"\n else\n echo \"------------------------------------------------\"\n echo \"Во время удаления модулей были обнаружены ошибки.\"\n echo \"------------------------------------------------\"\n fi\n fi\nelse\n echo \"------------------------------------------------\"\n echo \"Ошибка: Вариант действия не был выбран\"\n echo \"------------------------------------------------\"\nfi"
}
Для добавления плагина, который предоставляет возможность устанавливать или удалять необходимое программное обеспечение, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
#!/usr/bin/bash
if [ "${ENABLE_AUR}" = "1" ]; then
PKG_MANAGER="yay"
else
PKG_MANAGER="pacman"
fi
if [ "${PROGRAM_MENU}" != "Не выбрано" ]; then
if [ "${PROGRAM_MENU}" = "Установка программ" ] && [ -n "${PROGRAM_NAME}" ]; then
${PKG_MANAGER} -Sy --noconfirm | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
${PKG_MANAGER} -S --noconfirm ${PROGRAM_NAME} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "Успешно установлены программы: ${PROGRAM_NAME}"
echo "------------------------------------------------"
else
echo "------------------------------------------------"
echo "Ошибка при установке программ: ${PROGRAM_NAME}"
echo "------------------------------------------------"
fi
elif [ "${PROGRAM_MENU}" = "Удаление программ" ] && [ -n "${PROGRAM_NAME}" ]; then
${PKG_MANAGER} -R --noconfirm ${PROGRAM_NAME} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "Успешно удалены программы: ${PROGRAM_NAME}"
echo "------------------------------------------------"
else
echo "------------------------------------------------"
echo "Ошибка при удалении программ: ${PROGRAM_NAME}"
echo "------------------------------------------------"
fi
fi
fi
if [ -z "${PROGRAM_NAME}" ]; then
echo "Наименования программ не были указаны."
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ENABLE_AUR | Включить AUR | Флажок | Состояние по умолчанию: Не отмечено |
PROGRAM_MENU | Вариант действия: | Меню | Пункты меню: Установка программ,Удаление программ,Не выбрано Выбранный элемент: Не выбрано |
PROGRAM_NAME | Наименование программ(-ы), через пробел: | Текстовое окно | Строки: 2 |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "checkbox",
"id": "ENABLE_AUR",
"title": "Включить AUR",
"value": 0
},
{
"type": "select",
"id": "PROGRAM_MENU",
"title": "*Вариант действия:",
"items": [
"Установка программ",
"Удаление программ",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "textarea",
"id": "PROGRAM_NAME",
"title": "*Наименование программ(-ы), через пробел (пример: gparted htop):",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
},
{
"type": "select",
"id": "theme",
"title": "Тема",
"items": [
"default",
"light",
"gruvbox-dark",
"solarized light",
"solarized dark",
"darcula",
"ambiance",
"base16-dark",
"nord"
],
"value": "default"
},
{
"type": "select",
"id": "lang",
"title": "Синтаксис",
"items": [
"shell",
"powershell",
"javascript",
"python",
"perl",
"groovy",
"java",
"csharp",
"scala",
"sql",
"yaml",
"toml",
"dockerfile"
],
"value": "shell"
}
],
"title": "(Программы) Установка и удаление ПО",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ \"${ENABLE_AUR}\" = \"1\" ]; then\n PKG_MANAGER=\"yay\"\nelse\n PKG_MANAGER=\"pacman\"\nfi\n\nif [ \"${PROGRAM_MENU}\" != \"Не выбрано\" ]; then\n if [ \"${PROGRAM_MENU}\" = \"Установка программ\" ] && [ -n \"${PROGRAM_NAME}\" ]; then\n ${PKG_MANAGER} -Sy --noconfirm | sed -r \"s/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g\"\n ${PKG_MANAGER} -S --noconfirm ${PROGRAM_NAME} | sed -r \"s/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g\"\n if [ $? -eq 0 ]; then\n echo \"------------------------------------------------\"\n echo \"Успешно установлены программы: ${PROGRAM_NAME}\"\n echo \"------------------------------------------------\"\n else\n echo \"------------------------------------------------\"\n echo \"Ошибка при установке программ: ${PROGRAM_NAME}\"\n echo \"------------------------------------------------\"\n fi\n elif [ \"${PROGRAM_MENU}\" = \"Удаление программ\" ] && [ -n \"${PROGRAM_NAME}\" ]; then\n ${PKG_MANAGER} -R --noconfirm ${PROGRAM_NAME} | sed -r \"s/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g\"\n if [ $? -eq 0 ]; then\n echo \"------------------------------------------------\"\n echo \"Успешно удалены программы: ${PROGRAM_NAME}\"\n echo \"------------------------------------------------\"\n else\n echo \"------------------------------------------------\"\n echo \"Ошибка при удалении программ: ${PROGRAM_NAME}\"\n echo \"------------------------------------------------\"\n fi\n fi\nfi\n\nif [ -z \"${PROGRAM_NAME}\" ]; then\n echo \"Наименования программ не были указаны.\"\nfi"
}
Для добавления плагина, который предоставляет возможность управлять версией ядра linux, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
#!/usr/bin/bash
if [ "${MODULE_NAME}" == "Не выбрано" ]; then
echo "Ошибка: Версия ядра не была выбрана"
echo "------------------------------------------------"
else
if [ "${MODULE_MENU}" == "Не выбрано" ]; then
echo "Ошибка: Вариант действия не был выбран"
echo "------------------------------------------------"
else
case "${MODULE_NAME}" in
"Linux 5.15")
MODULE_NAME="ubm-001-linux515"
[ "${LINUX_HEADERS}" == "1" ] && LINUX_HEADERS="ubm-002-linux515-headers" || unset LINUX_HEADERS
[ "${LINUX_DOCS}" == "1" ] && LINUX_DOCS="ubm-003-linux515-docs" || unset LINUX_DOCS
[ "${LINUX_DKMS}" == "1" ] && LINUX_DKMS="ubm-linux515-dkms" || unset LINUX_DKMS
;;
"Linux 6.1")
MODULE_NAME="ubm-001-linux61"
[ "${LINUX_HEADERS}" == "1" ] && LINUX_HEADERS="ubm-002-linux61-headers" || unset LINUX_HEADERS
[ "${LINUX_DOCS}" == "1" ] && LINUX_DOCS="ubm-003-linux61-docs" || unset LINUX_DOCS
[ "${LINUX_DKMS}" == "1" ] && LINUX_DKMS="ubm-linux61-dkms" || unset LINUX_DKMS
;;
"Linux 6.6")
MODULE_NAME="ubm-001-linux66"
[ "${LINUX_HEADERS}" == "1" ] && LINUX_HEADERS="ubm-002-linux66-headers" || unset LINUX_HEADERS
[ "${LINUX_DOCS}" == "1" ] && LINUX_DOCS="ubm-003-linux66-docs" || unset LINUX_DOCS
[ "${LINUX_DKMS}" == "1" ] && LINUX_DKMS="ubm-linux66-dkms" || unset LINUX_DKMS
;;
esac
if [ "${REINSTALL_MENU}" == "Нет" ]; then
NEEDED="--needed"
else
unset NEEDED
fi
if [ "${MODULE_MENU}" == "Установить версию" ]; then
pacman -Sy --noconfirm
echo "------------------------------------------------"
pacman -S ${NEEDED} --noconfirm "${MODULE_NAME}" \
${LINUX_HEADERS:+${LINUX_HEADERS}} \
${LINUX_DOCS:+${LINUX_DOCS}} \
${LINUX_DKMS:+${LINUX_DKMS}}
echo "------------------------------------------------"
elif [ "${MODULE_MENU}" == "Удалить версию" ]; then
pacman -Syy
package_count=$(pacman -Qq | grep "^ubm-001-linux" | wc -l)
if [ "${package_count}" -eq 1 ]; then
echo "В системе присутствует только один экземпляр версии ядра: ${MODULE_NAME}. Удаление модуля ядра ${MODULE_NAME} отменено."
echo "------------------------------------------------"
unset "${MODULE_NAME}"
else
packages_to_remove=("${MODULE_NAME}" "${LINUX_HEADERS}" "${LINUX_DOCS}" "${LINUX_DKMS}")
packages_to_remove_existing=()
for package in "${packages_to_remove[@]}"; do
if pacman -Q "$package" &> /dev/null; then
packages_to_remove_existing+=("$package")
fi
done
if [ ${#packages_to_remove_existing[@]} -gt 0 ]; then
pacman -R --noconfirm "${packages_to_remove_existing[@]}"
echo "------------------------------------------------"
else
echo "Нет пакетов для удаления."
fi
fi
fi
fi
fi
if [ "${KERNEL_BOOT}" != "Не выбрано" ]; then
case "${KERNEL_BOOT}" in
"Linux 5.15") ubconfig set [boot] KERNEL_BOOT=linux515 ;;
"Linux 6.1") ubconfig set [boot] KERNEL_BOOT=linux61 ;;
"Linux 6.6") ubconfig set [boot] KERNEL_BOOT=linux66 ;;
esac
echo "------------------------------------------------"
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
REINSTALL_MENU | Переустанавливать модули, имеющиеся в системе? | Меню | Пункты меню: Да,Нет,Не выбрано Выбранный элемент: Не выбрано |
MODULE_MENU | Вариант действия: | Меню | Пункты меню: Установить версию,Удалить версию,Не выбрано Выбранный элемент: Не выбрано |
MODULE_NAME | Версия ядра: | Меню | Пункты меню: Linux 5.15,Linux 6.1,Linux 6.6,Не выбрано Выбранный элемент: Не выбрано |
LINUX_HEADERS | Модуль: Заголовки и скрипты | Флажок | Состояние по умолчанию: Отключено |
LINUX_DOCS | Модуль: Документация для ядра Linux | Флажок | Состояние по умолчанию: Отключено |
LINUX_DKMS | Модуль: Модули DKMS | Флажок | Состояние по умолчанию: Отключено |
KERNEL_BOOT | Версия ядра загружаемая по умолчанию: | Меню | Пункты меню: Linux 5.15,Linux 6.1,Linux 6.6,Не выбрано Выбранный элемент: Не выбрано |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "REINSTALL_MENU",
"title": "*Переустанавливать модули, имеющиеся в системе?",
"items": [
"Да",
"Нет",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "select",
"id": "MODULE_MENU",
"title": "*Вариант действия:",
"items": [
"Установить версию",
"Удалить версию",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "select",
"id": "MODULE_NAME",
"title": "*Версия ядра:",
"items": [
"Linux 5.15",
"Linux 6.1",
"Linux 6.6",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "LINUX_HEADERS",
"title": "Модуль: Заголовки и скрипты",
"value": 0
},
{
"type": "checkbox",
"id": "LINUX_DOCS",
"title": "Модуль: Документация для ядра Linux",
"value": 0
},
{
"type": "checkbox",
"id": "LINUX_DKMS",
"title": "Модуль: Модули DKMS",
"value": 0
},
{
"type": "select",
"id": "KERNEL_BOOT",
"title": "*Версия ядра загружаемая по умолчанию:",
"items": [
"Linux 5.15",
"Linux 6.1",
"Linux 6.6",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Управление версией ядра Linux",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ \"${MODULE_NAME}\" == \"Не выбрано\" ]; then\n echo \"Ошибка: Версия ядра не была выбрана\"\n echo \"------------------------------------------------\"\nelse\n if [ \"${MODULE_MENU}\" == \"Не выбрано\" ]; then\n echo \"Ошибка: Вариант действия не был выбран\"\n echo \"------------------------------------------------\"\n else\n case \"${MODULE_NAME}\" in\n \"Linux 5.15\")\n MODULE_NAME=\"ubm-001-linux515\"\n [ \"${LINUX_HEADERS}\" == \"1\" ] && LINUX_HEADERS=\"ubm-002-linux515-headers\" || unset LINUX_HEADERS\n [ \"${LINUX_DOCS}\" == \"1\" ] && LINUX_DOCS=\"ubm-003-linux515-docs\" || unset LINUX_DOCS\n [ \"${LINUX_DKMS}\" == \"1\" ] && LINUX_DKMS=\"ubm-linux515-dkms\" || unset LINUX_DKMS\n ;;\n \"Linux 6.1\")\n MODULE_NAME=\"ubm-001-linux61\"\n [ \"${LINUX_HEADERS}\" == \"1\" ] && LINUX_HEADERS=\"ubm-002-linux61-headers\" || unset LINUX_HEADERS\n [ \"${LINUX_DOCS}\" == \"1\" ] && LINUX_DOCS=\"ubm-003-linux61-docs\" || unset LINUX_DOCS\n [ \"${LINUX_DKMS}\" == \"1\" ] && LINUX_DKMS=\"ubm-linux61-dkms\" || unset LINUX_DKMS\n ;;\n \"Linux 6.6\")\n MODULE_NAME=\"ubm-001-linux66\"\n [ \"${LINUX_HEADERS}\" == \"1\" ] && LINUX_HEADERS=\"ubm-002-linux66-headers\" || unset LINUX_HEADERS\n [ \"${LINUX_DOCS}\" == \"1\" ] && LINUX_DOCS=\"ubm-003-linux66-docs\" || unset LINUX_DOCS\n [ \"${LINUX_DKMS}\" == \"1\" ] && LINUX_DKMS=\"ubm-linux66-dkms\" || unset LINUX_DKMS\n ;;\n esac\n\n if [ \"${REINSTALL_MENU}\" == \"Нет\" ]; then\n NEEDED=\"--needed\"\n else\n unset NEEDED\n fi\n\n if [ \"${MODULE_MENU}\" == \"Установить версию\" ]; then\n pacman -Sy --noconfirm\n echo \"------------------------------------------------\"\n pacman -S ${NEEDED} --noconfirm \"${MODULE_NAME}\" ${LINUX_HEADERS:+${LINUX_HEADERS}} ${LINUX_DOCS:+${LINUX_DOCS}} ${LINUX_DKMS:+${LINUX_DKMS}}\n echo \"------------------------------------------------\"\n elif [ \"${MODULE_MENU}\" == \"Удалить версию\" ]; then\n pacman -Syy\n package_count=$(pacman -Qq | grep \"^ubm-001-linux\" | wc -l)\n if [ \"${package_count}\" -eq 1 ]; then\n echo \"В системе присутствует только один экземпляр версии ядра: ${MODULE_NAME}. Удаление модуля ядра ${MODULE_NAME} отменено.\"\n echo \"------------------------------------------------\"\n unset \"${MODULE_NAME}\"\n else\n packages_to_remove=(\"${MODULE_NAME}\" \"${LINUX_HEADERS}\" \"${LINUX_DOCS}\" \"${LINUX_DKMS}\")\n\n packages_to_remove_existing=()\n for package in \"${packages_to_remove[@]}\"; do\n if pacman -Q \"$package\" &> /dev/null; then\n packages_to_remove_existing+=(\"$package\")\n fi\n done\n\n if [ ${#packages_to_remove_existing[@]} -gt 0 ]; then\n pacman -R --noconfirm \"${packages_to_remove_existing[@]}\"\n echo \"------------------------------------------------\"\n else\n echo \"Нет пакетов для удаления.\"\n fi\n fi\n fi\n fi\nfi\n\nif [ \"${KERNEL_BOOT}\" != \"Не выбрано\" ]; then\n case \"${KERNEL_BOOT}\" in\n \"Linux 5.15\") ubconfig set [boot] KERNEL_BOOT=linux515 ;;\n \"Linux 6.1\") ubconfig set [boot] KERNEL_BOOT=linux61 ;;\n \"Linux 6.6\") ubconfig set [boot] KERNEL_BOOT=linux66 ;;\n esac\n echo \"------------------------------------------------\"\nfi"
}
Для добавления плагина, который предоставляет возможность устанавливать или удалять необходимое программное обеспечение, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
#!/usr/bin/bash
if [ "${VERSION_DISTR_MENU}" != "Не выбрано" ]; then
case "${VERSION_DISTR}" in
"2405-1") VERSION_DISTR="upgrade-2405-1" ;;
"2405-2") VERSION_DISTR="upgrade-2405-2" ;;
"2405-3") VERSION_DISTR="upgrade-2405-3" ;;
esac
if [ "${VERSION_DISTR_MENU}" = "Установить новую версию" ]; then
pacinstall --yolo ${VERSION_DISTR}
elif [ "${VERSION_DISTR_MENU}" = "Удалить версию и вернуть базовую" ]; then
pacremove --yolo ${VERSION_DISTR}
fi
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
VERSION_DISTR_MENU | Вариант действия: | Меню | Пункты меню: Установить новую версию,Удалить версию и вернуть базовую,Не выбрано Выбранный элемент: Не выбрано |
VERSION_DISTR | Версия дистрибутива: | Меню | Пункты меню: 2405-1,2405-2,2405-3,Не выбрано Выбранный элемент: Не выбрано |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "VERSION_DISTR_MENU",
"title": "*Вариант действия:",
"items": [
"Установить новую версию",
"Удалить версию и вернуться на базовую",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "select",
"id": "VERSION_DISTR",
"title": "*Версия дистрибутива:",
"items": [
"2405.1",
"2405.2",
"2405.3",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Управление версией дистрибутива",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "pacman -Syy\n[[ ${VERSION_DISTR_MENU} == \"Не выбрано\" ]] && echo \"Вариант действия не был выбран.\" && exit 0\n[[ ${VERSION_DISTR} == \"Не выбрано\" ]] && echo \"Версия дистрибутива не была выбрана.\" && exit 0\ncase \"${VERSION_DISTR}\" in\n \"2405.1\") VERSION_DISTR=\"upgrade-2405-1\" ;;\n \"2405.2\") VERSION_DISTR=\"upgrade-2405-2\" ;;\n \"2405.3\") VERSION_DISTR=\"upgrade-2405-3\" ;;\nesac\n[[ ${VERSION_DISTR_MENU} == \"Установить новую версию\" ]] && pacinstall --yolo \"${VERSION_DISTR}\" <&-\n[[ ${VERSION_DISTR_MENU} == \"Удалить версию и вернуться на базовую\" ]] && pacremove --yolo \"${VERSION_DISTR}\" <&-\ntrue\necho \"------------------------------------------------\"\necho \"Текущая версия дистрибутива:\"\nlsb_release -d | cut -f2-"
}
Для добавления плагина, который предоставляет возможность изменять режим загрузки операционной системы, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
#!/usr/bin/bash
if [ "${GRUB_DEFAULT_MENU}" != "Не выбрано" ]; then
VERSION=$(lsb_release -r -s | cut -d '.' -f 1)
DESCRIPTION=$(lsb_release -d | awk -F' ' '{print $(NF-2), $(NF-1)}')
LAST_MENUENTRY=$(/usr/lib/ublinux/scripts/grub-functions exec_get_last_menuentry)
case "${GRUB_DEFAULT_MENU}" in
"Полное сохранение HDD")
GRUB_DEFAULT="UBLinux ${DESCRIPTION} ${VERSION} - Полное сохранение HDD"
;;
"Песочница в RAM с сохранением профиля пользователя HDD")
GRUB_DEFAULT="UBLinux ${DESCRIPTION} ${VERSION} - Песочница в RAM с сохранением профиля пользователя HDD"
;;
"Полная песочница в RAM")
GRUB_DEFAULT="UBLinux ${DESCRIPTION} ${VERSION} - Полная песочница в RAM"
;;
"Сохранение в модуль HDD")
GRUB_DEFAULT="UBLinux ${DESCRIPTION} ${VERSION} - Сохранение в модуль HDD"
;;
"Песочница на HDD с сохранением профиля пользователя HDD")
GRUB_DEFAULT="Меню дополнительное>UBLinux ${DESCRIPTION} ${VERSION} - Песочница на HDD с сохранением профиля пользователя HDD"
;;
"Полная песочница на HDD")
GRUB_DEFAULT="Меню дополнительное>UBLinux ${DESCRIPTION} ${VERSION} - Полная песочница на HDD"
;;
"Восстановление: Загрузка базовых модулей HDD")
GRUB_DEFAULT="Меню восстановления>UBLinux ${DESCRIPTION} ${VERSION} - Загрузка базовых модулей HDD, без настроек пользователя"
;;
"Восстановление: Загрузка базовых модулей RAM")
GRUB_DEFAULT="Меню восстановления>UBLinux ${DESCRIPTION} ${VERSION} - Загрузка базовых модулей RAM, без настроек пользователя"
;;
esac
ubconfig set [boot] GRUB_DEFAULT="${GRUB_DEFAULT}"
echo "------------------------------------------------"
echo "Текущий режим загрузки: ${LAST_MENUENTRY}"
echo "------------------------------------------------"
echo "Установлен режим загрузки по умолчанию: ${GRUB_DEFAULT_MENU}"
echo "------------------------------------------------"
fi
if [ "${GRUB_SUPERUSERS_DISABLE}" != "Не выбрано" ]; then
case "${GRUB_SUPERUSERS_DISABLE}" in
"Да")
ubconfig remove [boot] GRUB_SUPERUSERS
echo "Запрос пароля GRUB отключен."
;;
"Нет")
ubconfig set [boot] GRUB_SUPERUSERS=superadmin
echo "Запрос пароля GRUB включен."
;;
esac
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
GRUB_DEFAULT_MENU | Режим загрузки системы: | Меню | Пункты меню: Полное сохранение HDD,Песочница в RAM с сохранением профиля пользователя HDD,Полная песочница в RAM,Сохранение в модуль HDD,Песочница на HDD с сохранением профиля пользователя HDD,Полная песочница на HDD,Восстановление: Загрузка базовых модулей HDD,Восстановление: Загрузка базовых модулей RAM,Не выбрано Выбранный элемент: Не выбрано |
GRUB_SUPERUSERS_DISABLE | Отключить запрос пароля GRUB | Меню | Пункты меню: Да, Нет, Не выбрано Выбранный элемент: Не выбрано |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "GRUB_DEFAULT_MENU",
"title": "*Режим загрузки:",
"items": [
"Полное сохранение HDD",
"Песочница в RAM с сохранением профиля пользователя HDD",
"Полная песочница в RAM",
"Сохранение в модуль HDD",
"Песочница на HDD с сохранением профиля пользователя HDD",
"Полная песочница на HDD",
"Восстановление: Загрузка базовых модулей HDD",
"Восстановление: Загрузка базовых модулей RAM",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "select",
"id": "GRUB_SUPERUSERS_DISABLE",
"title": "Отключить запрос пароля GRUB",
"items": [
"Да",
"Нет",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Режим загрузки ОС",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ \"${GRUB_DEFAULT_MENU}\" != \"Не выбрано\" ]; then\n\n VERSION=$(lsb_release -r -s | cut -d '.' -f 1)\n DESCRIPTION=$(lsb_release -d | awk -F' ' '{print $(NF-2), $(NF-1)}')\n LAST_MENUENTRY=$(/usr/lib/ublinux/scripts/grub-functions exec_get_last_menuentry)\n \n case \"${GRUB_DEFAULT_MENU}\" in\n \"Полное сохранение HDD\")\n GRUB_DEFAULT=\"UBLinux ${DESCRIPTION} ${VERSION} - Полное сохранение HDD\"\n ;;\n \"Песочница в RAM с сохранением профиля пользователя HDD\")\n GRUB_DEFAULT=\"UBLinux ${DESCRIPTION} ${VERSION} - Песочница в RAM с сохранением профиля пользователя HDD\"\n ;;\n \"Полная песочница в RAM\")\n GRUB_DEFAULT=\"UBLinux ${DESCRIPTION} ${VERSION} - Полная песочница в RAM\"\n ;;\n \"Сохранение в модуль HDD\")\n GRUB_DEFAULT=\"UBLinux ${DESCRIPTION} ${VERSION} - Сохранение в модуль HDD\"\n ;;\n \"Песочница на HDD с сохранением профиля пользователя HDD\")\n GRUB_DEFAULT=\"Меню дополнительное>UBLinux ${DESCRIPTION} ${VERSION} - Песочница на HDD с сохранением профиля пользователя HDD\"\n ;;\n \"Полная песочница на HDD\")\n GRUB_DEFAULT=\"Меню дополнительное>UBLinux ${DESCRIPTION} ${VERSION} - Полная песочница на HDD\"\n ;;\n \"Восстановление: Загрузка базовых модулей HDD\")\n GRUB_DEFAULT=\"Меню восстановления>UBLinux ${DESCRIPTION} ${VERSION} - Загрузка базовых модулей HDD, без настроек пользователя\"\n ;;\n \"Восстановление: Загрузка базовых модулей RAM\")\n GRUB_DEFAULT=\"Меню восстановления>UBLinux ${DESCRIPTION} ${VERSION} - Загрузка базовых модулей RAM, без настроек пользователя\"\n ;;\n esac\n\n ubconfig set [boot] GRUB_DEFAULT=\"${GRUB_DEFAULT}\"\n echo \"------------------------------------------------\"\n echo \"Текущий режим загрузки: ${LAST_MENUENTRY}\"\n echo \"------------------------------------------------\"\n echo \"Установлен режим загрузки по умолчанию: ${GRUB_DEFAULT_MENU}\"\n echo \"------------------------------------------------\"\n \nfi\n\nif [ \"${GRUB_SUPERUSERS_DISABLE}\" != \"Не выбрано\" ]; then\n case \"${GRUB_SUPERUSERS_DISABLE}\" in\n \"Да\")\n ubconfig remove [boot] GRUB_SUPERUSERS\n echo \"Запрос пароля GRUB отключен.\"\n ;;\n \"Нет\")\n ubconfig set [boot] GRUB_SUPERUSERS=superadmin\n echo \"Запрос пароля GRUB включен.\"\n ;;\n esac\nfi"
}
Для добавления плагина, который предоставляет возможность откатить версию программного обеспечения до необходимой, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
#!/usr/bin/bash
## Архивные источники пакетов:
## https://archive.ublinux.ru/
## https://archive.archlinux.org/
## https://manjaro.tuxboy.eu/
##
## Пример: ubl-settings-environment-2.6-1-any.pkg.tar.zst
## Источник программ: UBLinux Linux Archive
## Наименование программы: ubl-settings-environment
## Версия программы: 2.6-1
case "${SOURCE_REPO}" in
"Только кешированные пакеты") SOURCE_REPO="--cached-only" ;;
"Arch Linux Archive") SOURCE_REPO="--ala-only" ;;
"Manjaro Linux Archive") SOURCE_REPO="--mla-only" ;;
"UBLinux Linux Archive") SOURCE_REPO="--ula-only" ;;
esac
case "${EXCEPTION}" in
"1") EXCEPTION="--ignore always" ;;
"0") EXCEPTION="--ignore never" ;;
esac
if [ -n "${NAME_PACKAGE}" ] && [ -n "${VERSION_PACKAGE}" ] && [ -n "${SOURCE_REPO}" ]; then
echo "------------------------------------------------"
downgrade ${SOURCE_REPO} ${EXCEPTION} ${NAME_PACKAGE}=${VERSION_PACKAGE} -- --noconfirm
else
echo "Ошибка: Не указано название или версия программы."
fi
echo "------------------------------------------------"
echo "Пакеты в каталоге /var/cache/pacman/pkg/ :"
packages=$(ls -1 /var/cache/pacman/pkg/ | grep -v '\.sig$' | nl)
# Проверка на пустой вывод
if [ -z "$packages" ]; then
echo "Каталог пуст."
else
echo "$packages"
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
SOURCE_REPO | Источник программ: | Меню | Пункты меню: Только кешированные пакеты,Arch Linux Archive,Manjaro Linux Archive,UBLinux Linux Archive Выбранный элемент: Только кешированные пакеты |
NAME_PACKAGE | Наименование программы: | Текстовое поле | Размер: 40 |
VERSION_PACKAGE | Версия программы: | Текстовое поле | Размер: 40 |
EXCEPTION | Внести программу в исключения для последующих обновлений ОС? | Флажок | Состояние по умолчанию: Отключено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "SOURCE_REPO",
"title": "*Источник программ:",
"items": [
"Только кешированные пакеты",
"Arch Linux Archive",
"Manjaro Linux Archive",
"UBLinux Linux Archive"
],
"value": "UBLinux Linux Archive"
},
{
"type": "text",
"id": "NAME_PACKAGE",
"title": "*Наименование программы (пример: ubl-settings-environment):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "VERSION_PACKAGE",
"title": "*Версия программы из: <a href=\"https://archive.ublinux.ru/\">U.L.A.</a>, <a href=\"https://archive.archlinux.org/\">A.L.A.</a>, <a href=\"https://manjaro.tuxboy.eu/\">M.L.A.</a> (пример: 2.6-1):",
"size": 40,
"value": ""
},
{
"type": "checkbox",
"id": "EXCEPTION",
"title": "*Внести программу в исключения для последующих обновлений ОС?",
"value": 0
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Программы) Возврат предыдущей версии ПО",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "## Архивные источники пакетов:\n## https://archive.ublinux.ru/\n## https://archive.archlinux.org/\n## https://manjaro.tuxboy.eu/\n## \n## Пример: ubl-settings-environment-2.6-1-any.pkg.tar.zst\n## Источник программ: UBLinux Linux Archive\n## Наименование программы: ubl-settings-environment\n## Версия программы: 2.6-1\n\ncase \"${SOURCE_REPO}\" in\n \"Только кешированные пакеты\") SOURCE_REPO=\"--cached-only\" ;;\n \"Arch Linux Archive\") SOURCE_REPO=\"--ala-only\" ;;\n \"Manjaro Linux Archive\") SOURCE_REPO=\"--mla-only\" ;;\n \"UBLinux Linux Archive\") SOURCE_REPO=\"--ula-only\" ;;\nesac\n\ncase \"${EXCEPTION}\" in\n \"1\") EXCEPTION=\"--ignore always\" ;;\n \"0\") EXCEPTION=\"--ignore never\" ;;\nesac\n\nif [ -n \"${NAME_PACKAGE}\" ] && [ -n \"${VERSION_PACKAGE}\" ] && [ -n \"${SOURCE_REPO}\" ]; then\n echo \"------------------------------------------------\"\n downgrade ${SOURCE_REPO} ${EXCEPTION} ${NAME_PACKAGE}=${VERSION_PACKAGE} -- --noconfirm\nelse\n echo \"Ошибка: Не указано название или версия программы.\"\nfi\n\necho \"------------------------------------------------\"\necho \"Пакеты в каталоге /var/cache/pacman/pkg/ :\"\npackages=$(ls -1 /var/cache/pacman/pkg/ | grep -v '\\.sig$' | nl)\n\n# Проверка на пустой вывод\nif [ -z \"$packages\" ]; then\n echo \"Каталог пуст.\"\nelse\n echo \"$packages\"\nfi"
}
Для добавления плагина, который предоставляет возможность запросить у рабочего сервера вывод текущего конфигурационного файла ublinux.ini, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
pygmentize -l properties /mnt/livemedia/ublinux-data/ublinux.ini
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Печать полного файла настроек",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "pygmentize -l properties /mnt/livemedia/ublinux-data/ublinux.ini\n"
}
Для добавления плагина, который предоставляет возможность изменять параметры конфигурационного файла ublinux.ini, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
if [[ "$SECTION" != \[*\] ]] && [ -n "${SECTION}" ]; then
SECTION="[$SECTION]"
fi
if [ "${PARAMETER}" == "*" ]; then
PARAMETER="[*]"
fi
case "${SAVE}" in
"Глобальную и локальную конфигурацию") unset SAVE ;;
"Глобальную конфигурацию") SAVE="--target global" ;;
"Локальную конфигурацию") SAVE="--target system" ;;
esac
if [ "${ACTION}" == "Получить параметр" ]; then
echo "------------------------------------------------"
echo "Локальный конфигурационный файл: ${SECTION}"
echo ""
ubconfig --source system get ${SECTION} ${PARAMETER}
echo "------------------------------------------------"
echo "Глобальный конфигурационный файл: ${SECTION}"
echo ""
ubconfig --source global get ${SECTION} ${PARAMETER}
echo "------------------------------------------------"
elif [ "${ACTION}" == "Добавить параметр" ]; then
if [ -n "${SECTION}" ] && [ -n "${PARAMETER}" ] && [ -n "${VALUE}" ]; then
ubconfig ${SAVE} set ${SECTION} ${PARAMETER}=${VALUE}
echo ""
echo "Параметр: ${PARAMETER}=${VALUE} был добавлен в секцию: ${SECTION}"
else
echo "Параметр не был добавлен. Секция, параметр или значение не были заполнены."
fi
elif [ "${ACTION}" == "Добавить значение в параметр" ]; then
if [ -n "${SECTION}" ] && [ -n "${PARAMETER}" ] && [ -n "${VALUE}" ]; then
ubconfig ${SAVE} set ${SECTION} ${PARAMETER}++=${VALUE}
echo ""
echo "Значение: "${VALUE}" было добавлено в параметр: ${PARAMETER} из секции: ${SECTION}"
else
echo "Значение в параметр не было добавлено. Секция, параметр или значение не были заполнены."
fi
elif [ "${ACTION}" == "Удалить параметр" ]; then
if [ -n "${SECTION}" ] && [ -n "${PARAMETER}" ]; then
ubconfig ${SAVE} remove ${SECTION} ${PARAMETER}
echo ""
echo "Параметр: "${PARAMETER}" был удален из секции: ${SECTION}"
else
echo "Параметр не был удален. Секция или параметр не были заполнены."
fi
elif [ "${ACTION}" == "Удалить значение из параметра" ]; then
if [ -n "${SECTION}" ] && [ -n "${PARAMETER}" ] && [ -n "${VALUE}" ]; then
ubconfig ${SAVE} set ${SECTION} ${PARAMETER}--=${VALUE}
echo ""
echo "Значение: "${VALUE}" было удалено из параметра: ${PARAMETER} в секции: ${SECTION}"
else
echo "Значение в параметре не было удалено. Секция, параметр или значение не были заполнены."
fi
elif [ "${ACTION}" == "Не выбрано" ]; then
echo "------------------------------------------------"
echo "Вариант действия не был выбран"
echo "------------------------------------------------"
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ACTION | *Вариант действия: | Меню | Пункты меню: Получить параметр, Добавить параметр, Добавить значение в параметр, Удалить параметр, Удалить значение из параметра, Не выбрано Выбранный элемент: Не выбрано |
SECTION | *Секция параметра (пример: system): | Текстовое окно | Строк: 1 |
PARAMETER | *Параметр (пример: SERVICES_ENABLE): | Текстовое окно | Строк: 1 |
VALUE | *Значение (пример: cockpit): | Текстовое окно | Строк: 1 |
SAVE | Сохранить в: | Меню | Пункты меню: Глобальную и локальную конфигурацию, Глобальную конфигурацию, Локальную конфигурацию Выбранный элемент: Глобальную и локальную конфигурацию |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "ACTION",
"title": "*Вариант действия:",
"items": [
"Получить параметр",
"Добавить параметр",
"Добавить значение в параметр",
"Удалить параметр",
"Удалить значение из параметра",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "textarea",
"id": "SECTION",
"title": "*Секция параметра (пример: system):",
"rows": 1,
"value": ""
},
{
"type": "textarea",
"id": "PARAMETER",
"title": "*Параметр (пример: SERVICES_ENABLE):",
"rows": 1,
"value": ""
},
{
"type": "textarea",
"id": "VALUE",
"title": "*Значение (пример: cockpit)",
"rows": 1,
"value": ""
},
{
"type": "select",
"id": "SAVE",
"title": "Сохранить в:",
"items": [
"Глобальную и локальную конфигурацию",
"Глобальную конфигурацию",
"Локальную конфигурацию"
],
"value": "Глобальную и локальную конфигурацию"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Смена произвольных параметров из ublinux.ini",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [[ \"$SECTION\" != \\[*\\] ]] && [ -n \"${SECTION}\" ]; then\n SECTION=\"[$SECTION]\"\nfi\nif [ \"${PARAMETER}\" == \"*\" ]; then\n PARAMETER=\"[*]\"\nfi\n\ncase \"${SAVE}\" in\n \"Глобальную и локальную конфигурацию\") unset SAVE ;;\n \"Глобальную конфигурацию\") SAVE=\"--target global\" ;;\n \"Локальную конфигурацию\") SAVE=\"--target system\" ;;\nesac\n\nif [ \"${ACTION}\" == \"Получить параметр\" ]; then\n echo \"------------------------------------------------\"\n echo \"Локальный конфигурационный файл: ${SECTION}\"\n echo \"\"\n ubconfig --source system get ${SECTION} ${PARAMETER}\n echo \"------------------------------------------------\"\n echo \"Глобальный конфигурационный файл: ${SECTION}\"\n echo \"\"\n ubconfig --source global get ${SECTION} ${PARAMETER}\n echo \"------------------------------------------------\"\n\nelif [ \"${ACTION}\" == \"Добавить параметр\" ]; then\n if [ -n \"${SECTION}\" ] && [ -n \"${PARAMETER}\" ] && [ -n \"${VALUE}\" ]; then\n ubconfig ${SAVE} set ${SECTION} ${PARAMETER}=${VALUE}\n echo \"\"\n echo \"Параметр: ${PARAMETER}=${VALUE} был добавлен в секцию: ${SECTION}\"\n else\n echo \"Параметр не был добавлен. Секция, параметр или значение не были заполнены.\"\n fi\n\nelif [ \"${ACTION}\" == \"Добавить значение в параметр\" ]; then\n if [ -n \"${SECTION}\" ] && [ -n \"${PARAMETER}\" ] && [ -n \"${VALUE}\" ]; then\n ubconfig ${SAVE} set ${SECTION} ${PARAMETER}++=${VALUE}\n echo \"\"\n echo \"Значение: \"${VALUE}\" было добавлено в параметр: ${PARAMETER} из секции: ${SECTION}\"\n else\n echo \"Значение в параметр не было добавлено. Секция, параметр или значение не были заполнены.\"\n fi\n\nelif [ \"${ACTION}\" == \"Удалить параметр\" ]; then\n if [ -n \"${SECTION}\" ] && [ -n \"${PARAMETER}\" ]; then\n ubconfig ${SAVE} remove ${SECTION} ${PARAMETER}\n echo \"\"\n echo \"Параметр: \"${PARAMETER}\" был удален из секции: ${SECTION}\"\n else\n echo \"Параметр не был удален. Секция или параметр не были заполнены.\"\n fi\n\nelif [ \"${ACTION}\" == \"Удалить значение из параметра\" ]; then\n if [ -n \"${SECTION}\" ] && [ -n \"${PARAMETER}\" ] && [ -n \"${VALUE}\" ]; then\n ubconfig ${SAVE} set ${SECTION} ${PARAMETER}--=${VALUE}\n echo \"\"\n echo \"Значение: \"${VALUE}\" было удалено из параметра: ${PARAMETER} в секции: ${SECTION}\"\n else\n echo \"Значение в параметре не было удалено. Секция, параметр или значение не были заполнены.\"\n fi\n\nelif [ \"${ACTION}\" == \"Не выбрано\" ]; then\n echo \"------------------------------------------------\"\n echo \"Вариант действия не был выбран\"\n echo \"------------------------------------------------\"\nfi\n"
}
Ленивое зеркало — это механизм, при котором рабочие серверы обращаются к основному серверу, настроенному как "ленивое зеркало", для обновления и установки программ и модулей.
Процесс работы:
- Один из рабочих серверов запрашивает обновление/установку пакетов;
- Основной сервер скачивает обновления/пакеты из репозитория и размещает их в локальном репозитории;
- Остальные рабочие сервера запрашивают обновление/установку пакетов и скачивают их из локального сервера.
Для огранизации ленивого зеркала необходимо создать плагины "Публикация ленивого зеркала" и "Подключение к ленивому зеркалу", а также создать и выполнить одноименные события.
Для добавления плагина, который предоставляет возможность опубликовать ленивое зеркало, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
case "${REPOPUBLIC_CACHE}" in
"Включить ленивое зеркало") REPOPUBLIC_CACHE="enable" ;;
"Выключить ленивое зеркало") REPOPUBLIC_CACHE="disable" ;;
esac
if [ "${REPOPUBLIC_CACHE}" != "Не выбрано" ]; then
ubconfig set [update] REPOPUBLIC_CACHE=${REPOPUBLIC_CACHE}
else
echo "Вариант действия не был выбран."
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
REPOPUBLIC_CACHE | *Вариант действия: | Меню | Пункты меню: Включить ленивое зеркало, Выключить ленивое зеркало, Не выбрано Выбранный элемент: Не выбрано |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "REPOPUBLIC_CACHE",
"title": "*Вариант действия",
"items": [
"Включить ленивое зеркало",
"Выключить ленивое зеркало",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Публикация ленивого зеркала",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "case \"${REPOPUBLIC_CACHE}\" in\n \"Включить ленивое зеркало\") REPOPUBLIC_CACHE=\"enable\" ;;\n \"Выключить ленивое зеркало\") REPOPUBLIC_CACHE=\"disable\" ;;\nesac\n\nif [ \"${REPOPUBLIC_CACHE}\" != \"Не выбрано\" ]; then\nubconfig set [update] REPOPUBLIC_CACHE=${REPOPUBLIC_CACHE}\nelse\necho \"Вариант действия не был выбран.\"\nfi"
}
Для добавления плагина, который предоставляет возможность подключения к ленивому зеркалу, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
declare -A REPOSITORIES=( ["CORE"]="${CORE}" ["MODULES"]="${MODULES}" ["EXTRA"]="${EXTRA}" ["COMMUNITY"]="${COMMUNITY}" ["MULTILIB"]="${MULTILIB}" )
if [ -n "${REPOSITORY_IP}" ]; then
ubconfig set [update] REPOSITORY=only
echo "------------------------------------------------"
for key in "${!REPOSITORIES[@]}"; do
if [ "${REPOSITORIES[$key]}" == "1" ]; then
ubconfig set [update] REPOSITORY[${key,,}]=\'"http://${REPOSITORY_IP}/repo/ublinux_2405/\$repo/\$arch"\'
echo "------------------------------------------------"
fi
done
else
echo "IP-адрес или имя прокси-сервера не были указаны."
fi
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
REPOSITORY_IP | *IP-адрес или имя прокси-сервера (пример: 192.168.0.1:8080): | Текстовое окно | Строк: 2 |
CORE | Репозиторий: core | Флажок | Состояние по умолчанию: Не отмечено |
MODULES | Репозиторий: modules | Флажок | Состояние по умолчанию: Не отмечено |
EXTRA | Репозиторий: extra | Флажок | Состояние по умолчанию: Не отмечено |
COMMUNITY | Репозиторий: community | Флажок | Состояние по умолчанию: Не отмечено |
MULTILIB | Репозиторий: multilib | Флажок | Состояние по умолчанию: Не отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "textarea",
"id": "REPOSITORY_IP",
"title": "*IP-адрес или имя прокси-сервера (пример: 192.168.0.1:8080):",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "CORE",
"title": "Репозиторий: core",
"value": 0
},
{
"type": "checkbox",
"id": "MODULES",
"title": "Репозиторий: modules",
"value": 0
},
{
"type": "checkbox",
"id": "EXTRA",
"title": "Репозиторий: extra",
"value": 0
},
{
"type": "checkbox",
"id": "COMMUNITY",
"title": "Репозиторий: community",
"value": 0
},
{
"type": "checkbox",
"id": "MULTILIB",
"title": "Репозиторий: multilib",
"value": 0
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Подключение к ленивому зеркалу",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "declare -A REPOSITORIES=( [\"CORE\"]=\"${CORE}\" [\"MODULES\"]=\"${MODULES}\" [\"EXTRA\"]=\"${EXTRA}\" [\"COMMUNITY\"]=\"${COMMUNITY}\" [\"MULTILIB\"]=\"${MULTILIB}\" )\n\nif [ -n \"${REPOSITORY_IP}\" ]; then\n ubconfig set [update] REPOSITORY=only\n echo \"------------------------------------------------\"\n \n for key in \"${!REPOSITORIES[@]}\"; do\n if [ \"${REPOSITORIES[$key]}\" == \"1\" ]; then\n ubconfig set [update] REPOSITORY[${key,,}]=\\'\"http://${REPOSITORY_IP}/repo/ublinux_2405/\\$repo/\\$arch\"\\'\n echo \"------------------------------------------------\"\n fi\n done\nelse\n echo \"IP-адрес или имя прокси-сервера не были указаны.\"\nfi"
}
Для добавления плагина, который предоставляет возможность включить VNC на сервере для подключения к удаленному рабочему столу, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
[[ ${ACTION} == "Отключить сервис" ]] && ubconfig remove [desktop] X11VNC[password]
[[ -z ${TYPE_PASSWD} ]] && echo "ПРЕДУПРЕЖДЕНИЕ: Не введён пароль! Установлен пароль по умолчанию 'ublinux'" && TYPE_PASSWD="ublinux"
[[ ${ACTION} == "Включить сервис" && ${TYPE_PASSWD} == "По умолчанию (ublinux)" ]] && ubconfig set [desktop] X11VNC[password]="$(base64 <<< ublinux)"
[[ ${ACTION} == "Включить сервис" && ${TYPE_PASSWD} == "Ввести пароль" ]] && ubconfig set [desktop] X11VNC[password]="$(base64 <<< ${PASSWD})"
[[ ${ACTION} == "Включить сервис" && ${TYPE_PASSWD} == "Ввести хеш" ]] && ubconfig set [desktop] X11VNC[password]="${PASSWD}" || true
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ACTION | *Действие: | Меню | Пункты меню: Включить сервис, Отключить сервис Выбранный элемент: Включить сервис |
TYPE_PASSWD | *Тип пароля: | Меню | Пункты меню: По умолчанию (ublinux), Ввести пароль, Ввести хеш Выбранный элемент: По умолчанию (ublinux) |
PASSWD | Пароль/Хеш: | Текстовое поле | Размер: 40 |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "ACTION",
"title": "*Действие:",
"items": [
"Включить сервис",
"Отключить сервис"
],
"value": "Включить сервис"
},
{
"type": "select",
"id": "TYPE_PASSWD",
"title": "*Тип пароля:",
"items": [
"По умолчанию (ublinux)",
"Ввести пароль",
"Ввести хеш"
],
"value": "По умолчанию (ublinux)"
},
{
"type": "text",
"id": "PASSWD",
"title": "Пароль/Хеш:",
"size": 40,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Удалённый рабочий стол VNC",
"command": "node bin/shell-plugin.js",
"enabled": 1,
"ipc": 0,
"wf": 0,
"stdin": 0,
"uid": "",
"gid": "",
"cwd": "",
"script": "[[ ${ACTION} == \"Отключить сервис\" ]] && ubconfig remove [desktop] X11VNC[password]\n[[ -z ${TYPE_PASSWD} ]] && echo \"ПРЕДУПРЕЖДЕНИЕ: Не введён пароль! Установлен пароль по умолчанию 'ublinux'\" && TYPE_PASSWD=\"ublinux\"\n[[ ${ACTION} == \"Включить сервис\" && ${TYPE_PASSWD} == \"По умолчанию (ublinux)\" ]] && ubconfig set [desktop] X11VNC[password]=\"$(base64 <<< ublinux)\"\n[[ ${ACTION} == \"Включить сервис\" && ${TYPE_PASSWD} == \"Ввести пароль\" ]] && ubconfig set [desktop] X11VNC[password]=\"$(base64 <<< ${PASSWD})\"\n[[ ${ACTION} == \"Включить сервис\" && ${TYPE_PASSWD} == \"Ввести хеш\" ]] && ubconfig set [desktop] X11VNC[password]=\"${PASSWD}\" || true\n"
}
Для добавления плагина, который предоставляет возможность управлять статусом сервисов на рабочих серверах, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Система) Управление сервисами
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [ "${ACTION}" == "Включить" ]; then
COMMAND="SERVICES_ENABLE"
PREFIX="++"
MESSAGE="включен"
elif [ "${ACTION}" == "Выключить" ]; then
COMMAND="SERVICES_ENABLE"
PREFIX="--"
MESSAGE="отключен"
elif [ "${ACTION}" == "Добавить в чёрный список" ]; then
COMMAND="SERVICES_DISABLE"
PREFIX="++"
MESSAGE="добавлен в чёрный список"
elif [ "${ACTION}" == "Удалить из чёрного списка" ]; then
COMMAND="SERVICES_DISABLE"
PREFIX="--"
MESSAGE="удалён из чёрного списка"
else echo "Не выбрано действие. Остановка."
exit 0
fi
action_command() {
ubconfig set [system] $COMMAND${PREFIX}=$1
echo "Сервис $1 $MESSAGE."
}
acton_command_custom() {
SERVICES=($CUSTOM_FIELD)
for SERVICE in "${SERVICES[@]}"; do
ubconfig set [system] $COMMAND${PREFIX}="${SERVICE}"
echo "Сервис $SERVICE $MESSAGE."
done
}
if [ "${DBUS}" == "1" ]; then
action_command "dbus-broker"
fi
if [ "${NETWORKMANAGER}" == "1" ]; then
action_command "NetworkManager"
fi;
if [ "${SSHD}" == "1" ]; then
action_command "sshd"
fi;
if [ "${SWAPSPACE}" == "1" ]; then
action_command "swapspace"
fi
if [ "${TIMESYNCD}" == "1" ]; then
action_command "systemd-timesyncd"
fi
if [ "${CUPS}" == "1" ]; then
action_command "cups"
fi
if [ "${COCKPIT}" == "1" ]; then
action_command "cockpit.socket"
fi
if [ "${AVAHIDAEMON}" == "1" ]; then
action_command "avahi-daemon"
fi
if [ "${AVAHIDNSCONFD}" == "1" ]; then
action_command "avahi-dnsconfd"
fi
if [ "${SMB}" == "1" ]; then
action_command "smb"
fi
if [ "${NMB}" == "1" ]; then
action_command "nmb"
fi
if [ "${WINBIND}" == "1" ]; then
action_command "winbind"
fi
if [ "${BLUETOOTH}" == "1" ]; then
action_command "bluetooth"
fi
if [ "${VEYON}" == "1" ]; then
action_command "veyon"
fi
if [ ! -z "${CUSTOM_FIELD}" ]; then
acton_command_custom
fi
echo "------------------------------------------------"
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ACTION | *Вариант действия: | Меню | Пункты меню: Включить, Выключить, Добавить в чёрный список, Удалить из чёрного списка, Не выбрано Выбранный элемент: Не выбрано |
DBUS | D-Bus broker | Система межпроцессного взаимодействия, реализующая шину сообщений | Флажок | Состояние по умолчанию: Не отмечено |
NETWORKMANAGER | NetworkManager | Утилита для управления сетевыми соединениями” | Флажок | Состояние по умолчанию: Не отмечено |
SSHD | SSHd | Доступ через протокол ssh | Флажок | Состояние по умолчанию: Не отмечено |
SWAPSPACE | Swapspace | Динамический умный файл подкачки | Флажок | Состояние по умолчанию: Не отмечено |
TIMESYNCD | Timesyncd | Синхронизация времени | Флажок | Состояние по умолчанию: Не отмечено |
CUPS | CUPS | Сервер печати | Флажок | Состояние по умолчанию: Не отмечено |
COCKPIT | Cockpit | Панель удалённого администрирования | Флажок | Состояние по умолчанию: Не отмечено |
AVAHIDAEMON | Avahi daemon | Обнаружение сервисов в локальной сети | Флажок | Состояние по умолчанию: Не отмечено |
AVAHIDNSCONFD | Avahi dnsconfd | Обнаружение сервисов в локальной сети | Флажок | Состояние по умолчанию: Не отмечено |
SMB | Smb | Сервис протокола SMB/CIFS, доступ к каталогам и принтерам по сети | Флажок | Состояние по умолчанию: Не отмечено |
NMB | Nmb| Сервис протокола SMB/CIFS, доступ к каталогам и принтерам по сети | Флажок | Состояние по умолчанию: Не отмечено |
WINBIND | Winbind | Прокси для связи между PAM и NSS | Флажок | Состояние по умолчанию: Не отмечено |
BLUETOOTH | Bluetooth | Сервис протокола беспроводной связи | Флажок | Состояние по умолчанию: Не отмечено |
VEYON | Veyon | Программа для мониторинга и управления компьютерами | Флажок | Состояние по умолчанию: Не отмечено |
CUSTOM_FIELD | Наименование сервиса(-ов), через запятую (пример: smb,nmb,winbind): | Текстовое окно | Состояние по умолчанию: Не отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "select",
"id": "ACTION",
"title": "*Вариант действия:",
"items": [
"Включить",
"Выключить",
"Добавить в чёрный список",
"Удалить из чёрного списка",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "checkbox",
"id": "DBUS",
"title": "<span style=white-space:pre>D-Bus broker Система межпроцессного взаимодействия, реализующая шину сообщений</span>",
"value": 0
},
{
"type": "checkbox",
"id": "NETWORKMANAGER",
"title": "<span style=\"white-space:pre\">NetworkManager Утилита для управления сетевыми соединениями</span>",
"value": 0
},
{
"type": "checkbox",
"id": "SSHD",
"title": "<span style=white-space:pre>SSHd Доступ через протокол ssh</span>",
"value": 0
},
{
"type": "checkbox",
"id": "SWAPSPACE",
"title": "<span style=white-space:pre>Swapspace Динамический умный файл подкачки</span>",
"value": 0
},
{
"type": "checkbox",
"id": "TIMESYNCD",
"title": "<span style=white-space:pre>Timesyncd Синхронизация времени</span>",
"value": 0
},
{
"type": "checkbox",
"id": "CUPS",
"title": "<span style=white-space:pre>CUPS Сервер печати</span>",
"value": 0
},
{
"type": "checkbox",
"id": "COCKPIT",
"title": "<span style=white-space:pre>Cockpit Панель удалённого администрирования</span>",
"value": 0
},
{
"type": "checkbox",
"id": "AVAHIDAEMON",
"title": "<span style=white-space:pre>Avahi daemon Обнаружение сервисов в локальной сети</span>",
"value": 0
},
{
"type": "checkbox",
"id": "AVAHIDNSCONFD",
"title": "<span style=white-space:pre>Avahi dnsconfd Обнаружение сервисов в локальной сети</span>",
"value": 0
},
{
"type": "checkbox",
"id": "SMB",
"title": "<span style=white-space:pre>Smb Сервис протокола SMB/CIFS, доступ к каталогам и принтерам по сети</span>",
"value": 0
},
{
"type": "checkbox",
"id": "NMB",
"title": "<span style=white-space:pre>Nmb Сервис протокола SMB/CIFS, доступ к каталогам и принтерам по сети</span>",
"value": 0
},
{
"type": "checkbox",
"id": "WINBIND",
"title": "<span style=white-space:pre>Winbind Прокси для связи между PAM и NSS</span>",
"value": 0
},
{
"type": "checkbox",
"id": "BLUETOOTH",
"title": "<span style=white-space:pre>Bluetooth Сервис протокола беспроводной связи</span>",
"value": 0
},
{
"type": "checkbox",
"id": "VEYON",
"title": "<span style=white-space:pre>Veyon Программа для мониторинга и управления компьютерами</span>",
"value": 0
},
{
"type": "textarea",
"id": "CUSTOM_FIELD",
"title": "Наименование сервиса(-ов), через запятую (пример: smb,nmb,winbind):",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"title": "(Система) Управление сервисами",
"command": "node bin/shell-plugin.js",
"enabled": true,
"ipc": false,
"wf": false,
"stdin": false,
"uid": "",
"gid": "",
"cwd": "",
"script": "if [ \"${ACTION}\" == \"Включить\" ]; then\n COMMAND=\"SERVICES_ENABLE\"\n PREFIX=\"++\"\n MESSAGE=\"включен\"\nelif [ \"${ACTION}\" == \"Выключить\" ]; then\n COMMAND=\"SERVICES_ENABLE\"\n PREFIX=\"--\"\n MESSAGE=\"отключен\"\nelif [ \"${ACTION}\" == \"Добавить в чёрный список\" ]; then\n COMMAND=\"SERVICES_DISABLE\"\n PREFIX=\"++\"\n MESSAGE=\"добавлен в чёрный список\"\nelif [ \"${ACTION}\" == \"Удалить из чёрного списка\" ]; then\n COMMAND=\"SERVICES_DISABLE\"\n PREFIX=\"--\"\n MESSAGE=\"удалён из чёрного списка\"\nelse echo \"Не выбрано действие. Остановка.\"\nexit 0\nfi\n\naction_command() {\nubconfig set [system] $COMMAND${PREFIX}=$1\necho \"Сервис $1 $MESSAGE.\"\n}\n\nacton_command_custom() {\n SERVICES=($CUSTOM_FIELD)\n for SERVICE in \"${SERVICES[@]}\"; do\n\t ubconfig set [system] $COMMAND${PREFIX}=\"${SERVICE}\"\n echo \"Сервис $SERVICE $MESSAGE.\"\n done\n}\n\nif [ \"${DBUS}\" == \"1\" ]; then\n action_command \"dbus-broker\"\nfi\n\nif [ \"${NETWORKMANAGER}\" == \"1\" ]; then\n action_command \"NetworkManager\"\nfi;\n\nif [ \"${SSHD}\" == \"1\" ]; then\n action_command \"sshd\"\nfi;\n\nif [ \"${SWAPSPACE}\" == \"1\" ]; then\n action_command \"swapspace\"\nfi\n\nif [ \"${TIMESYNCD}\" == \"1\" ]; then\n action_command \"systemd-timesyncd\"\nfi\n\nif [ \"${CUPS}\" == \"1\" ]; then\n action_command \"cups\"\nfi\n\nif [ \"${COCKPIT}\" == \"1\" ]; then\n action_command \"cockpit.socket\"\nfi\n\nif [ \"${AVAHIDAEMON}\" == \"1\" ]; then\n action_command \"avahi-daemon\"\nfi\n\nif [ \"${AVAHIDNSCONFD}\" == \"1\" ]; then\n action_command \"avahi-dnsconfd\"\nfi\n\nif [ \"${SMB}\" == \"1\" ]; then\n action_command \"smb\"\nfi\n\nif [ \"${NMB}\" == \"1\" ]; then\n action_command \"nmb\"\nfi\n\nif [ \"${WINBIND}\" == \"1\" ]; then\n action_command \"winbind\"\nfi\n\nif [ \"${BLUETOOTH}\" == \"1\" ]; then\n action_command \"bluetooth\"\nfi\n\nif [ \"${VEYON}\" == \"1\" ]; then\n action_command \"veyon\"\nfi\n\nif [ ! -z \"${CUSTOM_FIELD}\" ]; then\n acton_command_custom\nfi\n\necho \"------------------------------------------------\""
}
Для добавления плагина, который предоставляет возможность управлять учетными записями GRUB на рабочих серверах, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Система) Управление учетной записью GRUB
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [ "${GRUB_SUPERUSERS_MENU}" != "Не выбрано" ]; then
RESULT=$(ubconfig get [boot] GRUB_SUPERUSERS)
if [ -z "$RESULT" ] || [ "$RESULT" == "(null)" ]; then
unset OPERATOR
unset OPERATOR_DEL
else
OPERATOR="++"
OPERATOR_DEL="--"
fi
case "${GRUB_SUPERUSERS_MENU}" in
"Добавить учетную запись")
ubconfig set [boot] GRUB_SUPERUSERS${OPERATOR}=${GRUB_SUPERUSERS}
if [ -n "${GRUB_PASSWORD}" ]; then
ubconfig set [boot] GRUB_PASSWORD[${GRUB_SUPERUSERS}]="${GRUB_PASSWORD}"
fi
echo "------------------------------------------------"
echo "Учетная запись GRUB "${GRUB_SUPERUSERS}" была добавлена."
echo "------------------------------------------------"
;;
"Удалить учетную запись")
ubconfig set [boot] GRUB_SUPERUSERS${OPERATOR_DEL}=${GRUB_SUPERUSERS}
ubconfig remove [boot] GRUB_PASSWORD[${GRUB_SUPERUSERS}]
echo "------------------------------------------------"
echo "Учетная запись GRUB "${GRUB_SUPERUSERS}" была удалена."
echo "------------------------------------------------"
;;
"Отключить запрос пароля GRUB")
ubconfig remove [boot] GRUB_SUPERUSERS
echo "Запрос пароля GRUB отключен. Для включения необходимо добавить нового пользователя GRUB."
;;
esac
else
echo "Вариант действия не был выбран."
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
GRUB_SUPERUSERS_MENU | *Вариант действия: | Меню | Пункты меню: Добавить учетную запись, Удалить учетную запись, Отключить запрос пароля GRUB, Не выбрано Выбранный элемент: Не выбрано |
GRUB_SUPERUSERS | Имя пользователя: | Текстовое поле | Размер: 40 |
GRUB_PASSWORD | Пароль или хеш пароля в формате grub.pbkdf2: | Текстовое окно | Строк: 2 |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "GRUB_SUPERUSERS_MENU",
"title": "*Вариант действия:",
"items": [
"Добавить учетную запись",
"Удалить учетную запись",
"Отключить запрос пароля GRUB",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "text",
"id": "GRUB_SUPERUSERS",
"title": "Имя пользователя:",
"size": 40,
"value": ""
},
{
"type": "textarea",
"id": "GRUB_PASSWORD",
"title": "Пароль или хеш пароля в формате grub.pbkdf2:",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 1
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "\nif [ \"${GRUB_SUPERUSERS_MENU}\" != \"Не выбрано\" ]; then\n\nRESULT=$(ubconfig get [boot] GRUB_SUPERUSERS)\n\n if [ -z \"$RESULT\" ] || [ \"$RESULT\" == \"(null)\" ]; then\n unset OPERATOR\n unset OPERATOR_DEL\n else\n OPERATOR=\"++\"\n OPERATOR_DEL=\"--\"\n fi\n\n case \"${GRUB_SUPERUSERS_MENU}\" in\n \"Добавить учетную запись\")\n ubconfig set [boot] GRUB_SUPERUSERS${OPERATOR}=${GRUB_SUPERUSERS}\n if [ -n \"${GRUB_PASSWORD}\" ]; then\n ubconfig set [boot] GRUB_PASSWORD[${GRUB_SUPERUSERS}]=\"${GRUB_PASSWORD}\"\n fi\n echo \"------------------------------------------------\"\n echo \"Учетная запись GRUB \"${GRUB_SUPERUSERS}\" была добавлена.\"\n echo \"------------------------------------------------\"\n ;;\n \"Удалить учетную запись\")\n ubconfig set [boot] GRUB_SUPERUSERS${OPERATOR_DEL}=${GRUB_SUPERUSERS}\n ubconfig remove [boot] GRUB_PASSWORD[${GRUB_SUPERUSERS}]\n echo \"------------------------------------------------\"\n echo \"Учетная запись GRUB \"${GRUB_SUPERUSERS}\" была удалена.\"\n echo \"------------------------------------------------\"\n ;;\n \"Отключить запрос пароля GRUB\")\n ubconfig remove [boot] GRUB_SUPERUSERS\n echo \"Запрос пароля GRUB отключен. Для включения необходимо добавить нового пользователя GRUB.\"\n ;;\n esac\n\nelse\n\n echo \"Вариант действия не был выбран.\"\n\nfi",
"title": "(Система) Управление учетной записью GRUB",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который предоставляет возможность устанавливать прокси и добавлять сертификаты в браузер Mozilla Firefox, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Программы) Настройка прокси и установка сертификатов в Firefox
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [ -z "$PROXY_IP" ] && [ -z "$PROXY_PORT" ] && [ "$ESPD" =="0" ]; then
echo "Ошибка: ни один параметр не был выбран."
exit 1
fi
echo "НАСТРОЙКА PROXY:"
echo " "
# Получение списка пользователей
LIST_USERS=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd)
# Если нет .mozilla, то она создается запуском firefox
for user in $LIST_USERS; do
if [ ! -d "/home/$user/.mozilla" ]; then
echo "------------------------------------------------"
echo "Каталог .mozilla отсутствует у пользователя \"$user\", выполняется создание..."
sudo -u "$user" bash -c 'firefox -headless & sleep 5; kill $!'
echo "Каталог .mozilla создан для пользователя \"$user\"."
echo "------------------------------------------------"
else
echo "Каталог .mozilla существует у пользователя \"$user\"."
fi
done
echo "------------------------------------------------"
if [ -n "$PROXY_IP" ] && [ -n "$PROXY_PORT" ]; then
# Выполняется переход пользователя в каталог профиля для создания user.js
for user in $LIST_USERS; do
# Путь к файлу profiles.ini
PROFILES_INI="/home/$user/.mozilla/firefox/profiles.ini"
if [ -f "$PROFILES_INI" ]; then
# Находим путь к активному профилю с именем default-release
PROFILE_PATH=$(awk -F= '/^Path=/ && $0 ~ /default-release/ {print $2}' "$PROFILES_INI")
if [ -n "$PROFILE_PATH" ]; then
PROFILE_DIR="/home/$user/.mozilla/firefox/$PROFILE_PATH"
if [ -d "$PROFILE_DIR" ]; then
# Создаем файл user.js и добавляем в него содержимое
sudo -u "$user" bash -c "cat <<EOF > \"$PROFILE_DIR/user.js\"
user_pref(\"network.proxy.type\", 1);
user_pref(\"network.proxy.http\", \"$PROXY_IP\");
user_pref(\"network.proxy.http_port\", $PROXY_PORT);
user_pref(\"network.proxy.ssl\", \"$PROXY_IP\");
user_pref(\"network.proxy.ssl_port\", $PROXY_PORT);
user_pref(\"network.proxy.socks\", \"$PROXY_IP\");
user_pref(\"network.proxy.socks_port\", $PROXY_PORT);
user_pref(\"network.proxy.socks_version\", 5);
EOF"
echo "Настройки proxy изменены для пользователя \"$user\" в профиль \"$PROFILE_PATH\"."
else
echo "Каталог профиля $PROFILE_DIR не существует у пользователя \"$user\"."
fi
else
echo "Не найден профиль default-release для пользователя \"$user\"."
fi
else
echo "Файл profiles.ini не найден у пользователя \"$user\"."
fi
done
echo "------------------------------------------------"
else
echo "IP-адрес прокси и/или порт не были заданы. Прокси не был установлен."
echo "------------------------------------------------"
fi
# Включение сертификата ЕСПД от Ростелеком
if [ -n "$CERT_PATH" ]; then
echo " "
echo "УСТАНОВКА СЕРТИФИКАТА ЕСПД:"
echo " "
for user in $LIST_USERS; do
# Путь к файлу profiles.ini
PROFILES_INI="/home/$user/.mozilla/firefox/profiles.ini"
if [ -f "$PROFILES_INI" ]; then
# Находим путь к активному профилю с именем default-release
PROFILE_PATH=$(awk -F= '/^Path=/ && $0 ~ /default-release/ {print $2}' "$PROFILES_INI")
if [ -n "$PROFILE_PATH" ]; then
PROFILE_DIR="/home/$user/.mozilla/firefox/$PROFILE_PATH"
if [ -d "$PROFILE_DIR" ];then
# Устанавливаем сертификат
if sudo -u "$user" bash -c "certutil -d sql:$PROFILE_DIR -A -t 'CT,c,' -i $CERT_PATH -n 'CA Root Social Objects - PJSC Rostelecom'"; then
echo "Сертификат успешно установлен для пользователя \"$user\"."
else
echo "Ошибка при установке сертификата для пользователя \"$user\"."
fi
else
echo "Каталог профиля $PROFILE_DIR не существует у пользователя \"$user\"."
fi
else
echo "Не найден профиль default-release для пользователя \"$user\"."
fi
else
echo "Файл profiles.ini не найден у пользователя \"$user\"."
fi
done
else
echo "Путь до сертификата не был указан. Сертификат не был установлен."
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
PROXY_IP | IP-адрес прокси: | Текстовое поле | Размер: 40 |
PROXY_PORT | Порт: | Текстовое поле | Размер: 40 |
CERT_PATH | Путь до сертификата: | Текстовое окно | Строк: 2 |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "text",
"id": "PROXY_IP",
"title": "IP-адрес прокси:",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "PROXY_PORT",
"title": "Порт:",
"size": 40,
"value": ""
},
{
"type": "textarea",
"id": "CERT_PATH",
"title": "Путь до сертификата:",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "if ! pacman -Q firefox &>/dev/null; then\n echo \"Ошибка: браузер Firefox не установлен.\"\n exit 1\nfi\n\nif [ -z \"$PROXY_IP\" ] && [ -z \"$PROXY_PORT\" ] && [ \"$ESPD\" ==\"0\" ]; then\n echo \"Ошибка: ни один параметр не был выбран.\"\n exit 1\nfi\n\necho \"НАСТРОЙКА PROXY:\"\necho \" \"\n# Получение списка пользователей\nLIST_USERS=$(awk -F: '$3 >= 1000 && $1 != \"nobody\" {print $1}' /etc/passwd)\n\n# Если нет .mozilla, то она создается запуском firefox\nfor user in $LIST_USERS; do\n if [ ! -d \"/home/$user/.mozilla\" ]; then\n echo \"------------------------------------------------\"\n echo \"Каталог .mozilla отсутствует у пользователя \\\"$user\\\", выполняется создание...\"\n sudo -u \"$user\" bash -c 'firefox -headless & sleep 5; kill $!'\n echo \"Каталог .mozilla создан для пользователя \\\"$user\\\".\"\n echo \"------------------------------------------------\"\n else\n echo \"Каталог .mozilla существует у пользователя \\\"$user\\\".\"\n fi\ndone\necho \"------------------------------------------------\"\n\nif [ -n \"$PROXY_IP\" ] && [ -n \"$PROXY_PORT\" ]; then\n# Выполняется переход пользователя в каталог профиля для создания user.js\nfor user in $LIST_USERS; do\n # Путь к файлу profiles.ini\n PROFILES_INI=\"/home/$user/.mozilla/firefox/profiles.ini\"\n \n if [ -f \"$PROFILES_INI\" ]; then\n # Находим путь к активному профилю с именем default-release\n PROFILE_PATH=$(awk -F= '/^Path=/ && $0 ~ /default-release/ {print $2}' \"$PROFILES_INI\")\n if [ -n \"$PROFILE_PATH\" ]; then\n PROFILE_DIR=\"/home/$user/.mozilla/firefox/$PROFILE_PATH\"\n \n if [ -d \"$PROFILE_DIR\" ]; then\n # Создаем файл user.js и добавляем в него содержимое\n sudo -u \"$user\" bash -c \"cat <<EOF > \\\"$PROFILE_DIR/user.js\\\"\nuser_pref(\\\"network.proxy.type\\\", 1);\nuser_pref(\\\"network.proxy.http\\\", \\\"$PROXY_IP\\\");\nuser_pref(\\\"network.proxy.http_port\\\", $PROXY_PORT);\nuser_pref(\\\"network.proxy.ssl\\\", \\\"$PROXY_IP\\\");\nuser_pref(\\\"network.proxy.ssl_port\\\", $PROXY_PORT);\nuser_pref(\\\"network.proxy.socks\\\", \\\"$PROXY_IP\\\");\nuser_pref(\\\"network.proxy.socks_port\\\", $PROXY_PORT);\nuser_pref(\\\"network.proxy.socks_version\\\", 5);\nEOF\"\n echo \"Настройки proxy изменены для пользователя \\\"$user\\\" в профиле \\\"$PROFILE_PATH\\\".\"\n else\n echo \"Каталог профиля $PROFILE_DIR не существует у пользователя \\\"$user\\\".\"\n fi\n else\n echo \"Не найден профиль default-release для пользователя \\\"$user\\\".\"\n fi\n else\n echo \"Файл profiles.ini не найден у пользователя \\\"$user\\\".\"\n fi\ndone\necho \"------------------------------------------------\"\nelse\n\techo \"IP-адрес прокси и/или порт не были заданы. Прокси не был установлен.\"\n\techo \"------------------------------------------------\"\nfi\n\n\n# Включение сертификата ЕСПД от Ростелеком\nif [ -n \"$CERT_PATH\" ]; then\n echo \" \"\n echo \"УСТАНОВКА СЕРТИФИКАТА ЕСПД:\"\n echo \" \"\n for user in $LIST_USERS; do\n # Путь к файлу profiles.ini\n PROFILES_INI=\"/home/$user/.mozilla/firefox/profiles.ini\"\n \n if [ -f \"$PROFILES_INI\" ]; then\n # Находим путь к активному профилю с именем default-release\n PROFILE_PATH=$(awk -F= '/^Path=/ && $0 ~ /default-release/ {print $2}' \"$PROFILES_INI\")\n if [ -n \"$PROFILE_PATH\" ]; then\n PROFILE_DIR=\"/home/$user/.mozilla/firefox/$PROFILE_PATH\"\n \n if [ -d \"$PROFILE_DIR\" ];then\n # Устанавливаем сертификат\n if sudo -u \"$user\" bash -c \"certutil -d sql:$PROFILE_DIR -A -t 'CT,c,' -i $CERT_PATH -n 'CA Root Social Objects - PJSC Rostelecom'\"; then\n \techo \"Сертификат успешно установлен для пользователя \\\"$user\\\".\"\n else\n \techo \"Ошибка при установке сертификата для пользователя \\\"$user\\\".\"\n \t fi\n \n else\n echo \"Каталог профиля $PROFILE_DIR не существует у пользователя \\\"$user\\\".\"\n fi\n else\n echo \"Не найден профиль default-release для пользователя \\\"$user\\\".\"\n fi\n else\n echo \"Файл profiles.ini не найден у пользователя \\\"$user\\\".\"\n fi\n done\nelse\necho \"Путь до сертификата не был указан. Сертификат не был установлен.\"\nfi\n",
"title": "(Программы) Настройка прокси и установка сертификатов в Firefox",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который предоставляет возможность копировать файлы между серверами, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Система) Копирование файлов по SSH
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
echo "--------------------------------------------------------------"
echo "Копирование файла из: $LOGIN@$SERVER:$FILE"
echo "В: $HOST"
echo "--------------------------------------------------------------"
sshpass -p "$PASSWORD" scp -o StrictHostKeyChecking=no $LOGIN@$SERVER:$FILE $HOST
if [ $? -eq 0 ]; then
echo "Успех: файл успешно скопирован в $HOST."
else
echo "Ошибка: не удалось скопировать файл."
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
SERVER | *IP-адрес сервера (пример:192.168.1.15): | Текстовое поле | Размер: 40 |
FILE | *Путь до файла на сервере (пример: /home/public/text.txt): | Текстовое окно | Строк: 2 |
HOST | *Копировать в (пример: /home/public): | Текстовое окно | Строк: 2 |
LOGIN | *Логин пользователя на сервере (пример: superadmin): | Текстовое поле | Размер: 40 |
PASSWORD | *Пароль пользователя на сервере (пример: ublinux): | Текстовое поле | Размер: 40 |
CLEAR_KNOWN_HOSTS | Генерация нового ключа в "known_hosts" | Флажок | Состояние по умолчанию: Отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "text",
"id": "SERVER",
"title": "*IP-адрес сервера (пример:192.168.1.15):",
"size": 40,
"value": ""
},
{
"type": "textarea",
"id": "FILE",
"title": "*Путь до файла на сервере (пример: /home/public/text.txt):",
"rows": 2,
"value": ""
},
{
"type": "textarea",
"id": "HOST",
"title": "*Копировать в (пример: /home/public):",
"rows": 2,
"value": ""
},
{
"type": "text",
"id": "LOGIN",
"title": "*Логин пользователя на сервере (пример: superadmin):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "PASSWORD",
"title": "*Пароль пользователя на сервере (пример: ublinux):",
"size": 40,
"value": ""
},
{
"type": "checkbox",
"id": "CLEAR_KNOWN_HOSTS",
"title": "Генерация нового ключа в \"known_hosts\"",
"value": 1
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "if [ \"$CLEAR_KNOWN_HOSTS\" = \"1\" ]; then\nssh-keygen -R $SERVER\necho \"--------------------------------------------------------------\"\necho \"Запись в \\\"known_hosts\\\" для указанного сервера была очищена.\"\nfi\n\n\necho \"--------------------------------------------------------------\"\necho \"Копирование файла из: $LOGIN@$SERVER:$FILE\"\necho \"В: $HOST\"\necho \"--------------------------------------------------------------\"\n\n\nsshpass -p \"$PASSWORD\" scp -o StrictHostKeyChecking=no $LOGIN@$SERVER:$FILE $HOST\nif [ $? -eq 0 ]; then\n echo \"Успех: файл успешно скопирован в $HOST.\"\nelse\n echo \"Ошибка: не удалось скопировать файл.\"\nfi\n",
"title": "(Система) Копирование файлов по SSH",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который предоставляет возможность ограничивать запуск программ и интерпретаторов языков программирования в интерактивном режиме, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Система) Ограничение запуска программ и интерпретаторов
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
HOSTNAME=$(hostname)
GET_ACCESS_DENIED_EXEC=$(ubconfig get [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*])
if [ "$REMOVE_ACCESS_DENIED_EXEC" = "1" ]; then
ubconfig remove [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*]
echo "------------------------------------------------"
echo "Успешно удалены все блокировки."
exit 0
fi
if [ -z "$ACCESS_DENIED_EXEC" ]; then
echo "Ошибка блокировки исполняемых файлов: Имена файлов не были введены."
echo "--------------------------------------------------------"
echo "Текущие значения блокировки рабочей станции \"$HOSTNAME\"":
echo ""
if [ -z "$GET_ACCESS_DENIED_EXEC" ] || [ "$GET_ACCESS_DENIED_EXEC" == "(null)" ]; then
echo "Блокировка исполняемых файлов или интерпретаторов не задана"
else
echo "$GET_ACCESS_DENIED_EXEC"
fi
exit 1
else
if [ -z "$ACCESS_DENIED_EXEC_PATH" ]; then
ubconfig set [security] ACCESS_DENIED_EXEC="$ACCESS_DENIED_EXEC"
echo "------------------------------------------------"
echo "Успешно выполнена блокировка исполняемых файлов: \"$ACCESS_DENIED_EXEC\"."
else
ubconfig set [security] ACCESS_DENIED_EXEC["$ACCESS_DENIED_EXEC_PATH"]="$ACCESS_DENIED_EXEC"
echo "------------------------------------------------"
echo "Успешно выполнена блокировка исполняемых файлов: \"$ACCESS_DENIED_EXEC\". По указанному пути: \"$ACCESS_DENIED_EXEC_PATH\""
fi
fi
GET_ACCESS_DENIED_EXEC=$(ubconfig get [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*])
echo "--------------------------------------------------------"
echo "Текущие значения блокировки рабочей станции \"$HOSTNAME\"":
echo ""
if [ -z "$GET_ACCESS_DENIED_EXEC" ] || [ "$GET_ACCESS_DENIED_EXEC" == "(null)" ]; then
echo "Блокировка исполняемых файлов или интерпретаторов не задана"
else
echo "$GET_ACCESS_DENIED_EXEC"
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ACCESS_DENIED_EXEC | *Имя файла или интерпретатора (пример: htop,php): | Текстовое окно | Строк: 2 |
ACCESS_DENIED_EXEC_PATH | Путь до указанных имен (пример: /usr/bin,/usr/bin/local): | Текстовое окно | Строк: 2 |
REMOVE_ACCESS_DENIED_EXEC | Удалить все ограничения | Флажок | Состояние по умолчанию: Не отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "textarea",
"id": "ACCESS_DENIED_EXEC",
"title": "*Имя файла или интерпретатора (пример: htop,php):",
"rows": 2,
"value": ""
},
{
"type": "textarea",
"id": "ACCESS_DENIED_EXEC_PATH",
"title": "Путь до указанных имен (пример: /usr/bin,/usr/bin/local):",
"rows": 2,
"value": ""
},
{
"type": "checkbox",
"id": "REMOVE_ACCESS_DENIED_EXEC",
"title": "Удалить все ограничения",
"value": 0
}
],
"enabled": 1,
"script": "HOSTNAME=$(hostname)\nGET_ACCESS_DENIED_EXEC=$(ubconfig get [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*])\n\nif [ \"$REMOVE_ACCESS_DENIED_EXEC\" = \"1\" ]; then\n\tubconfig remove [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*]\n echo \"------------------------------------------------\"\n echo \"Успешно удалены все блокировки.\"\n\texit 0\nfi\n\nif [ -z \"$ACCESS_DENIED_EXEC\" ]; then\n\techo \"Ошибка блокировки исполняемых файлов: Имена файлов не были введены.\"\n\techo \"--------------------------------------------------------\"\n\techo \"Текущие значения блокировки рабочей станции \\\"$HOSTNAME\\\"\":\n\techo \"\"\n\tif [ -z \"$GET_ACCESS_DENIED_EXEC\" ] || [ \"$GET_ACCESS_DENIED_EXEC\" == \"(null)\" ]; then\n\t\techo \"Блокировка исполняемых файлов или интерпретаторов не задана\"\n\telse\n\t\techo \"$GET_ACCESS_DENIED_EXEC\"\n\tfi\n\n\texit 1\nelse\n\n\tif [ -z \"$ACCESS_DENIED_EXEC_PATH\" ]; then\n \tubconfig set [security] ACCESS_DENIED_EXEC=\"$ACCESS_DENIED_EXEC\"\n \techo \"------------------------------------------------\"\n \techo \"Успешно выполнена блокировка исполняемых файлов: \\\"$ACCESS_DENIED_EXEC\\\".\"\n\telse\n\t\tubconfig set [security] ACCESS_DENIED_EXEC[\"$ACCESS_DENIED_EXEC_PATH\"]=\"$ACCESS_DENIED_EXEC\"\n\t\techo \"------------------------------------------------\"\n\t\techo \"Успешно выполнена блокировка исполняемых файлов: \\\"$ACCESS_DENIED_EXEC\\\". По указанному пути: \\\"$ACCESS_DENIED_EXEC_PATH\\\"\"\n\tfi\nfi\n\nGET_ACCESS_DENIED_EXEC=$(ubconfig get [security] ACCESS_DENIED_EXEC ACCESS_DENIED_EXEC[*])\necho \"--------------------------------------------------------\"\necho \"Текущие значения блокировки рабочей станции \\\"$HOSTNAME\\\"\":\necho \"\"\nif [ -z \"$GET_ACCESS_DENIED_EXEC\" ] || [ \"$GET_ACCESS_DENIED_EXEC\" == \"(null)\" ]; then\n echo \"Блокировка исполняемых файлов или интерпретаторов не задана\"\nelse\n echo \"$GET_ACCESS_DENIED_EXEC\"\nfi",
"title": "(Система) Ограничение запуска программ и интерпретаторов",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который позволяет настраивать ограничение доступа к консоли, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Безопасность) Ограничение доступа к консоли
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
if [ "${ACCESS_DENIED_VTX11}" != "Не выбрано" ]; then
case "$ACCESS_DENIED_VTX11" in
"Отключить виртуальные терминалы") ACCESS_DENIED_VTX11="yes" ;;
"Включить виртуальные терминалы") ACCESS_DENIED_VTX11="no" ;;
esac
ubconfig set [security] ACCESS_DENIED_VTX11=$ACCESS_DENIED_VTX11
if [ "${ACCESS_DENIED_VTX11}" = "yes" ]; then
echo "--------------------------------------------------------"
echo "Виртуальные терминалы успешно отключены."
exit 0
elif [ "${ACCESS_DENIED_VTX11}" = "no" ]; then
echo "--------------------------------------------------------"
echo "Виртуальные терминалы успешно включены."
exit 0
fi
else
echo "Вариант действия не был выбран."
exit 1
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
ACCESS_DENIED_VTX11 | *Вариант действия: | Меню | Пункты меню: Отключить виртуальные терминалы, Включить виртуальные терминалы, Не выбрано Выбранный элемент: Не выбрано |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "select",
"id": "ACCESS_DENIED_VTX11",
"title": "*Вариант действия",
"items": [
"Отключить виртуальные терминалы",
"Включить виртуальные терминалы",
"Не выбрано"
],
"value": "Не выбрано"
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "if [ \"${ACCESS_DENIED_VTX11}\" != \"Не выбрано\" ]; then\n case \"$ACCESS_DENIED_VTX11\" in\n \"Отключить виртуальные терминалы\") ACCESS_DENIED_VTX11=\"yes\" ;;\n \"Включить виртуальные терминалы\") ACCESS_DENIED_VTX11=\"no\" ;;\n esac\n ubconfig set [security] ACCESS_DENIED_VTX11=$ACCESS_DENIED_VTX11\n\n if [ \"${ACCESS_DENIED_VTX11}\" = \"yes\" ]; then\n echo \"--------------------------------------------------------\"\n echo \"Виртуальные терминалы успешно отключены.\"\n exit 0\n elif [ \"${ACCESS_DENIED_VTX11}\" = \"no\" ]; then\n echo \"--------------------------------------------------------\"\n echo \"Виртуальные терминалы успешно включены.\"\n exit 0\n fi\n\nelse\n echo \"Вариант действия не был выбран.\"\n exit 1\nfi\n",
"title": "(Безопасность) Ограничение доступа к консоли",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
Для добавления плагина, который позволяет задавать продолжительность времени до блокировки сессии пользователей/групп на рабочих серверах, следует перейти: вкладка "Администратор" > "Плагины"
.
Плагин можно создать вручную или импортировать текст экспорта в плагины.
Для создания плагина вручную следует нажать кнопку "Добавить...".
Указать настройки:
Имя плагина - (Безопасность) Управление блокировкой сессии
Исполняемый файл - node bin/shell-plugin.js
Скрипт:
GET_XFCE4_XFCONF_ACTION='if [ "$GET_XFCE4_XFCONF" = "1" ]; then
echo "--------------------------------------------------------"
echo "Текущие значения ublinux.ini:"
ubconfig get [kiosk] XFCE4_XFCONF[*]
fi'
if [ -n "$XFCE4_XFCONF_USERS" ] && [ -n "$XFCE4_XFCONF_MINUTES" ]; then
ubconfig set [kiosk] XFCE4_XFCONF[$XFCE4_XFCONF_USERS:xfce4-screensaver:/saver/idle-activation/delay]=int:$XFCE4_XFCONF_MINUTES
echo "--------------------------------------------------------"
echo "Блокировка сессии при бездействии установлена на: $XFCE4_XFCONF_MINUTES минут. Для пользователя(-ей): $XFCE4_XFCONF_USERS"
echo "Для применения заданных настроек следует повторно авторизоваться или перезагрузить сервер на котором было запущено событие."
eval "$GET_XFCE4_XFCONF_ACTION"
exit 0
elif [ -z "$XFCE4_XFCONF_USERS" ] && [ -n "$XFCE4_XFCONF_MINUTES" ]; then
echo "Ошибка: Имя пользователя или группы не было указано."
eval "$GET_XFCE4_XFCONF_ACTION"
exit 1
elif [ -n "$XFCE4_XFCONF_USERS" ] && [ -z "$XFCE4_XFCONF_MINUTES" ]; then
echo "Ошибка: Время бездействия не было задано."
eval "$GET_XFCE4_XFCONF_ACTION"
exit 1
else
echo "Ошибка: Обязательные поля: \"Имя пользователя или группы\" и \"Время\" не были заданы."
eval "$GET_XFCE4_XFCONF_ACTION"
exit 1
fi
Параметры:
Параметр ID | Метка | Тип | Опции |
---|---|---|---|
script | Источник скрипта: | Скрытый | Значение: eval "${JOB_STDIN_SCRIPT}" |
XFCE4_XFCONF_USERS | *Имя пользователя или группы (пример: @wheel,user-1): | Текстовое поле | Размер: 40 |
XFCE4_XFCONF_USERS | *Время (в минутах): | Текстовое поле | Размер: 5 |
GET_XFCE4_XFCONF | Получить текущие значения из ublinux.ini | Флажок | Состояние по умолчанию: Не отмечено |
annotate | Добавить отметки даты/времени в журнал | Флажок | Состояние по умолчанию: Не отмечено |
logmemo | Запись в журнал | Флажок | Состояние по умолчанию: Не отмечено |
Для сохранения нажать кнопку "Создать"
.
Для импорта плагина следует нажать кнопку "Из JSON"
.
Скопировать данный экспорт в открывшееся окно и нажать "ОК":
{
"params": [
{
"type": "hidden",
"id": "script",
"title": "Источник скрипта:",
"value": "eval \"${JOB_STDIN_SCRIPT}\""
},
{
"type": "text",
"id": "XFCE4_XFCONF_USERS",
"title": "*Имя пользователя или группы (пример: @wheel,user-1):",
"size": 40,
"value": ""
},
{
"type": "text",
"id": "XFCE4_XFCONF_MINUTES",
"title": "*Время (в минутах):",
"size": 5,
"value": ""
},
{
"type": "checkbox",
"id": "GET_XFCE4_XFCONF",
"title": "Получить текущие значения из ublinux.ini",
"value": 0
},
{
"type": "checkbox",
"id": "annotate",
"title": "Добавить отметки даты/времени в журнал",
"value": 0
},
{
"type": "checkbox",
"id": "logmemo",
"title": "Запись в журнал",
"value": 0
}
],
"enabled": 1,
"script": "GET_XFCE4_XFCONF_ACTION='if [ \"$GET_XFCE4_XFCONF\" = \"1\" ]; then\n echo \"--------------------------------------------------------\"\n echo \"Текущие значения ublinux.ini:\"\n ubconfig get [kiosk] XFCE4_XFCONF[*]\nfi'\nif [ -n \"$XFCE4_XFCONF_USERS\" ] && [ -n \"$XFCE4_XFCONF_MINUTES\" ]; then\n ubconfig set [kiosk] XFCE4_XFCONF[$XFCE4_XFCONF_USERS:xfce4-screensaver:/saver/idle-activation/delay]=int:$XFCE4_XFCONF_MINUTES\n echo \"--------------------------------------------------------\"\n echo \"Блокировка сессии при бездействии установлена на: $XFCE4_XFCONF_MINUTES минут. Для пользователя(-ей): $XFCE4_XFCONF_USERS\"\n echo \"Для применения заданных настроек следует повторно авторизоваться или перезагрузить сервер на котором было запущено событие.\"\n eval \"$GET_XFCE4_XFCONF_ACTION\"\n exit 0\nelif [ -z \"$XFCE4_XFCONF_USERS\" ] && [ -n \"$XFCE4_XFCONF_MINUTES\" ]; then\n echo \"Ошибка: Имя пользователя или группы не было указано.\"\n eval \"$GET_XFCE4_XFCONF_ACTION\"\n exit 1\nelif [ -n \"$XFCE4_XFCONF_USERS\" ] && [ -z \"$XFCE4_XFCONF_MINUTES\" ]; then\n echo \"Ошибка: Время бездействия не было задано.\"\n eval \"$GET_XFCE4_XFCONF_ACTION\"\n exit 1\n\nelse \n echo \"Ошибка: Обязательные поля: \\\"Имя пользователя или группы\\\" и \\\"Время\\\" не были заданы.\"\n eval \"$GET_XFCE4_XFCONF_ACTION\"\n exit 1\nfi \n\n",
"title": "(Безопасность) Управление блокировкой сессии",
"ipc": 0,
"wf": 0,
"stdin": 0,
"command": "node bin/shell-plugin.js",
"cwd": "",
"uid": "",
"gid": ""
}
При создании события в качестве основы используется плагин: "Обновление системы".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего обновить систему, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Смена пароля учетной записи".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить пароль пользователя, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
Внимание! Пароль пользователя не должен содержать символов: : & ' , а также совместной последовательности символов: -_=+
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Смена пароля учетной записи".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить пароль пользователя root, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
Внимание! Пароль пользователя не должен содержать символов: : & ' , а также совместной последовательности символов: -_=+
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Установка и удаление модулей".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего установить модули, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Установка и удаление ПО".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего установить программное обеспечение, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
Внимание! Если система, на которую будут устанавливаться программы, загружена в режиме полного сохранения, то программы будут сохранены после перезагрузки системы.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление пользователями".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего создавать учетные записи пользователей на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
Внимание! Пароль пользователя не должен содержать символов: : & ' , а также совместной последовательности символов: -_=+
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление версией ядра Linux".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего установить необходимую версию ядра Linux, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление версией дистрибутива".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить версию дистрибутива ОС, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Режим загрузки ОС".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить установленный режим загрузки ОС по умолчанию на режим восстановления, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Режим загрузки ОС".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить установленный режим загрузки ОС по умолчанию на режим полного сохранения, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Режим загрузки ОС".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить установленный режим загрузки ОС по умолчанию на режим полной песочницы, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Возврат предыдущей версии ПО".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего изменить установленный режим загрузки ОС по умолчанию на режим полного сохранения, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление питанием".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего выключать рабочие сервера, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление питанием".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, позволяющего выключать рабочие сервера, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Настройка временной зоны".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволяет выбрать регион/зону на рабочих серверах для установки времени, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Печать полного файла настроек".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое предоставляет возможность запросить у рабочего сервера вывод текущего конфигурационного файла ublinux.ini, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Смена произвольных параметров ublinux.ini".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое предоставляет возможность добавить необходимый параметр в конфигурационный файл ublinux.ini на указанных серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
Внимание! Перед работой с данным событием необходимо ознакомиться с правилами работы утилиты UBConfig.
В случае необходимости восстановления конфигурационного файла следует воспользоваться инструкцией: Восстановление конфигурационного файла.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
Ленивое зеркало — это механизм, при котором рабочие серверы обращаются к основному серверу, настроенному как "ленивое зеркало", для обновления и установки программ и модулей.
Процесс работы:
- Один из рабочих серверов запрашивает обновление/установку пакетов;
- Основной сервер скачивает обновления/пакеты из репозитория и размещает их в локальном репозитории;
- Остальные рабочие сервера запрашивают обновление/установку пакетов и скачивают их из локального сервера.
Для огранизации ленивого зеркала необходимо создать плагины "Публикация ленивого зеркала" и "Подключение к ленивому зеркалу", а также создать и выполнить одноименные события.
При создании события в качестве основы используется плагин: "Публикация ленивого зеркала".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое предоставляет возможность опубликовать ленивое зеркало на основном сервере, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Подключение к ленивому зеркалу".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое предоставляет возможность подключиться рабочим серверам к ленивому зеркалу, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Удаленный рабочий стол VNC".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволяет включить VNC на сервере для подключения к удаленному рабочему столу, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
base64 <<< ublinux
).При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление сервисами".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое предоставляет возможность включить необходимые сервисы на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Управление учетной записью GRUB".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволяет добавить учетную запись GRUB на выбранных серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
grub-mkpasswd-pbkdf2
, ввести пароль и получить хеш.При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Настройка прокси и установка сертификатов в Firefox".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволит установить прокси и сертификат в Mozilla Firefox одновременно на всех рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
Название события
Указать название события, которое будет отображено в расписании. Названия событий должны быть уникальные.
Пример: Установка прокси и сертификата в Firefox
Категория
Указать необходимую категорию.
Пример: Управление ПО
Цель
Необходимый сервер или группа серверов.
Пример: Группа №1
Алгоритм
Метод, с помощью которого UBPile выбирает сервер в группе для выполнения задания.
Пример: Мультиплекс
Плагин
Выбрать необходимый плагин.
Пример: (Программы) Настройка прокси и установка сертификатов в Firefox
Сертификат ЕСПД от Ростелеком установлен в системе по умолчанию.
Для проверки сертификата в Firefox рекомендуетсяперейти в настройки Firefox > "Приватность и защита" > "Просмотр сертификатов", найти группу сертификатов "PJSC \"Rostelecom\""
Хронометраж
Указать дату и/или время, в которое будет запущено событие.
Пример: По требованию
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
Если браузер Mozilla Firefox был открыт на рабочих серверах во время выполнения событий, для применения новых настроек необходимо перезапустить браузер.
При создании события в качестве основы используется плагин: "Сценарий оболочки".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволит выполнять Bash-скрипты на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
#!/bin/bash
mkdir -p "/home/public/Общие документы" && chmod 777 "/home/public/Общие документы" && echo "Каталог создан и доступен всем."
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Копирование файлов по SSH".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволит копировать необходимые файлы по SSH следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
Если целью было выбрано несколько рабочих станций и был установлен алгоритм "Мультиплекс" с задержкой, то все текущие и предстоящие события будут отображены на вкладке "Главная".
Актуально для версии: Компас-3D v21 x64
При создании события в качестве основы используются плагины:
"Установка и удаление модулей";
"Копирование файлов SSH";
"Управление питанием".
Плагины можно создать вручную или импортировать текст экспорта .json в плагины.
ubm-wine ubm-lib32
Перед установкой "Компас 3D" необходимо убедиться, что:
- Рабочие сервера загружены в режиме "Полная песочница в RAM", если режим загрузки иной, то выполнить события с алгоритмом "Мультиплекс": Загрузка ОС в режиме полной песочницы, Перезагрузка ПК;
- На рабочих серверах должны быть созданы пользователи с одинаковым логином (для клонирования домашнего каталога пользователя с установленной программой), если одинаковые пользователи не созданы, то выполнить событие с алгоритмом "Мультиплекс": Добавление пользователя
Один из рабочих серверов перезагрузить в режим "Полное сохранение HDD" и в нем выполнить:
2.1. Обновить систему с помощью графической утилиты или выполнить команду в терминале:
sudo pacman -Syu
2.2. Скачать "Компас 3D" с официального сайта;
2.3. Установить программу "Компас 3D" согласно инструкции на вкладке "Установка в PlayOnLinux (x64)"
:
2.4. Выполнить сохранение в модуль:
2.5. Полученный модуль необходимо скопировать в каталог "/home/public" и установить на него права 644. Например, в терминале выполнить команду копирования:
sudo cp /mnt/livemedia/ublinux-data/modules/20240923-1036-home-user-1.ubm /home/public/
Выполнить команду на смену прав:
sudo chmod 644 /home/public/20240923-1036-home-user-1.ubm
Где:
Модуль из каталога "/home/public/20240923-1036-home-user-1.ubm" необходимо скопировать на все остальные рабочие сервера в каталог модулей. Для этого следует открыть UBPile и выполнить событие "Копировать по SSH", где в событии указать:
После успешного копирования модуля следует выполнить перезагрузку рабочих серверов. Для перезагрузки необходимо открыть UBPile и выполнить событие "Перезагрузка ПК", где в событии указать:
После перезагрузки на рабочем столе пользователя, созданного перед началом установки, будет отображен ярлык с программой "Компас 3D":
При создании события в качестве основы используется плагин: "Ограничение запуска программ и интерпретаторов".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволит ограничить запуск программы на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
Название события
Указать название события, которое будет отображено в расписании. Названия событий должны быть уникальные.
Пример: Ограничение запуска программ
Категория
Указать необходимую категорию.
Пример: Система
Цель
Необходимый сервер или группа серверов.
Пример: Группа №1
Алгоритм
Метод, с помощью которого UBPile выбирает сервер в группе для выполнения задания.
Пример: Мультиплекс
Плагин
Выбрать необходимый плагин.
Пример: (Система) Ограничение запуска программ и интерпретаторов
Хронометраж
Указать дату и/или время, в которое будет запущено событие.
Пример: По требованию
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
.
Событие будет запущено во время, указанное в поле «Хронометраж». В случае, если было выбрано «По требованию», событие следует запускать вручную, нажав кнопку «Запуск» на вкладке «Расписание».
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
При создании события в качестве основы используется плагин: "Ограничение доступа к консоли".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволит ограничить запуск программы на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
в нижней части страницы.
Событие будет запущено во время, указанное в поле "Хронометраж".
Пример добавленного события:
Запуск события:
Запуск события происходит во время, указанное в поле "Хронометраж" на этапе редактирования события. В случае, если было выбрано «По требованию»
, событие следует запускать вручную
:
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
Подробности задания:
Для просмотра подробностей задания следует перейти: вкладка "Завершенные" > нажать на "ID задания" необходимого события
.
При успешном выполнении событию присваивается статус "Успешно"
. В консольном выводе отображается информация о выполненных действиях.
Статус "Ошибка"
будет присвоен в случае если:
При создании события в качестве основы используется плагин: "Управление блокировкой сессии".
Плагин можно создать вручную или импортировать текст экспорта .json в плагины.
Для добавления события, которое позволяет задавать продолжительность времени до блокировки сессии пользователей/групп на рабочих серверах, следует перейти: вкладка "Расписание" и нажать кнопку "Добавить событие"
.
В новом событии заполнить обязательные поля:
При необходимости указать остальные параметры. Для сохранения события нажать кнопку "Создать"
в нижней части страницы.
Событие будет запущено во время, указанное в поле "Хронометраж".
Пример добавленного события:
Запуск события:
Запуск события происходит во время, указанное в поле "Хронометраж" на этапе редактирования события. В случае, если было выбрано «По требованию»
, событие следует запускать вручную
:
Для запуска события следует перейти: вкладка "Расписание" и нажать кнопку "Запуск" напротив события
:
Подробности задания:
Для просмотра подробностей задания следует перейти: вкладка "Завершенные" > нажать на "ID задания" необходимого события
.
При успешном выполнении событию присваивается статус "Успешно"
. В консольном выводе отображается информация о выполненных действиях.
Статус "Ошибка"
будет присвоен в случае если:
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены после перезагрузки.
Если режим загрузки другой, то рекомендуется воспользоваться утилитой "Сохранение изменений" до перезагрузки системы.