Сен 3

Простой пример использования runbook для решения задачи автоматизации управления

Рассмотрим простой пример создания runbook…
Предположен, что администратор заинтересован в автоматизации рутинной задачи, а именно, администратор указывает имя компьютера или его IP-адрес (возможно, что данный пакет runbook будет вызываться из другого пакета, не обязательно запускаться вручную). За ввод информации отвечает элемент Initialize Data, который возьмем из области рабочих элементов Runbook Control. Управление с этого элемента передается на блок Get Computer/IP Status. В этом блоке выполняется команда ping, пингующая указанное имя компьютера или IP адрес сетевого интерфейса этого компьютера. Внешний вид элементов runbook и связей между ними показан на рисунке.

Рисунок 1 – Автоматизация проверки компьютера на основе выполнения команды ping.

Рисунок 2 – Runbook запущен в тестере, вводим имя компьютера DC

Возможно два варианта. В первом варианте все пакеты от пингуемого компьютера возвращаются, то есть можно считать, что компьютер полностью работоспособен. Во втором случае, компьютер не отвечает и все отправляемые ему пакеты будут потеряны. В этом случае сервис однозначно недоступен. Строго говоря, возможен и промежуточный вариант, когда опрашиваемый компьютер ответил, но вернулись не все пакеты, а только часть из них. Элемент управления Get Computer/IP Status имеет два выхода: ветвь – работает и ветвь – не работает. Будем считать, что если вернулось 50 и более процентов пакетов, то компьютер доступен и с ним можно работать. В противном случае считаем, что работа невозможна. От блока Get Computer/IP Status пойдут два потока к элементам Send Platform Event, которые берем с вкладки уведомлений (Notification).

Рисунок 3 – Runbook, запущенный в тестере завершился, компьютер DC отвечает на запросы.

Создание runbook начнем с того, что запустим Runbook Designer, создадим новую папку для сохранения runbook, например, назвав ее rb (Пункт Runbook подпункт New позиция Folder). Щелкаем по имени папки правой клавишей мыши, выбираем New и позицию Runbook. Новый runbook создан. При желании можем щелкнуть правой клавишей мыши на New Runbook (имя по умолчанию) и переименовать, выбрав пункт Rename, задав новое имя, например, rb. После этого в рабочую область перемещаем элементы: Initialize Data, Get Computer/IP Status и два элемента Send Platform Event. Подводим указатель мыши к элементу, появляются позиции, к которым могут подходить входящие или исходящие соединения. Выполняем соединение элементов между собой так, как показано на рисунке, выполняем переименование элементов типа Send Platform Event указав, соответственно, имя Healthy State Info для первого и Unhealthy State Error для второго. Если два раза щелкнуть по линии связи левой клавишей мыши, то откроется окно Link Properties, где в пункте Options можно задать цвет линии и ее толщину. Нажимаем на элементе Initialize Data правую клавишу мыши и выбираем пункт свойства (Properties). Пункте Details нажимаем кнопку Add.

Рисунок 4 – Элементы автоматизации Runbook и связи между ними.

Добавляется элемент вида Parameter 1 (data type: String). Имя Parameter 1 меняем на Hostname or IP. Число параметров для элемента Initialize Data при необходимости может быть большим, тип параметра (в нашем примере не меняем) – строка или целочисленное значение.

Рисунок 5 – Определяем параметры элемента Computer/IP Status.

Переходим к элементу Get Computer/IP Status выбираем поле Details и в нем позицию Computer. Щелкаем на ней правой клавишей мыши и выбираем Subscribe, а в нем позицию Published Data, затем Hostname or IP. В результате описываемых действий определили, что данные берутся из поля Hostname or IP элемента Initialize Data.
Щелкаем два раза на связи (синего цвета), которая ведет к блоку Healthy State Info. Открывается меню Include Filters, выбираем позицию Include. Нажимаем кнопку Add. Добавляется строка Get Computer/IP status returns success. Позиция Get Computer/IP status и success подчеркнуты, что показывает, что данные позиции доступны для изменения. Нажимаем ссылку Get Computer/IP status, в открывшемся окне выбираем в поле Name: Percentage of paсkets received, в поле Description значение 100. Нажимаем ОК. После этого строка меняет вид на Percentage of packets received from Get Computer/IP Status equals value. Позиции Percentage of packets received, equals, value – подчеркнуты и доступны для изменения. По данному потоку должны переходить к элементу Healthy State Info только в том случае, если было успешно возвращено в ответ на запрос команды ping 50 или более % пакетов. Щелкаем по элементу equal, выбираем is greater than or equal to. Определяем значение value равным 50. В итоге получаем строку: на Percentage of packets received from Get Computer/IP Status is greater than or equal to 50.
Щелкаем два раза на связи (красного цвета), которая ведет к блоку Unhealthy State Error. Открывается меню Include Filters, выбираем позицию Include. Нажимаем кнопку Add. Добавляется строка Get Computer/IP status returns success. Позиция Get Computer/IP status и success подчеркнуты, что показывает, что данные позиции доступны для изменения. Нажимаем ссылку Get Computer/IP status, в открывшемся окне выбираем в поле Name: Percentage of paсkets received, в поле Description значение 100. Нажимаем ОК. После этого строка меняет вид на Percentage of packets received from Get Computer/IP Status equals value. Позиции Percentage of packets received, equals, value – подчеркнуты и доступны для изменения. По данному потоку должны переходить к элементу Unhealthy State Error только в том случае, если в ответ на запрос команды ping было возвращено менее 50 % п отправленных пакетов. Щелкаем по элементу equal, выбираем is less than. Определяем значение value равным 50. В итоге получаем строку: на Percentage of packets received from Get Computer/IP Status is less than 50. С переходами по стрелкам определились, осталось только настроить отображаемую информацию в элементах Healthy State Info и Unhealthy State Error. Рассматриваемый пример runbook очень простой, в более сложном варианте вместо элемента Unhealthy State Error можно было поместить один или несколько элементов, обрабатывающих ситуацию недоступности компьютера. Например, администратор получает уведомление по электронной почте, информация заносится в системный журнал, если, допустим, количество потерянных пакетов в интервале от 80 до 100% выполняется одна ветвь, если в интервале от 50 до 80%, то другая. Можно разработать runbook, включающий в себя десятки элементов, однако, чем больше элементов в runbook и чем он сложнее, чем больше вероятность того, что что-то не будет учтено в процессе отладки и тестирования runbook. Возможно, что вместо одного большого и сложного runbook на практике целесообразно разработать несколько пакетов автоматизации меньшего размера, которые при необходимости могут вызывать друг друга.

Рисунок 6 – Определяем значения Details для элементов типа Send Platform Event.

Два раза кликнули по элементу Healthy State Info левой клавишей мыши или один раз правой и выбрали позицию свойства. На вкладке Details в пункте Type указали Information. В поле Summary: Successful Ping. В поле Details, если необходимо, определяем выбор и отображение информации по полученным пакетам. Щелкнули по полю Details правой клавишей мыши, выбрали Subscribe, затем Publushed Data и определили позиции обрабатываемой информации. Аналогичные действия выполняем и для блока Unhealthy State Error. Полученный runbook тестируем, после чего можем использовать его для решения задач автоматизации.
Был рассмотрен очень простой пример возможности автоматизации управления в облаке, но знакомство с ним позволяет понять, что технология runbooks позволяет создавать мощные решения, позволяющие существенно облегчить решение задач связанных с автоматизацией управления облачной инфраструктурой.

* *  *В завершении поста полезная информация о том, где можно достаточно дешево купить флешки: usb flash drive 8gb. Доставку товара выполняют по всей России. Достаточно интересная стимулирующая акция позволяет, если сопутствует удача, получить флешку бесплатно.

Поделитесь статьей со своими друзьями
Общайтесь со мной:
comments: Closed

Comments are closed.