@vitaliy_bessonov

Как организовать автоматизацию включения и выключения серверов в облаке Microsoft Azure?

Требуется организовать возможность включения и выключения серверов в облаке пользователями. Пользователь должен заполнять форму когда ему нужен доступ к серверу, желательно чтобы эта форма была на каком-либо общедоступном ресурсе- типа google drive. Пользователь заполняет поля Включить с ВРЕМЯ до ВРЕМЯ, после этого меняется график включения серверов. После этого, отправляем письмо группе рассылке с текстом "Пользователь ИМЯ_ПОЛЬЗОВАТЕЛЯ", изменил время работы серверов с 07:00 до 23:45.

Сейчас включение и выключение организовано с помощью powershell и планировщика задач на одном из серверов в облаке, корректировка графика производится администратором.
Как возможно автоматизировать процесс обработки заявок от пользователей о времени включения-выключения серверов?

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

1. Делаем веб-страницу с авторизацией в домене Windows. Без сохранения где-либо пароля доменной учетной записи. Нужна прозрачная авторизация для доменных авторизованных пользователей.

2. После авторизации пользователь видит таблицу со следующими полями:
Дата
Время включения
Время выключения
Пользователь
Время внесения изменений
2.1. Отображаем строки только начиная с текущей даты минус один день.

3. Нужна возможность изменения значений в полях Время включения" и "Время выключения" в таблице. В том числе выбор варианта "Нет". После изменения хотя бы одного значения в строке, справа от стоки должна появиться/стать активной кнопка "Внести изменения" и кнопка "Отмена". Кнопка Отмена - отменяет введенные, но еще не сохраненные пользователем изменения (удаляет введенные данные и возвращает те, которые были до ввода). Нельзя редактировать время в строке, если есть хотя бы одна строка в которой уже отредактировано, но еще не сохранено время.
3.1. Нажатие на кнопку "Внести изменения" делает следующее:
*Назначаемое время - это то время, которое сейчас пытаются сохранить в графике (таблице), оно может быть равно уже назначенному, если, например, изменили только время включения, а время выключения не изменяли (или наоброт). Однако, для простоты постановки задачи, считаем, что сохраняются оба времени, а не только то, которое было изменено.
3.1.1. Проверить чтобы назначаемое время включения было не менее, чем за 1 час после назначаемого времени выключения на эту же дату. Учитывать вариант "Нет" для времени выключения.
3.1.2. Проверять чтобы назначаемое время выключения было не менее, чем через 1 час после назначаемого времени включения на эту же дату. Учитывать вариант "Нет" для времени включения.

3.2. Если проверки в пунктах 3.1.1, 3.1.2 не прошли успешно, то нужно показать ошибку. Если прошли успешно, то нужно показать окно вида:
"
Вы, действительно, хотите изменить график работы серверов 01.10.2015?
Старый график: 08:00 - 20:00.
Новый график: 07:00 - 23:00.
"
Кнопки: Да и Нет.

Нет - возврат к редактированию таблицы.
Да - переход к пункту 3.3.

3.3. Проверить чтобы назначаемое время включения было не менее, чем через 5 минут после текущего времени сервера. Если нет - выдать ошибку.

3.4. Проверить чтобы назначаемое время выключения было не менее, чем через 5 минут после текущего времени сервера. Если нет - выдать ошибку.

3.5. Проверить чтобы назначаемое время выключения было не менее, чем за 1 час до ближайшего уже назначенного после него времени включения даже если время включения будет на следующие сутки. Например, нельзя назначить время выключения сегодня в 23:45 если уже назначено время включения завтра в 00:15. Если нет - выдать ошибку и вернуть пользователя к редактированию таблицы.

3.6. Проверить чтобы назначаемое время включения было не менее, чем за час до ближайшего уже назначенного после него времени выключения даже если время выключения будет на следующие сутки. Например, нельзя назначить время включения сегодня в 23:45 если уже назначено время выключения завтра в 00:15. Если нет - выдать ошибку.

3.7. Проверить не был ли уже изменен график на этот день.

3.8. Изменить время в таблице и отправить письмо на заранее заданный адрес с текстом по заранее заданному шаблону типа:
"
Ирина Гаевая изменила график работы серверов 01.10.2015.
Новый график: 07:00 - 23:00
Старый график: 08:00 - 20:00

Просмотр и изменение графика возможно по ссылке: …
"

4. Выше таблицы отображать большим шрифтом дату и время ближайшего события. Красным - если это время выключения. Зелёным - если это время включения.

5. Выше таблицы отображать текущую дату и время сервера.

6. Пользователи группы Администраторы должны иметь возможность:
6.1. Настраивать все те времена, которые указаны в пункте 3.
6.2. Редактировать шаблон сообщения, которое будет отправляться пользователям (пункт 3.8).

7. Если авторизованный пользователь имеет член группы Администраторы в домене, то ему должна быть доступна кнопка "Заполнить график".
7.1. "Кнопка Заполнить график" должна обеспечивать установка графика на заданный диапазон дат с учетом или без учета определенных дней недели. Например, я хочу установить график с 8:00 до 20:00 на период с 01.03.2016 по 30.09.2016. я должен установить время, даты и выбрать дни недели для которых я устанавливаю этот график (например: пн, вт, ср, чт, пт).

8. График должен храниться в базе данных. Как вариант - в Azure.
  • Вопрос задан
  • 406 просмотров
Пригласить эксперта
Ответы на вопрос 1
mourr
@mourr
Passionate JS developer
Ну самый очевидный вариант - создать текстовичок, на том же google drive, из которого PowerShell будет тащить и парсить данные с помощью System.Net.WebRequest например
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы