Практические примеры использования API в...

85
8 апреля 2015 г . Хаванкин Максим cистемный архитектор, CCIE [email protected]

Transcript of Практические примеры использования API в...

Page 1: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

8 апреля 2015 г.

Хаванкин Максим cистемный архитектор, CCIE [email protected]

Page 2: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 2 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

По завершении данного семинара примите участие в конкурсе в наших социальных сообществах. Вам потребуется ответить на вопрос по теме вебинара, и возможно, именно вы станете счастливым обладателем сувенира от компании Cisco. Вопросы будут опубликованы сразу после нашей трансляции. Удачи! vk.com/cisco facebook.com/CiscoRu facebook.com/CiscoUA *призы разыгрываются в каждом сообществе **результаты публикуются раз в неделю.

Внимание, конкурс!

Page 3: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 3 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  API для управления сетевой инфраструктурой ЦОД §  CLI, SNMP, REST, JSON-RPC

§  Практический пример № 1 – настройка Nexus 9000 при помощи API вызовов §  NX-API в коммутаторах Nexus

§  UCS Director – открытая и расширяемая платформа для автоматизации в ЦОД

§  Практический пример № 2 – внесение записей в MS DNS §  Интеграция UCS Director и PowerShell агента §  Использование PowerShell для автоматизации настройки DNS

§  Практический пример № 3 – получение расширенной информации о виртуальной машине §  Cloupia Script §  Использование CloupiaScript для получения информации об IP адресе виртуальной машины

§  Практический пример № 4 – интеграция UCS Director с Infoblox §  Интеграция с DDI-системой компании InfoBlox при помощи REST API

Содержание

Page 4: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 4 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

API для управления сетевой инфраструктурой ЦОД

Page 5: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 5 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

$ ssh [email protected]

[email protected]'s password:

cho# conf t

Enter configuration commands, one per line. End with CNTL/Z.

cho(config)#

> 70% настроек сегодня выполняются так или > 90%?

Task Oriented

Human Friendly

Easy To Replay

No Special Tools

Software Unfriendly

Syntax/format

changes

No Common Data Model

No Error Reporting

Page 6: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 6 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  SNMP относительно хорош при решении задачи мониторинга (RFC 3535) §  Типичная настройка: SNMPv2 read-only community strings §  Типичное использование: сбор статистики с интерфейсов и trap-ы

§  Эмпирический факт: SNMP не используется для настройки

Почему не SNMP? Это ведь программный способ настройки?

Lack of Writeable

MIBs Security

Concerns Hard to Replay / Rollback

Requires special

applications

Page 7: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 7 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

API на уровне устройства • NETCONF • REST •  JSON-RPC

Высокоуровневые абстракции и DevOps •  Puppet • Chef • Openstack

Новые инструменты для настройки сетевых устройств

Page 8: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 8 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST

Page 9: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 9 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST использует знакомую модель

HTTP GET

HTML

Описывает как данные отображаются пользователю

HTTP GET

JSON/XML

Описывают данные в формате, который понятен приложению

{"ids":[303776224, 19449911, 607032789, 86544242, 2506725913, 17631389], "next_cursor":0, "next_cursor_str":"0", "previous_cursor":0, "previous_cursor_str":"0"}

Web серфинг REST API Twitter: IDs of last five followers

Page 10: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 10 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Это RESTful API - попробуйте! http://cerridwen.viridian-project.de/api/v1/sun?latitude=40.02&longitude=105.26

•  JSON: JavaScript Object Notation •  простой, открытый стандарт, формат понятный человеку

•  Более компактная альтернатива XML •  RFC 4627

JSON Format

Page 11: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 11 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST= REpresentational State Transfer

Предложен Roy Fielding в 2000 году

Разработан W3C параллельно с HTTP 1.1

REST больше похож на архитектурный стиль (не протокол)

Простой набор операций CRUD при помощи HTTP

Клиент-серверная модель без сохранения состояния

Использование URI для идентификации операции

CRUD = Create Read Update Delete

Page 12: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 12 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Количество REST API постоянно увеличивается

Page 13: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 13 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Почему это важно для сетевых инженеров?

Human Readable Software Friendly

Большое количество

разработчиков

Клиентские библиотеки

поддерживают большое

количество языков

Простота

Page 14: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 14 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST: не только для Web сервисов

Page 15: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 15 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST: Встречайте, «скоро не всех сетевых устройствах»?

Поддерживается на CSR1kV сXE 3.10 •  ASR1K сXE 3.14

В основном для конфигурации •  DNS, NTP, Interface, Routing, ACL, NAT

Сбор некоторой статистики •  Interface, CPU, Memory

Запуск внутри сервисного контейнера •  Использует onePK Python API

XR NX (9K) NX XE IOS

Page 16: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 16 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

JSON-RPC

Page 17: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 17 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

JSON-RPC: выглядит как REST, но немного по другому

Page 18: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 18 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Одинако: оба пересылают/принимают JSON поверх HTTP

REST (CSR 1000v) JSON-RPC (N9K NX-API)

Page 19: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 19 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST: много ресурсов

•  https://172.6.1.118/api/v1… …/global/banner …/global/hostname …/global/reload …/interfaces/… …/routing-svc/… …/nat-svc/… …/acl/… …

JSON-RPC: мало ресурсов

•  https://10.10.10.8/ins

Разное: Ресурсы (URI)

CSR1kV N9K

Page 20: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 20 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

REST: стандартные HTTP методы

•  GET: Retrieve/List •  PUT: Replace •  POST: Create New Entry •  DELETE: Delete

JSON-RPC: POST + body method

Разное: методы

Page 21: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 21 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

NXAPI •  CLI взаимодействие с устройством поверх HTTP / HTTPS •  Ввод/Вывод кодируется в JSON или XML

Show clock

NXAPI Web Server (NGINX)

[ { "jsonrpc": "2.0", "method": "cli", "params": { "cmd": "show clock", "version": 1 }, "id": 1 } ]

{ "jsonrpc": "2.0", "result": { "body": { "simple_time": "15:00:37.762 PST Mon Aug 18 2014\n" } }, "id": 1 }

HTTP / HTTPS

Switch# conf t Switch(config)# feature nxapi Switch(config)# exit

Page 22: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 22 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 1

Page 23: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 23 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка коммутатора Nexus 9000 при помощи API вызовов

NXAPI Web Server (NGINX)

API вызовы из Python скрипта 2

API вызовы из NX-API sandbox 1

Page 24: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 24 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

NXAPI – Web Sandbox Просто обратитесь по http к устройству с поддержкой NXAPI

Enter CLI Commands

Форматированный ввод/вывод

Page 25: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 25 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Модуль «Requests» для Python

>>> import requests >>> import json >>> url= 'https://api.github.com/some/endpoint' >>> payload= {'some': 'data'} >>> headers= {'content-type': 'application/json'} >>> r= requests.post(url, data=json.dumps(payload), headers=headers).json()

•  Модуль Requests : “HTTP для людей” o  Requests это распространяемая по лицензии Apache2

HTTP библиотека, написанная на языке Python.

•  Opensource, доступна для загрузки: o  https://pypi.python.org/pypi/requests o  http://docs.python-requests.org/en/latest/

•  Выполнять http вызовы при помощи конструкции requests проще чем при помощи urrlib2

Page 26: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 26 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Добавление VLAN при помощи NXAPI (python) import requests import json print "enter ip address" ip=raw_input() print "enter vlan to be configured" vlanId=raw_input() myheaders = {'content-type': 'application/json-rpc'} url = "http://"+ip+"/ins" username = "admin" password = ”очень_сложный_пароль" payload=[ {"jsonrpc": "2.0","method": "cli","params": {"cmd": "conf t","version": 1},"id": 1}, {"jsonrpc": "2.0","method": "cli","params": {"cmd": "vlan "+vlanId,"version": 1},"id": 2}, {"jsonrpc": "2.0","method": "cli","params": {"cmd": “exit”,"version": 1},"id": 3}, ] response = requests.post(url,data=json.dumps(payload), headers=myheaders,auth=(username,password)).json()

Модуль Requests для python

Запрашиваем IP адрес коммутатора

URL для обращения к коммутатору

Payload: switch# Conf t switch(config)#vlan <>, switch(config)# exit

Page 27: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 27 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  Коммутаторы Nexus часто разворачиваются в парах

§  Конфигурация/параметры на парных устройствах должны совпадать

§  В топологиях с поддержкой технологии vPC требуется чтобы VLAN-ы были настроены на каждом из пары коммутаторов

§  Как Python скрипт может помочь? Ø  С помощью python скрипта можно:

o  Использовать NXAPI чтобы выполнить show command-ы o  Сравнить VLAN-ы на всех парах коммутаторов

o  Настроить отсутствующие VLAN-ы

,

NXAPI: еще один пример использования

vPC

Page 28: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 28 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

UCS Director – открытая и расширяемая платформа для автоматизации в ЦОД

Page 29: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 29 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Портфолио решений Cisco для частного облака

Virtual Application Container Services

Cisco Intelligent Automation for Cloud Включает Prime Service Catalog

Управление интегированными стеками Cisco UCS Director

Инфраструктура: серверы, сеть, SAN, СХД, гипервизоры

Управление гибридным облаком Cisco Intercloud Fabric

C

loud

Ope

ratio

ns (P

rime

Ass

uran

ce) (

3rd

Par

ty B

illin

g, A

ssur

ance

, Res

ourc

e M

gmt)

APIC

Cloud Accelerators & Pre-defined

content

Prime Service Catalog Stack Designer

Page 30: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 30 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

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

Page 31: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 31 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

UCS Director: возможности API и SDK

UCS Director

REST API на основе JSON и XML

Интеграция с внешними система управления

облаками

Cloupia Script

Физическая среда или среда виртуализации

Интеграция с инфраструктурой на основе атомарных

операций

Open Automation SDK

Физические или виртуализированные элементы

инфраструктуры ЦОД

Комплексная интеграция с

инфраструктурой, как правило, выполняется производителем

Page 32: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 32 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Публично доступные сценарии для UCS Director

на дату проведения семинара доступно 139 готовых сценариев

Page 33: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 33 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 2

Page 34: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 34 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 2

UCS Director Сеть

Сервер

СХД

Virtualization

VMware Hyper-V KVM Развертывание виртуальных

машин автоматизируется

при помощи UCS Director

DNS сервер

Задача: автоматизация внесений записей DNS для вновь развертываемых виртуальных машин

Решение: Использование Microsoft PowerShell

Page 35: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 35 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Интеграция UCS Director и PowerShell агента

Page 36: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 36 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Интеграции UCS Director и Microsoft при помощи PowerShell агента

UCS Director

UCS Director PowerShell агент

PowerShell скрипт по защищенному

каналу*

Скрипт исполняется на стороне Windows

сервера

* authentication/access key может быть изменен http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ucs-director/powershell-guide/5-1/b_UCSDirector_PSAgent_Install_Config_51/b_UCSDirector_PSAgent_Install_Config_51_chapter_010.html

Page 37: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 37 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Установка PowerShell агента

Administration -> Virtual Accounts -> PowerShell Agents -> Download Installer 1

2 Установка агента

Page 38: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 38 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка WinRM и WinRS Проверить что сервисы WinRM и WinRS включены

Windows Remote Management (WinRM) 3

Windows Remote Shell (WinRS) 4

Page 39: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 39 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка таблицы доверенных хостов для 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

Page 40: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 40 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Может потребоваться выключение User Account Control Tools -> Change UAC settings

Page 41: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 41 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настраиваем подключение к агенту из UCS Director

Administration -> Virtual Accounts -> PowerShell Agents -> Add 7

Тестируем соединение 8

Page 42: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 42 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Тестируем исполнение простейшей команды на стороне Windows 2012 сервера

9

10

Page 43: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 43 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Использование PowerShell для автоматизации настройки DNS

Page 44: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 44 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Автоматизация настройки DNS

UCS Director

UCS Director PowerShell агент

Развертывание виртуальной машины

1

Настройка DNS записей 2

Page 45: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 45 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Используем готовый сценарий автоматизации Policies -> Orchestration -> Workflows -> Import

https://communities.cisco.com/docs/DOC-54044

Page 46: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 46 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка информации о DNS зонах в UCS Director

•  Импортированный сценарий автоматизации использует собственные переменные для хранения информации о DNS-зонах

•  Переменные импортируются вместе со сценарием оркестрации

•  Вносим изменения для того чтобы указать собственные зоны •  Policies -> Orchestration -> Сustom Workflow Inputs -> -> Edit

Page 47: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 47 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка параметров сценария автоматизации 1/2

Настраиваем импортированный сценарий •  Policies -> Orchestration -> Workflow -> -> Edit Workflow

Контекст определяет виртуальную машину для которой будет

добавляться DNS-запись в зону

Page 48: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 48 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка параметров сценария автоматизации 2/2

Проверяем использование переменных в которых хранится информация о DNS-зонах

Переменная с набором зон

Page 49: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 49 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование сценария автоматизации

Переходим в режим редактирования •  Policies -> Orchestration -> Workflow -> -> Workflow Designer

Page 50: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 50 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование шагов сценария автоматизации

Выбираем PowerShell агент

Редактируем PowerShell скрипт

Page 51: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 51 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Запускаем сценарий автоматизации

Запускаем сценарий •  Policies -> Orchestration -> Workflow -> -> Execute now

Выбираем виртуальную машину

Выбираем DNS-зону

Page 52: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 52 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Проверяем выполнение сценария Лог действий в UCS Director

Новая запись в DNS-зоне

Page 53: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 53 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 3

Page 54: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 54 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 3

UCS Director Сеть

Сервер

СХД

Virtualization

VMware Hyper-V KVM Развертывание виртуальных

машин автоматизируется

при помощи UCS Director

Решение: Использование Cloupia Script на основе JavaScript

Задача: Получить расширенную информацию о виртуальной машине в сценарии автоматизации: IP адрес, ID-хоста гипервизора и т.д.

Page 55: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 55 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

CloupiaScript

Page 56: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 56 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Сценарий автоматизации 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);

Page 57: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 57 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Свойства 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

Page 58: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 58 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Использование CloupiaScript для получения информации об IP адресе виртуальной машины

Page 59: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 59 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Используем готовый сценарий автоматизации Policies -> Orchestration -> Workflows -> Import

https://communities.cisco.com/docs/DOC-56732

Page 60: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 60 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка параметров сценария автоматизации

Входной переменной для сценария является идентификатор виртуальной машины

•  Policies -> Orchestration -> Workflows -> -> Edit workflow

Page 61: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 61 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование сценария автоматизации После импорта готового сценария в разделе Custom Task появился шаг «Retrieve VM IP address»

Теперь этот шаг можно использовать в собственных

сценариях

Page 62: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 62 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование кастомизированного шага сценария

Вместе со сценарием автоматизации в базу UCS Director импортируется так же и кастомизированный шаг, который представляет собой Сloupia Script

•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit

-> входная переменная для скрипта, которая является указателем на объект «Виртуальная машина»

Page 63: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 63 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование CloupiaScript

Получаем структуру с информацией о виртуальной машине Получаем IP адрес

console.log(ctxt.toString())

Логгируем информацию

Передаем IP адрес в выходную переменную

Page 64: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 64 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Запускаем сценарий автоматизации

Запускаем сценарий •  Policies -> Orchestration -> Workflow -> -> Execute now

Выбираем виртуальную машину

Page 65: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 65 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Проверяем выполнение сценария Лог действий в UCS Director

IP-адрес виртуальной в переменной

Page 66: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 66 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 4

Page 67: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 67 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Практический пример № 4

API

2. Запрос на выделение IP адреса

3. Получение IP адреса из DDI системы

DDI система

UCS Director

1.Развертывание виртуальной машины

4. Настройка IP адреса полученного из DDI

системы

5. Добавление записи о хосте в DDI систему

система управления DNS, DHCP и IP адресацией

Page 68: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 68 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Интеграция с DDI-системой компании InfoBlox при помощи REST API

Page 69: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 69 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Используем готовый сценарий автоматизации Policies -> Orchestration -> Workflows -> Import

https://communities.cisco.com/docs/DOC-57415

Page 70: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 70 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Интеграция UCS Director и Infoblox

REST API (WAPI)

1. Запрос на выделение IP адреса

2. Получение IP адреса из DDI системы

DDI система

UCS Director 3. Добавление записи о хосте в DDI систему

система управления DNS, DHCP и IP адресацией

Виртуальная машина, развернутая

при помощи UCS Director

Page 71: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 71 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Переменные, используемые в сценарии автоматизации

•  Импортированный сценарий автоматизации использует собственные переменные для хранения информации о системе InfoBlox, а так же о добавляемом в систему хосте

•  Просмотр переменных •  Policies -> Orchestration -> Workflows -> -> Edit workflow

Page 72: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 72 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Интеграция с Infoblox при помощи CloupiaScript

Вместе со сценарием автоматизации в базу UCS Director импортируются так же и кастомизированные шаги, которые представляют собой Сloupia Script

•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit

•  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit •  Policies -> Orchestration -> Custom Workflow Tasks -> -> Edit

Page 73: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 73 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Пример CloupiaScript при интеграции с InfoBlox

Page 74: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 74 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка IPAM в Infoblox

Подсеть, контролируемая IPAM

В пуле 253 свободных адреса

Page 75: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 75 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Настройка DNS в Infoblox

Контролируемые DNS-домены

Page 76: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 76 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Редактирование сценария автоматизации После импорта готового сценария в разделе Custom Task появилась папка «Infoblox»

Теперь эти шаги можно использовать в собственных

сценариях

Page 77: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 77 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Запускаем сценарий автоматизации

Запускаем сценарий •  Policies -> Orchestration -> Workflow -> -> Execute now

DNS-имя добавляемого хоста

DNS-домен

Page 78: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 78 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Проверяем выполнение в UCS Director Выполнение сценария в UCS Director

IP-адрес, полученный из IPAM

Page 79: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 79 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Проверяем выполние в InfoBlox Новая запись в IPAM

Новая запись в DNS

Page 80: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 80 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Возвращаем все в исходное состояние Встроенный механизм возврата в исходное состояние

Page 81: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 81 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Заключение

Page 82: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 82 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  NX-API – удобный и простой API для настройки §  Sandbox (!)

§  UCS Director – расширяемая платформа для автоматизации §  Поддержка PowerShell §  СloupiaScript §  OpenAutomation

§  Интеграция UCS Director при помощи REST API

Основные выводы

Page 83: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 83 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

•  DevNet: http://developer.cisco.com

•  Rest клиенты •  Postman (плагин для Chrome)

•  Poster (addon для Firefox)

•  curl (Linux) •  Paw (Только для Mac, лицензируется, генерирует код)

•  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)

Полезные ссылки

Page 84: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД

Cisco Confidential 84 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

По завершении данного семинара примите участие в конкурсе в наших социальных сообществах. Вам потребуется ответить на вопрос по теме вебинара, и возможно, именно вы станете счастливым обладателем сувенира от компании Cisco. Вопросы будут опубликованы сразу после нашей трансляции. Удачи! vk.com/cisco facebook.com/CiscoRu facebook.com/CiscoUA *призы разыгрываются в каждом сообществе **результаты публикуются раз в неделю.

Внимание, конкурс!

Page 85: Практические примеры использования API в инфраструктурных продуктах Cisco для ЦОД