WebSCO — альтернативная консоль для System Center Orchestrator

Kate

Administrator
Команда форума
Наверное всем не нравится консоль для запуска ранбуков у Microsoft System Center Orchestrator. Она неудобная и тормозная. Давно вынашивал идею сделать что-то более удобное, избавиться от Silverlight и... наконец-то подвернулась возможность её реализовать.

Плюсы по сравнению со стандартной консолью:

  • Форма для запуска ранбуков поддерживает выпадающие списки, чек-боксы, поля для ввода дат и цифр
  • Валидация обязательных полей (с незаполненным обязательным параметром ранбук не запустит)
  • Параметры выводятся в отсортированном порядке, а не пляшут как попало (достаточно пронумеровать их)
  • Перезапуск ранбуков с ранее введенными параметрами
  • Экранирование одинарной кавычки при передаче параметров в ранбук (чтобы нельзя было сделать инъекцию в код ранбука)
  • Описание ранбука отображается в окне запуска
Минусы:

  • Консоль работает из-под сервисной учетной записи и все ранбуки запускаются из-под неё
  • Разграничение доступа регулируется в настройках консоли
Для повышения отзывчивости консоли, списки папок, ранбуков и их параметров загружаются в локальную БД. А для уменьшения количества LDAP запросов при проверке прав доступа можно подключить memcached.

Доступ к ранбукам регулируется менее удобно по папкам, но так же через группы AD. При настройке нужно указывать DN групп. Нет наследования, но есть возможность скопировать права на все вложенные папки.

Чтобы не "светить" пароль от сервисной учетной записи в конфиге, можете настроить аутентификацию по Kerberos с использованием keytab файла.

Для того, чтобы поля отображались как выпадающий список, чек-бокс или календарь для ввода даты, к названиям полей в конце через / слэш нужно добавить ключи:

  • s - обычное поле для ввода (string)
  • l - выпадающий список (list)
  • d - поле для ввода даты (date)
  • i - поле для ввода целых чисел (integer)
  • f - переключатели чек-боксы (flags)
  • r - флаг означает, что параметр обязателен для заполнения (required)
Еще можно использовать * (звёздочку) перед слэшем для обозначения обязательного параметра.

Для списка и чек-боксов дополнительно перед слэшем в скобках нужно перечислить параметры через запятую. Например:

1. Выберите тип доступа (admin, guest)*/l

Такое поле превратится в выпадающий список с двумя значениями admin и guest и будет обязательным для заполнения.

2. Выберите протокол (HTTP, HTTPS)/rf

В данном случае будет отображено два чек-бокса HTTP и HTTPS и хотя бы один должен будет отмечен т.к. указан флаг r (аналог звездочки из примера выше). Выбранный HTTP будет соответствовать взведенному биту 1, а HTTPS соответственно биту 2. Чек-боксы будет сложно воспроизвести в стандартной консоли, если по каким-либо причинам придется запускать ранбук из неё.

Вот так форма выглядит в родной консоли:

a9622c8db240386ad90a2d8c4db70fa3.png

А вот так эта же форма выглядит в WebSCO:

d579b5f606a24c5959fac989645b3fc7.png

Результат выполнения ранбука:

f06c1da5d3670236ade709810c75b0cf.png

Для создания ранбуков я использую следующий PowerShell шаблон.

Установка достаточно простая, если не использовать Kerberos. Вам потребуется Apache, MariaDB, PHP, memcached. На Windows думаю тоже запустится в каком-нибудь XAMPP.

sudo apt-get install apache mariadb php php-mysql php-ldap php-curl php-xml memcached php-memcached
Надеюсь не ошибся с названиями пакетов.

Далее нужно через браузер запустить скрипт http://localhost/websco/install.php и заполнить параметры.

После завершения настройки нужно загрузить список ранбуков в БД выполнив Sync. И выполнять загрузку каждый раз после добавления новых и изменения существующих ранбуков (не забываем про глюк Оркестратора, когда пользователь не сразу видит новый ранбук и нужно очищать кэш). Загрузка Job'ов не обязательна и занимает продолжительное время (у меня ~20 000 джобов загружались около 30 минут), если уж запустили, то надо дождаться окончания загрузки не прерывая и не перезапуская её.

Проект WebSCO на GitHub

 
Сверху