Программные интерфейсы управления
серверной платформой и вычислительными
стеками (UCS и UCS Director)
Евгений Лагунцов
Системный инженер-консультант
© 2015 Cisco and/or its affiliates. All rights reserved.
UCS Manager
•  Управление на основе абстракций
•  Сокращение времени развертывания
•  Перераспределение ресурсов быстро и
эффективно
•  Оптимизация инфраструктуры
•  Взаимозаменяемые ресурсные пулы
Унифицированная фабрика
Вычислительные узлы
БЕЗ компромиссов
•  Поддержка как блейд так и стоечных
серверов в единой системе
•  Поддержка виртуализированных и bare-
metal приложений
Виртуализированный
ввод-вывод
•  Гибкость и масштабируемость
•  Высокая производительность
Составные части Cisco UCS
XML API
STANDARD
API’S
Интегрированное управление
UCS Manager
GUI
Внешние системы
управленияCLI
Primary Secondary (HA)
Специализированные
утилиты и порталы
•  Единое управление ВСЕЙ системой (до 160 серверов и
вся LAN/SAN инфраструктура) из ОДНОЙ точки
(резервированной)
•  Физические серверы не являются объектом
конфигурирования – они всего лишь часть ресурсного
пула
•  Внутренние сетевые порты не являются объектами
конфигурирования – они настраиваются автоматически
•  Конфигурируются общие политики, шаблоны, профили
– многократно используемые, тиражируемые элементы
•  Все серверные настройки отвязаны от «железа» –
«динамические», «мобильные», «масштабируемые»
•  Система управления интегрирована
и резервирована
Интерфейс прикладного управления UCS XML API
Стандартный XML API
Доступ к физическим и логическим объектам внутри UCS
XML API
Напрямую UCS CLI UCS GUI 3rd Party Customer
Self Service portals
Management Tools
Auditing Tools
System Status
Physical Inventory
Logical Inventory
Обзор UCS XML API
•  Соединения поверх HTTP / HTTPS
•  Транзакционный обмен сообщений XML с соблюдением порядка
транзакций
•  Режим «запрос/ответ»
•  Аутентификация на основе ролей пользователя
•  Иерархическая модель объектов
•  Встроенный браузер объектов
•  Документированная схема XML в публичном доступе
•  Встроенная отказоустойчивость
Характеристики UCS XML API
XML API
Иерархическая модель объектов
Cisco UCS Management Information Tree (MIT)
Объекты управления
§  Физические (процессоры, шасси, серверы, модули ввода-вывода, …)
§  Логические (пулы ресурсов, роли пользователей, политики, профили, …)
Объекты управления
(Management Object – MO)
PowerShell модули для интеграции с Cisco UCS
Доступны для UCS систем и stand-alone C-серии
Свободно скачивается с http://cisco.com
PowerTool for UCSM содержит около 2000 команд
Доступно 100% функционала UCSM
Отлично сочетается с идеологией управления
Microsoft
Что такое PowerTool
§  Оборудование
§  VLANs, LAN Uplink, SAN Uplink, Server, Appliance Ports, Port Channels, и т.д.
§  Пулы
§  Servers, UUID, MAC, IP, WWPN, WWNN, iSCSI, и т.д.
§  Политики
§  BIOS, Firmware, Adapters, Boot, Drives, и т.д.
§  Шаблоны
§  vNIC, vHBA, Service Profile Templates, и т.д.
§  Отчетность
§  vNIC Statistics, vHBA Statistics, Thermal, Resources, и т.д.
Глубина возможностей PowerTool
§  Открываем UCSM GUI
§  Import-Module CiscoUcsPs
§  Запускаем ConvertTo-UcsCmdlet в сессии PowerShell
§  Будет работать пока не остановим
§  Делаем что-то в UCSM GUI и жмем ‘Save’
§  Смотрим на сессию PowerShell
§  Увидим PowerShell команды для выполненных в UCSM операций
Легкий в обучении
Веб-сообщество
http://developer.cisco.com/web/unifiedcomputing/home
§  Загрузки:
§  UCS Platform Emulator (UCSPE)
§  goUCS Automation Tool
§  XML API, Perl, PowerShell code samples
Microsoft – PowerShell library, SCOM MP
§  Python SDK
§  Документация:
§  Programming & developer guides
§  White papers
§  Reference guides (XML model, Faults)
Cisco Developer Network
10
UCS Platform Emulator (UCSPE)
11
Полноценный эмулятор UCS Manager
Распространяется в виде виртуальной
машины
Не требует оборудования UCS
Полностью поддерживает XML API
Содержит браузер объектов XML-схемы
Создание собственной или импорт
имеющейся аппаратной конфигурации
UCS
1
2
3
Выполнить действие в UCS Manager и перехватить XML в goUCS
Создать скрипт в goUCS, заменяя постоянные значения на
переменные
Запускать скрипт по своему усмотрению с нужными параметрами
Программа goUCS
12
Программа автоматизации управления UCS для сред Windows, Linux, MAC OS
Абстрагирует пользователя от использования XML
Позволяет конвертировать XML-вызовы в сценарии
UCS Director – открытая и расширяемая
платформа для автоматизации в ЦОД
Пакет ПО Cisco Enterprise Cloud Suite
Cloud Services
Экосистема сервис-
провайдеров
Cisco® Virtual Application
Container Services
Портал самообслуживания
Cisco Prime™ Service Catalog
Управление интегрированными стеками
Cisco UCS® Director
Мультивендорная инфраструктура:
серверы, сеть, SAN, СХД, гипервизоры
Управление гибридным
облаком
Cisco Intercloud Fabric
CloudOperations(CloudAssurance)(3rd-
PartyBilling,Assurance,ResourceMgmt)
UCS Director: управление конвергентной инфраструктурой «в
целом»
Развертывание на основе
политик
vFiler
СХД
Вирт. машины
Сеть Вычислит.
платформа
Безопасные контейнеры для
приложений
Self-Service
Infrastructure
Единая точка
управления
Сквозная
автоматизация и
управление
жизненным циклом
СХД
Сеть
Вычисления
Tenant
B
Tenant
C
Tenant
A
A B C
Виртуализация
Storage
Manager
B CA
Virtualization
Manager
Network
Manager
Compute
Manager
Storage
Manager
UCS Director: возможности API и SDK
UCS Director
REST API на основе JSON и XML,
PowerShell
Интеграция с
внешними системами
(например, портал)
PowerShell
SSH
Физическая среда или
среда виртуализации
Запуск скриптов на
стороне
инфраструктуры
Open Automation
SDK
Физические или
виртуализированные элементы
инфраструктуры ЦОД
Комплексная
интеграция с
инфраструктурой
Cloupia Script
Запуск скриптов на
стороне UCS Director
Публично доступные сценарии для UCS Director
Пример № 1
Практический пример № 1
UCS Director
Сеть
Сервер
СХД
Virtualization
VMware Hyper-V KVMРазвертывание
виртуальных
машин
автоматизируется
при помощи
UCS Director
Решение:
Использование
Cloupia Script
на основе JavaScript
Задача: Получить
расширенную
информацию о
виртуальной
машине в
сценарии
автоматизации: IP
адрес, ID-хоста
гипервизора и т.д.
CloupiaScript
Сценарий
автоматизации1. Запуск сценария
Сценарий автоматизации с использованием
CloupiaScript
UCS Director
Шаг № 1
Шаг № 2
Шаг № 4
Cloupia Script
2. Выполнение скрипта
Cloupia Script
var a = 2;
var b = 5;
var total = a+b;
logger.addInfo("Total is " + total);
Свойства CloupiaScript
1.  Cloupia Script = Java Script + Cloupia Libraries
2.  Запускается внутри UCS Director – на серверной стороне
3.  Различные Cloupia Java API и объекты доступны из скрипта
4.  Весь синтаксис Java Script поддерживается
5.  Поскольку скрипт выполняется на серверной стороне, никакие объекты
‘Browser’ related не поддерживаются
Более подробно: Cisco UCS Director CloupiaScript Cookbook
http://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/ucs-director/cloupia-script-cookbook/5-0/CloupiaScript-Cookbook.pdf
Cloupia Script SDK
https://developer.cisco.com/fileMedia/download/0f4ec17c-ba4c-4627-a505-033479b69b38
Использование CloupiaScript для получения
информации об IP адресе виртуальной машины
Используем готовый сценарий автоматизации
Policies -> Orchestration -> Workflows -> Import
https://communities.cisco.com/docs/DOC-56732
Настройка параметров сценария автоматизации
Входной переменной для сценария является идентификатор виртуальной
машины
•  Policies -> Orchestration -> Workflows -> -> Edit workflow
Редактирование сценария автоматизации
После импорта готового
сценария в разделе Custom
Task появился шаг «Retrieve
VM IP address»
Теперь этот шаг можно
использовать в собственных
сценариях
Редактирование кастомизированного шага сценария
Вместе со сценарием автоматизации в базу UCS Director импортируется так
же и кастомизированный шаг, который представляет собой Сloupia Script
•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit
-> входная переменная для скрипта, которая является
указателем на объект «Виртуальная машина»
Редактирование CloupiaScript
Получаем структуру с информацией о
виртуальной машине
Получаем IP адрес
Логируем информацию
Передаем IP адрес в выходную
переменную
Запускаем сценарий автоматизации
Запускаем сценарий
•  Policies -> Orchestration -> Workflow -> -> Execute now
Выбираем виртуальную машину
Проверяем выполнение сценария
Лог действий в UCS Director
IP-адрес виртуальной в переменной
Пример № 2
Пример № 2
UCS Director
Сеть
Сервер
СХД
Virtualization
VMware Hyper-V KVMРазвертывание
виртуальных
машин
автоматизируется
при помощи
UCS Director
DNS сервер
Задача:
автоматизация
внесений записей
DNS для вновь
развертываемых
виртуальных
машин
Решение:
Использование
Microsoft PowerShell
Интеграция UCS Director и PowerShell агента
Интеграция UCS Director и Microsoft при помощи PowerShell агента
UCS Director
UCS Director
PowerShell агент
PowerShell скрипт
по защищенному
каналу
Скрипт исполняется
на стороне
Windows сервера
Установка PowerShell агента
Administration -> Virtual Accounts -> PowerShell Agents -> Download
Installer
1
2 Установка
агента
Настройка WinRM и WinRS
Проверить что сервисы WinRM и WinRS включены
Windows Remote Management (WinRM)3
Windows Remote Shell (WinRS)4
Настройка таблицы доверенных хостов для WinRS
winrm set winrm/config/client @{TrustedHosts=" "}
* - любой хост
winrm set winrm/config/client @{TrustedHosts=“ "}
A.B.C.D – IP адрес UCS Director
5
6 проверяем список доверенных хостов
winrm g winrm/config
Настраиваем подключение к агенту из UCS Director
Administration -> Virtual Accounts -> PowerShell Agents -> Add7
Тестируем соединение8
Тестируем исполнение простейшей команды
на стороне Windows 2012 сервера
9
10
Использование PowerShell для автоматизации
настройки DNS
Автоматизация настройки DNS
UCS Director
UCS Director
PowerShell агент
Развертывание
виртуальной
машины
1
Настройка DNS
записей2
Используем готовый сценарий автоматизации
Policies -> Orchestration -> Workflows -> Import
https://communities.cisco.com/docs/DOC-54044
Настройка информации о DNS зонах в UCS Director
•  Импортированный сценарий автоматизации использует собственные
переменные для хранения информации о DNS-зонах
•  Переменные импортируются вместе со сценарием оркестрации
•  Вносим изменения для того чтобы указать собственные зоны
•  Policies -> Orchestration -> Сustom Workflow Inputs -> -> Edit
Настройка параметров сценария автоматизации 1/2
Настраиваем импортированный сценарий
•  Policies -> Orchestration -> Workflow -> -> Edit Workflow
Контекст определяет виртуальную
машину для которой будет
добавляться DNS-запись в зону
Настройка параметров сценария автоматизации 2/2
Проверяем использование переменных в которых хранится информация о
DNS-зонах
Переменная с
набором зон
Редактирование сценария автоматизации
Переходим в режим редактирования
•  Policies -> Orchestration -> Workflow -> -> Workflow Designer
Редактирование шагов сценария автоматизации
Выбираем
PowerShell агент
Редактируем
PowerShell скрипт
Запускаем сценарий автоматизации
Запускаем сценарий
•  Policies -> Orchestration -> Workflow -> -> Execute now
Выбираем виртуальную машину
Выбираем DNS-зону
Проверяем выполнение сценария
Лог действий в UCS Director
Новая запись в DNS-зоне
Пример № 3
Пример № 3
API
2. Запрос на
выделение IP адреса
3. Получение IP адреса
из DDI системы
DDI система
UCS Director
1.Развертывание
виртуальной
машины
4. Настройка IP адреса
полученного из DDI
системы
5. Добавление записи о
хосте в DDI систему
система управления
DNS, DHCP и
IP адресацией
Интеграция с DDI-системой компании InfoBlox
при помощи REST API
Используем готовый сценарий автоматизации
Policies -> Orchestration -> Workflows -> Import
https://communities.cisco.com/docs/DOC-57415
Интеграция UCS Director и Infoblox
REST API (WAPI)
1. Запрос на
выделение IP адреса
2. Получение IP адреса
из DDI системы
DDI система
UCS Director
3. Добавление записи о
хосте в DDI систему
система управления
DNS, DHCP и
IP адресацией
Виртуальная
машина, развернутая
при помощи
UCS Director
Интеграция с Infoblox при помощи CloupiaScript
Вместе со сценарием автоматизации в базу UCS Director импортируются так
же и кастомизированные шаги, которые представляют собой Сloupia Script
•  Policies -> Orchestration -> Custom Workflow Tasks -> ->
Edit
•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit
•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit
Настройка IPAM в Infoblox
Подсеть, контролируемая IPAM
В пуле 253
свободных адреса
Настройка DNS в Infoblox
Контролируемые DNS-домены
Редактирование сценария автоматизации
После импорта готового
сценария в разделе Custom
Task появилась папка
«Infoblox»
Теперь эти шаги можно
использовать в собственных
сценариях
Переменные, используемые в сценарии автоматизации
•  Импортированный сценарий автоматизации использует собственные
переменные для хранения информации о системе InfoBlox, а так же о
добавляемом в систему хосте
•  Просмотр переменных
•  Policies -> Orchestration -> Workflows -> -> Edit workflow
Пример CloupiaScript при интеграции с InfoBlox
Запускаем сценарий автоматизации
Запускаем сценарий
•  Policies -> Orchestration -> Workflow -> -> Execute now
DNS-имя добавляемого хоста
DNS-домен
Проверяем выполнение в UCS Director
Выполнение сценария в UCS Director
IP-адрес, полученный из IPAM
Проверяем выполние в InfoBlox
Новая запись в IPAM
Новая запись в DNS
Возвращаем все в исходное состояние
Встроенный механизм возврата в исходное состояние –
Rollback Request
Open Automation и SDK.
Интеграция UCS Director с «новыми»
устройствами65
Поддержка инфраструктуры 3-х производителей
VMware
Hyper-V
Cisco UCS Director
Интеграция out of the box Open Automation
Framework
Возможности Open Automation
Поддержка инфраструктуры третьих производителей
Новые “кирпичики” для построения сценариев автоматизации
Life Cycle Management
§  Специализированные типы учетных записей, Pod-ов
§  Инвентаризация, Конфигурация, Развертывание, Мониторинг, Тригеры
GUI
§  Дополнительные пункты меню
Отчеты
§  Таблицы, Диаграммы, Summary и т.д.
§  Отчеты CloudSense®
67
Интеграция с UCS Director через REST API
REST API
Использует HTTP в качестве
протокола
§  GET – Получить данные
§  PUT – Изменить объект
§  POST – Создать объект
§  DELETE – Удалить объект
JSON и/или XML формат
Аутентификация через Cookies или
заголовки
Клиент посылает Request
Сервер возвращает Response
69
GET /api/v1/routing-svc/eigrp
Accept: application/json
200 ok
Content-type: application/json
{
“kind”: “collection#eigrp-asn”,
“items”: [
{
“kind”: “object#eigrp-asn”,
“routing-protocol-id”: “100”
},
]
}
Request
Response
Пример REST запроса к UCS Director
# “curl” utility for sending REST request
curl -v --header "X-Cloupia-Request-Key: 10E17C7EB358376DAC96F829FB3081D2"
http://cloud-ucsd.csc.richfield.cisco.com/app/api/rest?formatType=json
&opName=userAPIGetAllCatalogs
# HTTP GET Request from Client
> GET /app/api/rest?formatType=json&opName=userAPIGetAllCatalogs HTTP/1.1
> User-Agent: curl/7.37.1
> Host: cloud-ucsd.csc.richfield.cisco.com
> Accept: */*
> X-Cloupia-Request-Key: 10E17C7EB358376DAC96F829FB3081D2
>
70
Аутентификация
JSON FormatТребуемая
функция
REST ответ от UCS Director-а
# HTTP Response from Server
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Set-Cookie: JSESSIONID=69E75630EDB5A3C70929E666360A8EB4; Path=/app/
< Cache-Control: max-age=0,must-revalidate
< Expires: -1
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Sat, 09 May 2015 18:54:32 GMT
<
{ "serviceResult":{"rows":[{"Catalog_ID":"1","Catalog_Name":"General Linux Web
Server","Folder":"General
Servers","Catalog_Type":"Standard","Template_Name":"Not
Applicable","Catalog_Description":"","Cloud":"cloud-vcenter","Image":"base-
rhel63-2","Group":"Cloud Admins@csc.richfield.cisco.com,Cloud
Users@csc.richfield.cisco.com","Icon":"/app/images/temp/
1427462292263_redhat.png”,...
71
Ответ в JSON
формате
API Essentials for IT Folks
Making REST easy with Postman
72
Save
Examples
Easy
parameters
Headers
Response
Data Display
API Essentials for IT Folks
Great Language for IT Evolution
§  Easy to learn and read
§  Huge amount of samples
§  Runs on nearly anything
“requests” module to “REST” easy
§  Simple Interface
§  Hides the HTTP Intricacies
Simple Utility Creation with “argparse”
Hacking together with Python
import requests
headers = {"X-Cloupia-Request-Key":key}
url = "http://” + /

“cloud-ucsd.csc.richfield.cisco.com” + / 

“/app/api/rest?” + /

“opName=userAPIGetAllCatalogs”
r = requests.get(url, headers=headers)
r.text
u'{ "serviceResult":{"rows":
[{"Catalog_ID":"1","Catalog_Name":"General
Linux Web Server","Folder":"General
Servers”...
73
Import Module
Authentication
Header in dict
Build URL
Submit Request
Print the
Response
Как начать использовать UCS Director REST API
Включить Developer Menu
•  REST API Browser
•  Примеры кода
Скопировать REST Access Key
•  По сути логин/пароль
74
REST API Browser
•  Находится в меню Policy ->
Orchestration
•  Структурирован в папки
•  Сотни API вызовов
•  Рекомендуем пользоваться
поиском
•  Double-click для подробной
информации и примеров
75
REST API Browser
76
Reference: REST API Cookbook
Заключение
§  UCS Manager – серверная платформа с управлением на основе
моделей, с развитым API и возможностями автоматизации
§  Как PowerShell, так и Python и Perl
§  UCS Director – расширяемая платформа для автоматизации
§  СloupiaScript
§  Поддержка PowerShell и SSH
§  Open Automation и SDK
§  Вызовы к UCS Director «извне»
§  REST API. Пример из реальной жизни – в следующей презентации
§  PowerShell
Основные тезисы
•  DevNet: http://developer.cisco.com
•  UCS Director
•  Worflow index
•  https://communities.cisco.com/docs/DOC-56419
•  REST Developer guide
•  http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ucs-director/rest-api-guide/5-2/
b_Cisco_UCS_Director_REST_Developer_Guide_52.html
•  CloupiaScript Cookbook
•  http://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/ucs-director/cloupia-script-cookbook/5-0/CloupiaScript-
Cookbook.pdf
•  OpenAutomation
•  http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ucs-director/open-automation-api-guide/5-1/
b_UCSD_Open_Automation_Developer_Guide_5_1.html
•  XML parsing software
•  XMLSpear (Mac & Windows)
Полезные ссылки
CiscoRu Cisco CiscoRussia
Ждем ваших сообщений с хештегом
#CiscoConnectRu
CiscoRu
Пожалуйста, заполните анкеты.
Ваше мнение очень важно для нас.
Спасибо!
Евгений Лагунцов
elagunts@cisco.com
© 2015 Cisco and/or its affiliates. All rights reserved.
Программные интерфейсы управления серверной платформой и вычислительными стеками (UCS и UCS Director)

Программные интерфейсы управления серверной платформой и вычислительными стеками (UCS и UCS Director)

  • 1.
    Программные интерфейсы управления сервернойплатформой и вычислительными стеками (UCS и UCS Director) Евгений Лагунцов Системный инженер-консультант © 2015 Cisco and/or its affiliates. All rights reserved.
  • 2.
    UCS Manager •  Управлениена основе абстракций •  Сокращение времени развертывания •  Перераспределение ресурсов быстро и эффективно •  Оптимизация инфраструктуры •  Взаимозаменяемые ресурсные пулы Унифицированная фабрика Вычислительные узлы БЕЗ компромиссов •  Поддержка как блейд так и стоечных серверов в единой системе •  Поддержка виртуализированных и bare- metal приложений Виртуализированный ввод-вывод •  Гибкость и масштабируемость •  Высокая производительность Составные части Cisco UCS XML API STANDARD API’S
  • 3.
    Интегрированное управление UCS Manager GUI Внешниесистемы управленияCLI Primary Secondary (HA) Специализированные утилиты и порталы •  Единое управление ВСЕЙ системой (до 160 серверов и вся LAN/SAN инфраструктура) из ОДНОЙ точки (резервированной) •  Физические серверы не являются объектом конфигурирования – они всего лишь часть ресурсного пула •  Внутренние сетевые порты не являются объектами конфигурирования – они настраиваются автоматически •  Конфигурируются общие политики, шаблоны, профили – многократно используемые, тиражируемые элементы •  Все серверные настройки отвязаны от «железа» – «динамические», «мобильные», «масштабируемые» •  Система управления интегрирована и резервирована
  • 4.
    Интерфейс прикладного управленияUCS XML API Стандартный XML API Доступ к физическим и логическим объектам внутри UCS XML API Напрямую UCS CLI UCS GUI 3rd Party Customer Self Service portals Management Tools Auditing Tools System Status Physical Inventory Logical Inventory
  • 5.
    Обзор UCS XMLAPI •  Соединения поверх HTTP / HTTPS •  Транзакционный обмен сообщений XML с соблюдением порядка транзакций •  Режим «запрос/ответ» •  Аутентификация на основе ролей пользователя •  Иерархическая модель объектов •  Встроенный браузер объектов •  Документированная схема XML в публичном доступе •  Встроенная отказоустойчивость Характеристики UCS XML API XML API
  • 6.
    Иерархическая модель объектов CiscoUCS Management Information Tree (MIT) Объекты управления §  Физические (процессоры, шасси, серверы, модули ввода-вывода, …) §  Логические (пулы ресурсов, роли пользователей, политики, профили, …) Объекты управления (Management Object – MO)
  • 7.
    PowerShell модули дляинтеграции с Cisco UCS Доступны для UCS систем и stand-alone C-серии Свободно скачивается с http://cisco.com PowerTool for UCSM содержит около 2000 команд Доступно 100% функционала UCSM Отлично сочетается с идеологией управления Microsoft Что такое PowerTool
  • 8.
    §  Оборудование §  VLANs,LAN Uplink, SAN Uplink, Server, Appliance Ports, Port Channels, и т.д. §  Пулы §  Servers, UUID, MAC, IP, WWPN, WWNN, iSCSI, и т.д. §  Политики §  BIOS, Firmware, Adapters, Boot, Drives, и т.д. §  Шаблоны §  vNIC, vHBA, Service Profile Templates, и т.д. §  Отчетность §  vNIC Statistics, vHBA Statistics, Thermal, Resources, и т.д. Глубина возможностей PowerTool
  • 9.
    §  Открываем UCSMGUI §  Import-Module CiscoUcsPs §  Запускаем ConvertTo-UcsCmdlet в сессии PowerShell §  Будет работать пока не остановим §  Делаем что-то в UCSM GUI и жмем ‘Save’ §  Смотрим на сессию PowerShell §  Увидим PowerShell команды для выполненных в UCSM операций Легкий в обучении
  • 10.
    Веб-сообщество http://developer.cisco.com/web/unifiedcomputing/home §  Загрузки: §  UCSPlatform Emulator (UCSPE) §  goUCS Automation Tool §  XML API, Perl, PowerShell code samples Microsoft – PowerShell library, SCOM MP §  Python SDK §  Документация: §  Programming & developer guides §  White papers §  Reference guides (XML model, Faults) Cisco Developer Network 10
  • 11.
    UCS Platform Emulator(UCSPE) 11 Полноценный эмулятор UCS Manager Распространяется в виде виртуальной машины Не требует оборудования UCS Полностью поддерживает XML API Содержит браузер объектов XML-схемы Создание собственной или импорт имеющейся аппаратной конфигурации UCS
  • 12.
    1 2 3 Выполнить действие вUCS Manager и перехватить XML в goUCS Создать скрипт в goUCS, заменяя постоянные значения на переменные Запускать скрипт по своему усмотрению с нужными параметрами Программа goUCS 12 Программа автоматизации управления UCS для сред Windows, Linux, MAC OS Абстрагирует пользователя от использования XML Позволяет конвертировать XML-вызовы в сценарии
  • 13.
    UCS Director –открытая и расширяемая платформа для автоматизации в ЦОД
  • 14.
    Пакет ПО CiscoEnterprise Cloud Suite Cloud Services Экосистема сервис- провайдеров Cisco® Virtual Application Container Services Портал самообслуживания Cisco Prime™ Service Catalog Управление интегрированными стеками Cisco UCS® Director Мультивендорная инфраструктура: серверы, сеть, SAN, СХД, гипервизоры Управление гибридным облаком Cisco Intercloud Fabric CloudOperations(CloudAssurance)(3rd- PartyBilling,Assurance,ResourceMgmt)
  • 15.
    UCS Director: управлениеконвергентной инфраструктурой «в целом» Развертывание на основе политик vFiler СХД Вирт. машины Сеть Вычислит. платформа Безопасные контейнеры для приложений Self-Service Infrastructure Единая точка управления Сквозная автоматизация и управление жизненным циклом СХД Сеть Вычисления Tenant B Tenant C Tenant A A B C Виртуализация Storage Manager B CA Virtualization Manager Network Manager Compute Manager Storage Manager
  • 16.
    UCS Director: возможностиAPI и SDK UCS Director REST API на основе JSON и XML, PowerShell Интеграция с внешними системами (например, портал) PowerShell SSH Физическая среда или среда виртуализации Запуск скриптов на стороне инфраструктуры Open Automation SDK Физические или виртуализированные элементы инфраструктуры ЦОД Комплексная интеграция с инфраструктурой Cloupia Script Запуск скриптов на стороне UCS Director
  • 17.
  • 18.
  • 19.
    Практический пример №1 UCS Director Сеть Сервер СХД Virtualization VMware Hyper-V KVMРазвертывание виртуальных машин автоматизируется при помощи UCS Director Решение: Использование Cloupia Script на основе JavaScript Задача: Получить расширенную информацию о виртуальной машине в сценарии автоматизации: IP адрес, ID-хоста гипервизора и т.д.
  • 20.
  • 21.
    Сценарий автоматизации1. Запуск сценария Сценарийавтоматизации с использованием CloupiaScript UCS Director Шаг № 1 Шаг № 2 Шаг № 4 Cloupia Script 2. Выполнение скрипта Cloupia Script var a = 2; var b = 5; var total = a+b; logger.addInfo("Total is " + total);
  • 22.
    Свойства CloupiaScript 1.  CloupiaScript = Java Script + Cloupia Libraries 2.  Запускается внутри UCS Director – на серверной стороне 3.  Различные Cloupia Java API и объекты доступны из скрипта 4.  Весь синтаксис Java Script поддерживается 5.  Поскольку скрипт выполняется на серверной стороне, никакие объекты ‘Browser’ related не поддерживаются Более подробно: Cisco UCS Director CloupiaScript Cookbook http://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/ucs-director/cloupia-script-cookbook/5-0/CloupiaScript-Cookbook.pdf Cloupia Script SDK https://developer.cisco.com/fileMedia/download/0f4ec17c-ba4c-4627-a505-033479b69b38
  • 23.
    Использование CloupiaScript дляполучения информации об IP адресе виртуальной машины
  • 24.
    Используем готовый сценарийавтоматизации Policies -> Orchestration -> Workflows -> Import https://communities.cisco.com/docs/DOC-56732
  • 25.
    Настройка параметров сценарияавтоматизации Входной переменной для сценария является идентификатор виртуальной машины •  Policies -> Orchestration -> Workflows -> -> Edit workflow
  • 26.
    Редактирование сценария автоматизации Послеимпорта готового сценария в разделе Custom Task появился шаг «Retrieve VM IP address» Теперь этот шаг можно использовать в собственных сценариях
  • 27.
    Редактирование кастомизированного шагасценария Вместе со сценарием автоматизации в базу UCS Director импортируется так же и кастомизированный шаг, который представляет собой Сloupia Script •  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit -> входная переменная для скрипта, которая является указателем на объект «Виртуальная машина»
  • 28.
    Редактирование CloupiaScript Получаем структурус информацией о виртуальной машине Получаем IP адрес Логируем информацию Передаем IP адрес в выходную переменную
  • 29.
    Запускаем сценарий автоматизации Запускаемсценарий •  Policies -> Orchestration -> Workflow -> -> Execute now Выбираем виртуальную машину
  • 30.
    Проверяем выполнение сценария Логдействий в UCS Director IP-адрес виртуальной в переменной
  • 31.
  • 32.
    Пример № 2 UCSDirector Сеть Сервер СХД Virtualization VMware Hyper-V KVMРазвертывание виртуальных машин автоматизируется при помощи UCS Director DNS сервер Задача: автоматизация внесений записей DNS для вновь развертываемых виртуальных машин Решение: Использование Microsoft PowerShell
  • 33.
    Интеграция UCS Directorи PowerShell агента
  • 34.
    Интеграция UCS Directorи Microsoft при помощи PowerShell агента UCS Director UCS Director PowerShell агент PowerShell скрипт по защищенному каналу Скрипт исполняется на стороне Windows сервера
  • 35.
    Установка PowerShell агента Administration-> Virtual Accounts -> PowerShell Agents -> Download Installer 1 2 Установка агента
  • 36.
    Настройка WinRM иWinRS Проверить что сервисы WinRM и WinRS включены Windows Remote Management (WinRM)3 Windows Remote Shell (WinRS)4
  • 37.
    Настройка таблицы доверенныххостов для WinRS winrm set winrm/config/client @{TrustedHosts=" "} * - любой хост winrm set winrm/config/client @{TrustedHosts=“ "} A.B.C.D – IP адрес UCS Director 5 6 проверяем список доверенных хостов winrm g winrm/config
  • 38.
    Настраиваем подключение кагенту из UCS Director Administration -> Virtual Accounts -> PowerShell Agents -> Add7 Тестируем соединение8
  • 39.
    Тестируем исполнение простейшейкоманды на стороне Windows 2012 сервера 9 10
  • 40.
    Использование PowerShell дляавтоматизации настройки DNS
  • 41.
    Автоматизация настройки DNS UCSDirector UCS Director PowerShell агент Развертывание виртуальной машины 1 Настройка DNS записей2
  • 42.
    Используем готовый сценарийавтоматизации Policies -> Orchestration -> Workflows -> Import https://communities.cisco.com/docs/DOC-54044
  • 43.
    Настройка информации оDNS зонах в UCS Director •  Импортированный сценарий автоматизации использует собственные переменные для хранения информации о DNS-зонах •  Переменные импортируются вместе со сценарием оркестрации •  Вносим изменения для того чтобы указать собственные зоны •  Policies -> Orchestration -> Сustom Workflow Inputs -> -> Edit
  • 44.
    Настройка параметров сценарияавтоматизации 1/2 Настраиваем импортированный сценарий •  Policies -> Orchestration -> Workflow -> -> Edit Workflow Контекст определяет виртуальную машину для которой будет добавляться DNS-запись в зону
  • 45.
    Настройка параметров сценарияавтоматизации 2/2 Проверяем использование переменных в которых хранится информация о DNS-зонах Переменная с набором зон
  • 46.
    Редактирование сценария автоматизации Переходимв режим редактирования •  Policies -> Orchestration -> Workflow -> -> Workflow Designer
  • 47.
    Редактирование шагов сценарияавтоматизации Выбираем PowerShell агент Редактируем PowerShell скрипт
  • 48.
    Запускаем сценарий автоматизации Запускаемсценарий •  Policies -> Orchestration -> Workflow -> -> Execute now Выбираем виртуальную машину Выбираем DNS-зону
  • 49.
    Проверяем выполнение сценария Логдействий в UCS Director Новая запись в DNS-зоне
  • 50.
  • 51.
    Пример № 3 API 2.Запрос на выделение IP адреса 3. Получение IP адреса из DDI системы DDI система UCS Director 1.Развертывание виртуальной машины 4. Настройка IP адреса полученного из DDI системы 5. Добавление записи о хосте в DDI систему система управления DNS, DHCP и IP адресацией
  • 52.
    Интеграция с DDI-системойкомпании InfoBlox при помощи REST API
  • 53.
    Используем готовый сценарийавтоматизации Policies -> Orchestration -> Workflows -> Import https://communities.cisco.com/docs/DOC-57415
  • 54.
    Интеграция UCS Directorи Infoblox REST API (WAPI) 1. Запрос на выделение IP адреса 2. Получение IP адреса из DDI системы DDI система UCS Director 3. Добавление записи о хосте в DDI систему система управления DNS, DHCP и IP адресацией Виртуальная машина, развернутая при помощи UCS Director
  • 55.
    Интеграция с Infobloxпри помощи CloupiaScript Вместе со сценарием автоматизации в базу UCS Director импортируются так же и кастомизированные шаги, которые представляют собой Сloupia Script •  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit •  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit •  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit
  • 56.
    Настройка IPAM вInfoblox Подсеть, контролируемая IPAM В пуле 253 свободных адреса
  • 57.
    Настройка DNS вInfoblox Контролируемые DNS-домены
  • 58.
    Редактирование сценария автоматизации Послеимпорта готового сценария в разделе Custom Task появилась папка «Infoblox» Теперь эти шаги можно использовать в собственных сценариях
  • 59.
    Переменные, используемые всценарии автоматизации •  Импортированный сценарий автоматизации использует собственные переменные для хранения информации о системе InfoBlox, а так же о добавляемом в систему хосте •  Просмотр переменных •  Policies -> Orchestration -> Workflows -> -> Edit workflow
  • 60.
    Пример CloupiaScript приинтеграции с InfoBlox
  • 61.
    Запускаем сценарий автоматизации Запускаемсценарий •  Policies -> Orchestration -> Workflow -> -> Execute now DNS-имя добавляемого хоста DNS-домен
  • 62.
    Проверяем выполнение вUCS Director Выполнение сценария в UCS Director IP-адрес, полученный из IPAM
  • 63.
    Проверяем выполние вInfoBlox Новая запись в IPAM Новая запись в DNS
  • 64.
    Возвращаем все висходное состояние Встроенный механизм возврата в исходное состояние – Rollback Request
  • 65.
    Open Automation иSDK. Интеграция UCS Director с «новыми» устройствами65
  • 66.
    Поддержка инфраструктуры 3-хпроизводителей VMware Hyper-V Cisco UCS Director Интеграция out of the box Open Automation Framework
  • 67.
    Возможности Open Automation Поддержкаинфраструктуры третьих производителей Новые “кирпичики” для построения сценариев автоматизации Life Cycle Management §  Специализированные типы учетных записей, Pod-ов §  Инвентаризация, Конфигурация, Развертывание, Мониторинг, Тригеры GUI §  Дополнительные пункты меню Отчеты §  Таблицы, Диаграммы, Summary и т.д. §  Отчеты CloudSense® 67
  • 68.
    Интеграция с UCSDirector через REST API
  • 69.
    REST API Использует HTTPв качестве протокола §  GET – Получить данные §  PUT – Изменить объект §  POST – Создать объект §  DELETE – Удалить объект JSON и/или XML формат Аутентификация через Cookies или заголовки Клиент посылает Request Сервер возвращает Response 69 GET /api/v1/routing-svc/eigrp Accept: application/json 200 ok Content-type: application/json { “kind”: “collection#eigrp-asn”, “items”: [ { “kind”: “object#eigrp-asn”, “routing-protocol-id”: “100” }, ] } Request Response
  • 70.
    Пример REST запросак UCS Director # “curl” utility for sending REST request curl -v --header "X-Cloupia-Request-Key: 10E17C7EB358376DAC96F829FB3081D2" http://cloud-ucsd.csc.richfield.cisco.com/app/api/rest?formatType=json &opName=userAPIGetAllCatalogs # HTTP GET Request from Client > GET /app/api/rest?formatType=json&opName=userAPIGetAllCatalogs HTTP/1.1 > User-Agent: curl/7.37.1 > Host: cloud-ucsd.csc.richfield.cisco.com > Accept: */* > X-Cloupia-Request-Key: 10E17C7EB358376DAC96F829FB3081D2 > 70 Аутентификация JSON FormatТребуемая функция
  • 71.
    REST ответ отUCS Director-а # HTTP Response from Server < HTTP/1.1 200 OK < Server: Apache-Coyote/1.1 < Set-Cookie: JSESSIONID=69E75630EDB5A3C70929E666360A8EB4; Path=/app/ < Cache-Control: max-age=0,must-revalidate < Expires: -1 < Content-Type: application/json;charset=UTF-8 < Transfer-Encoding: chunked < Date: Sat, 09 May 2015 18:54:32 GMT < { "serviceResult":{"rows":[{"Catalog_ID":"1","Catalog_Name":"General Linux Web Server","Folder":"General Servers","Catalog_Type":"Standard","Template_Name":"Not Applicable","Catalog_Description":"","Cloud":"cloud-vcenter","Image":"base- rhel63-2","Group":"Cloud Admins@csc.richfield.cisco.com,Cloud Users@csc.richfield.cisco.com","Icon":"/app/images/temp/ 1427462292263_redhat.png”,... 71 Ответ в JSON формате
  • 72.
    API Essentials forIT Folks Making REST easy with Postman 72 Save Examples Easy parameters Headers Response Data Display
  • 73.
    API Essentials forIT Folks Great Language for IT Evolution §  Easy to learn and read §  Huge amount of samples §  Runs on nearly anything “requests” module to “REST” easy §  Simple Interface §  Hides the HTTP Intricacies Simple Utility Creation with “argparse” Hacking together with Python import requests headers = {"X-Cloupia-Request-Key":key} url = "http://” + /
 “cloud-ucsd.csc.richfield.cisco.com” + / 
 “/app/api/rest?” + /
 “opName=userAPIGetAllCatalogs” r = requests.get(url, headers=headers) r.text u'{ "serviceResult":{"rows": [{"Catalog_ID":"1","Catalog_Name":"General Linux Web Server","Folder":"General Servers”... 73 Import Module Authentication Header in dict Build URL Submit Request Print the Response
  • 74.
    Как начать использоватьUCS Director REST API Включить Developer Menu •  REST API Browser •  Примеры кода Скопировать REST Access Key •  По сути логин/пароль 74
  • 75.
    REST API Browser • Находится в меню Policy -> Orchestration •  Структурирован в папки •  Сотни API вызовов •  Рекомендуем пользоваться поиском •  Double-click для подробной информации и примеров 75
  • 76.
  • 77.
  • 78.
    §  UCS Manager– серверная платформа с управлением на основе моделей, с развитым API и возможностями автоматизации §  Как PowerShell, так и Python и Perl §  UCS Director – расширяемая платформа для автоматизации §  СloupiaScript §  Поддержка PowerShell и SSH §  Open Automation и SDK §  Вызовы к UCS Director «извне» §  REST API. Пример из реальной жизни – в следующей презентации §  PowerShell Основные тезисы
  • 79.
    •  DevNet: http://developer.cisco.com • UCS Director •  Worflow index •  https://communities.cisco.com/docs/DOC-56419 •  REST Developer guide •  http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ucs-director/rest-api-guide/5-2/ b_Cisco_UCS_Director_REST_Developer_Guide_52.html •  CloupiaScript Cookbook •  http://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/ucs-director/cloupia-script-cookbook/5-0/CloupiaScript- Cookbook.pdf •  OpenAutomation •  http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ucs-director/open-automation-api-guide/5-1/ b_UCSD_Open_Automation_Developer_Guide_5_1.html •  XML parsing software •  XMLSpear (Mac & Windows) Полезные ссылки
  • 80.
    CiscoRu Cisco CiscoRussia Ждемваших сообщений с хештегом #CiscoConnectRu CiscoRu Пожалуйста, заполните анкеты. Ваше мнение очень важно для нас. Спасибо! Евгений Лагунцов elagunts@cisco.com © 2015 Cisco and/or its affiliates. All rights reserved.