Программные интерфейсы управления серверной...

Post on 14-Apr-2017

364 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Программные интерфейсы управления серверной платформой и вычислительными стеками (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

C

loud

Ope

ratio

ns (C

loud

Ass

uran

ce) (

3rd -

Par

ty B

illin

g, A

ssur

ance

, Res

ourc

e M

gmt)

UCS Director: управление конвергентной инфраструктурой «в целом»

Развертывание на основе политик

vFiler

СХД Вирт. машины

Сеть Вычислит. платформа

Безопасные контейнеры для приложений

Self-Service Infrastructure

Единая точка управления

Сквозная

автоматизация и управление

жизненным циклом

СХД

Сеть

Вычисления

Tenant B

Tenant C

Tenant A

A B C

Виртуализация

Storage Manager

B C A

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 -> Add 7

Тестируем соединение 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.

top related