SlideShare a Scribd company logo
Cisco
Connect
Москва, 2017
Цифровизация:
здесь и сейчас
Программируемость
фабрики ACI
Объектная модель, REST
API, ACI Python SDK
Александр Скороходов
Инженер-консультант
© 2017 Cisco and/or its affiliates. All rights reserved.
Модели эксплуатации сети
Управление отдельными
устройствами
• CLI
• Порты, VLAN,
протоколы...
• Привычно
• Хорошо
документировано
• Медленно – “несколько
недель на создание
VLAN???”
• Подвержено ошибкам
• Классические NMS
мало помогают
• Сеть воспринимается
как тормоз ИТ!
Чем будет заниматься сетевой инженер будущего ?
Автоматизация и
программирование
• Скрипты, API, Chef/Puppet…
• «Управлять коммутаторами
так же, как серверами»
• DevOps модель
• Высокая скорость
развертывания и внесения
изменений
• Единый инструментарий
управления разными
элементами среды
• Новый набор навыков
• Кто будет отвечать за сеть?
Оркестрация и управление
по политикам
• Системы оркестрации
• ACI: OpFlex, Group-based
Policy…
• Развёртывание и
эксплуатация сети в контексте
приложения/сервиса
• «Сеть как сервис»
• Единая точка
программируемости
• Новый набор навыков
• Миграция?
Цели сессии
Для двух типов аудитории
Для сетевых администраторов:
• Показать, как программируемость
сети может сделать их работу проще
и эффективнее
• Продемонстрировать возможности
расширения функциональности
• Перестать бояться программирования
• Помочь найти общий язык с
программистами ;)
Для программистов:
• Показать возможности использования
Nexus как открытой программируемой
платформы
• Описать ключевой инструментарий
программирования для работы с
сетевым оборудованием Cisco для ЦОД
• Помочь найти общий язык с сетевыми
администраторами ;)
Для сетевых администраторов и программистов:
Возможность объединения усилий в рамках DevOps модели разработки, внедрения и
эксплуатации
Cisco ACI
программируемая инфраструктура
App DBWeb
Внешняя сеть
передачи
данных
QoS
ACL
QoS
LB
QoS
МСЭ, LB
Cisco ACI
программируемая инфраструктура
App DBWeb
Внешняя сеть
передачи
данных
QoS
ACL
QoS
LB
QoS
МСЭ, LB
App
App/
Sec
Ops:
cеть,
cерверы,...
DevOps
API
API
API
Cisco ACI: объектная модель
и REST API
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 7
OpFlex
Business
App
Business
App
Fabric
Fabric Management
SDKs&Tools
Business Processes
REST
REST API
GUI
Business
App
ACIToolkit
Cobra
SDK
Visore UCSD
Business
App
CloudCenter
Программируемость ACI: архитектура
Объектная модель ACI
Дерево управляющей информации
Всё в системе (настройки, оборудование, состояние)
моделируется как набор Managed Objects (MOs).
MOs иерарически организованы в Management
Information Tree (MIT).
Конфигурация системы
Обнаруженные компоненты
Текущий статус, включая статистику и отказы
Объекты в дереве обладают отношениями
«родитель-потомок»
Логически связанные объекты могут иметь
отношение от одного к другому (тоже объект)
ВСЯ программируемость ACI построена по
работе с этим деревом:
Создание новых объектов
Чтение/поиск объектов
Модификация существующих объектов
Удаление объектов
REST API: Distinguished Names
DN – глобально уникальный идентификатор объекта в MIT
Получается добавлением relative name (RN)
к родительскому DN пока не достигнем корня дерева
Правила именования RN зависят от объекта
Описывается в документации
Пример:
uni/tn-tenant/ap-app1/epg-epg1
topology/pod-1/paths-101/pathep-[eth1/1]
The REST API: доступ к объектной модели
DEVNET-2000 11
Поддерживаемые методы REST API
Create, read, update and delete
DEVNET-2000 12
REST API: аутентификация
DEVNET-2000 13
REST API: операции Create/Update
REST API: запросы и фильтры
self children subtree
REST API: подписки
В рамках REST запроса клиент может запросить push уведомление о любых
изменениях в ответе использованием websocket протокола (RFC 6455)
Пример:
GET http://192.0.20.123/api/class/fvTenant.json?subscription=yes
Для получения уведомлений клиент должен создать websocket. Пример на
JavaScript:
var Socket = new WebSocket(http://192.0.20.123/socket<current API session cookie>);
Ответ на подписку:
«Перехватите» XML/JSON запрос с
использованием API inspector в GUI
Воспроизведите в REST клиенте
Скопируйте необходимую информацию в REST client: POST/GET, URL и объект (для
POST запросов)
Хороший вариант: Postman
18
Вызов REST API из Python
С использованием модуля requests
Cobra SDK
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 20
Cobra SDK
«Привзка» к Python для APIC REST API
Cobra is ACI’s SDK.
Поиск, создание, модификация и удаления объектов
Объекты в Cobra - 1:1 представление объектов в MIT
As a result, policy created via GUI/JSON/XML can be used
as
a programming template, for more rapid development
All data has client side consistency checks performed
Посталяется как .egg (загрузка: https://<apic
address>/cobra/_downloads), установка с easy_install
REST API
Business
App
Business
App
Cobra SDK
Документация по Cobra SDK
Документацию по Cobra SDK можно найти на https://<apic
address>/cobra/index.html, включая описание API, справочник по модели и
примеры использования
ACI Python SDK: аутентификация
import cobra.mit.access
import cobra.mit.session
ls = cobra.mit.session.LoginSession(
'http://apic', 'username', 'password')
md = cobra.mit.access.MoDirectory(ls)
md.login()
Link the
credentials to
the APIC
Define an APIC to
which we will login
LoginSession stores
URI and credentials
DEVNET-2000 23
Создание тенанта с Cobra (фрагмент)
from cobra.model.fv import Tenant
from cobra.model.pol import Uni
from cobra.mit.request import ConfigRequest
uniMo = Uni('') # Uni is a static Mo, so we don’t need to look it up
t = Tenant(uniMo, 'Tenant1') # We create a tenant as a child of the universe
c = ConfigRequest() # Create a ConfigRequest to contain our new object
c.addMo(t) # Add our tenant to the ConfigRequest
moDir.commit(c) # Commit our configuration request
DEVNET-2054 24
Создание 3-звенного приложения с Cobra
(фрагмент)
from cobra.model.fv import *
from cobra.model.pol import Uni
uniMo = Uni('')
t = Tenant(uniMo, 'Tenant1')
ap = Ap(t, 'Exchange')
epg1 = AEPg(ap, 'OWA')
epg2 = AEPg(ap, 'FrontEnd')
epg3 = AEPg(ap, 'MailBox')
ep = RsPathAtt(epg1, tDn=‘topology/pod-1/paths-17/paths-[eth1/1]’, mode=‘regular’,
encap=‘vlan-10’)
c = ConfigRequest()
c.addMo(t)
moDir.commit(c)
Адаптер XML/JSON -> Python: arya
Код, сгенерированный Arya
Cisco ACI Toolkit
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 28
ACI Toolkit
NX-OS like
CLI
Custom
Python Scripts
ACI toolkit
Простой вход в программируемость ACI
Простой Python SDK, использующий APIC
API
Скрипты легче читать, сохраняет базовые
конструкции ACI
Не полная функциональность, но наиболее
часто используемые функции (~30 классов)
Поддерживает «подписку»
Open Source, участвует Cisco и сторонние
разработчики
http://github.com/datacenter/acitoolkit
29
topRoot
polUni fvTenant
fvAp fvAEPg
vzFilter vzEntry
vzBrCP vzSubj
fabricTopology fabricPod
fabricPathEpCont fabricPathEp
fabricNode
vmmProvP vmmDomP vmmCtrlrP
TECDCT-2941 30
TECDCT-2941 31
tenant = Tenant('sampleTenant')
app = AppProfile('sampleANP', tenant)
epgDB = EPG('DB', app)
epgWeb = EPG('WEB', app)
contract = Contract('http_contract', tenant)
entry1 = FilterEntry('HTTP',
applyToFrag='no',
arpOpc='unspecified',
dFromPort='http',
dToPort='https',
etherT='ip',
prot='tcp',
sFromPort='unspecified',
sToPort='unspecified',
tcpRules='unspecified',
parent=contract)
epgDB.provide(contract)
epgWeb.consume(contract)
ACIToolkit - Пример
TECDCT-2941 32
• Подписывается на уведомления от APIC и выполняет действия при
подключении/отключении Endpoints
• Сейчас уже часть базовой фунциональности ACI (since v1.2(1))
Пример: End Point Tracker
33
# Subscribe to End Point live updates
aci.Endpoint.subscribe(session)
while True:
if aci.Endpoint.has_events(session):
# Gather information on the endpoint
ep = aci.Endpoint.get_event(session)
epg = ep.get_parent()
app_profile = epg.get_parent()
tenant = app_profile.get_parent()
# Do something when an EP leaves the network
if ep.is_deleted():
...
# Do something when an EP joins the network
else:
...
# Sleep or else the endpointtracker will take 100%
cpu time.sleep(0.1)
End Point Tracker
main code:
https://github.com/datacenter/acitoolkit/blob/master/applications/endpointtracker/aci-endpoint-tracker.py
Примеры приложений в составе ACIToolkit
• Endpoint Tracker
• Lint
• Cableplan
• Configuration Snapshot and Rollback
• Visualization Examples
• Intersite Configuration Federation
• Connection Search
TECDCT-2941 34
Cloud
Apps
Troubleshooting
Apps
Security Apps Networking
Apps
Monitoring Apps Optimization
Apps
ACI 2.2: Introducing Cisco App Center
Категории приложений
Cisco ACI App Center
https://aciappcenter.cisco.com/
Ссылки по теме
Источник Ссылка
DevNet: cайт Cisco для
разработчиков для ACI (включая
sandbox среду)
https://developer.cisco.com/site/aci/
Репозиторий Cisco по
программмируемости для ЦОД
(Nexus/ACI)
http://github.com/datacenter/
ACI Toolkit и документация по
нему
http://github.com/datacenter/acitoolkit
https://acitoolkit.readthedocs.io
#CiscoConnectRu#CiscoConnectRu
Спасибо за внимание!
Оцените данную сессию в мобильном приложении конференции
© 2017 Cisco and/or its affiliates. All rights reserved.
Контакты:
Тел.: +7 495 9611410
www.cisco.com
www.facebook.com/CiscoRu
www.vk.com/cisco
www.instagram.com/ciscoru
www.youtube.com/user/CiscoRussiaMedia

More Related Content

PDF
Повышение доступности данных для современных ЦОД
PDF
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
PDF
Построение частного облака с продуктами Cisco Cloud Automation
PDF
Управление гибридным ландшафтом с помощью Cisco CloudCenter
PDF
Гибридные облака без головной боли: истории успеха КРОК
PDF
Три облака для бизнеса
PDF
Сквозное управление доступом - от пользователя и дальше
PDF
Архитектура безопасности современных центров обработки данных
Повышение доступности данных для современных ЦОД
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
Построение частного облака с продуктами Cisco Cloud Automation
Управление гибридным ландшафтом с помощью Cisco CloudCenter
Гибридные облака без головной боли: истории успеха КРОК
Три облака для бизнеса
Сквозное управление доступом - от пользователя и дальше
Архитектура безопасности современных центров обработки данных

What's hot (20)

PDF
Архитектура построения защищённых корпоративных сетей Cisco SAFE
PDF
Как не ошибиться при выборе облачного провайдера?
PDF
Принципы и подходы Cisco для автоматизации в сетях операторов связи
PDF
Инновации Cisco для коммутации в корпоративных сетях
PDF
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
PDF
Семейство продуктов Enterprise Cloud Suite
PDF
Аналитика в ЦОД
PDF
Инновации Cisco для маршрутизации в корпоративных сетях
PDF
Автоматизация задач с помощью EEM
PDF
Презентация Cisco Tetration Analytics в России
PDF
Cisco Cloud Center - управление приложениями в облаках при помощи политик
PDF
Демонстрация возможностей по автоматизации ЦОД
PDF
Подходы к мониторингу информационных систем
PDF
Cisco Cloud Center - управление приложениями в облаках при помощи политик
PDF
Развитие сетевой архитектуры для ЦОД Cisco ACI
PDF
Защита и контроль приложений
PDF
Обзор стека продуктов Cisco для частных и гибридных облаков
PDF
Облачная стратегия Cisco
PDF
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Архитектура построения защищённых корпоративных сетей Cisco SAFE
Как не ошибиться при выборе облачного провайдера?
Принципы и подходы Cisco для автоматизации в сетях операторов связи
Инновации Cisco для коммутации в корпоративных сетях
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
Семейство продуктов Enterprise Cloud Suite
Аналитика в ЦОД
Инновации Cisco для маршрутизации в корпоративных сетях
Автоматизация задач с помощью EEM
Презентация Cisco Tetration Analytics в России
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Демонстрация возможностей по автоматизации ЦОД
Подходы к мониторингу информационных систем
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Развитие сетевой архитектуры для ЦОД Cisco ACI
Защита и контроль приложений
Обзор стека продуктов Cisco для частных и гибридных облаков
Облачная стратегия Cisco
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Ad

Similar to Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK (20)

PDF
Программируемость ACI. Примеры применения.
PDF
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
PDF
Программные интерфейсы управления (API) архитектурой, ориентированной на прил...
PDF
Практические примеры использования API в инфраструктурных продуктах Cisco для...
PDF
Защита центров обработки данных. Механизмы безопасности для классической фабр...
PDF
Программируемость и автоматизация решений Ciscо - практическое применение
PDF
Программируемость корпоративной сети с Cisco APIC-EM
PDF
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
PDF
Программируемость коммутаторов для ЦОД Cisco Nexus
PDF
Ориентированная на приложения инфраструктура Cisco ACI
PDF
Интеграция сервисных устройств в сеть ЦОД: интеграция сервисов 4-7 уровня
PDF
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
PDF
Архитектура Cisco ACI и обеспечение безопасности в современном ЦОД
PDF
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
PDF
Развитие сетевой архитектуры для ЦОД Cisco ACI
PDF
Как развернуть и настроить ACI фабрику – основные шаги
PDF
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
PDF
Защита центров обработки данных. Механизмы безопасности для классической фабр...
PDF
Управление IWAN и AVC с Cisco Prime Infrastructure
PDF
Обзор решений по управлению и мониторингу сетей предприятий. Cisco Prime Inf...
Программируемость ACI. Примеры применения.
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Программные интерфейсы управления (API) архитектурой, ориентированной на прил...
Практические примеры использования API в инфраструктурных продуктах Cisco для...
Защита центров обработки данных. Механизмы безопасности для классической фабр...
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость корпоративной сети с Cisco APIC-EM
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Программируемость коммутаторов для ЦОД Cisco Nexus
Ориентированная на приложения инфраструктура Cisco ACI
Интеграция сервисных устройств в сеть ЦОД: интеграция сервисов 4-7 уровня
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Архитектура Cisco ACI и обеспечение безопасности в современном ЦОД
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Развитие сетевой архитектуры для ЦОД Cisco ACI
Как развернуть и настроить ACI фабрику – основные шаги
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Защита центров обработки данных. Механизмы безопасности для классической фабр...
Управление IWAN и AVC с Cisco Prime Infrastructure
Обзор решений по управлению и мониторингу сетей предприятий. Cisco Prime Inf...
Ad

More from Cisco Russia (20)

PDF
Service portfolio 18
PDF
История одного взлома. Как решения Cisco могли бы предотвратить его?
PDF
Об оценке соответствия средств защиты информации
PDF
Обзор Сервисных Услуг Cisco в России и странах СНГ.
PDF
Клиентские контракты на техническую поддержку Cisco Smart Net Total Care
PDF
Cisco Catalyst 9000 series
PDF
Cisco Catalyst 9500
PDF
Cisco Catalyst 9400
PDF
Cisco Umbrella
PDF
Cisco Endpoint Security for MSSPs
PDF
Cisco FirePower
PDF
Профессиональные услуги Cisco для Software-Defined Access
PDF
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
PDF
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
PDF
Полугодовой отчет Cisco по информационной безопасности за 2017 год
PDF
Годовой отчет Cisco по кибербезопасности за 2017 год
PDF
Безопасность для цифровой экономики. Развитие продуктов и решений Cisco
PDF
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
PDF
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
PDF
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
Service portfolio 18
История одного взлома. Как решения Cisco могли бы предотвратить его?
Об оценке соответствия средств защиты информации
Обзор Сервисных Услуг Cisco в России и странах СНГ.
Клиентские контракты на техническую поддержку Cisco Smart Net Total Care
Cisco Catalyst 9000 series
Cisco Catalyst 9500
Cisco Catalyst 9400
Cisco Umbrella
Cisco Endpoint Security for MSSPs
Cisco FirePower
Профессиональные услуги Cisco для Software-Defined Access
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
Полугодовой отчет Cisco по информационной безопасности за 2017 год
Годовой отчет Cisco по кибербезопасности за 2017 год
Безопасность для цифровой экономики. Развитие продуктов и решений Cisco
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...

Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK

  • 2. Программируемость фабрики ACI Объектная модель, REST API, ACI Python SDK Александр Скороходов Инженер-консультант © 2017 Cisco and/or its affiliates. All rights reserved.
  • 3. Модели эксплуатации сети Управление отдельными устройствами • CLI • Порты, VLAN, протоколы... • Привычно • Хорошо документировано • Медленно – “несколько недель на создание VLAN???” • Подвержено ошибкам • Классические NMS мало помогают • Сеть воспринимается как тормоз ИТ! Чем будет заниматься сетевой инженер будущего ? Автоматизация и программирование • Скрипты, API, Chef/Puppet… • «Управлять коммутаторами так же, как серверами» • DevOps модель • Высокая скорость развертывания и внесения изменений • Единый инструментарий управления разными элементами среды • Новый набор навыков • Кто будет отвечать за сеть? Оркестрация и управление по политикам • Системы оркестрации • ACI: OpFlex, Group-based Policy… • Развёртывание и эксплуатация сети в контексте приложения/сервиса • «Сеть как сервис» • Единая точка программируемости • Новый набор навыков • Миграция?
  • 4. Цели сессии Для двух типов аудитории Для сетевых администраторов: • Показать, как программируемость сети может сделать их работу проще и эффективнее • Продемонстрировать возможности расширения функциональности • Перестать бояться программирования • Помочь найти общий язык с программистами ;) Для программистов: • Показать возможности использования Nexus как открытой программируемой платформы • Описать ключевой инструментарий программирования для работы с сетевым оборудованием Cisco для ЦОД • Помочь найти общий язык с сетевыми администраторами ;) Для сетевых администраторов и программистов: Возможность объединения усилий в рамках DevOps модели разработки, внедрения и эксплуатации
  • 5. Cisco ACI программируемая инфраструктура App DBWeb Внешняя сеть передачи данных QoS ACL QoS LB QoS МСЭ, LB
  • 6. Cisco ACI программируемая инфраструктура App DBWeb Внешняя сеть передачи данных QoS ACL QoS LB QoS МСЭ, LB App App/ Sec Ops: cеть, cерверы,... DevOps API API API
  • 7. Cisco ACI: объектная модель и REST API Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 7
  • 8. OpFlex Business App Business App Fabric Fabric Management SDKs&Tools Business Processes REST REST API GUI Business App ACIToolkit Cobra SDK Visore UCSD Business App CloudCenter Программируемость ACI: архитектура
  • 9. Объектная модель ACI Дерево управляющей информации Всё в системе (настройки, оборудование, состояние) моделируется как набор Managed Objects (MOs). MOs иерарически организованы в Management Information Tree (MIT). Конфигурация системы Обнаруженные компоненты Текущий статус, включая статистику и отказы Объекты в дереве обладают отношениями «родитель-потомок» Логически связанные объекты могут иметь отношение от одного к другому (тоже объект) ВСЯ программируемость ACI построена по работе с этим деревом: Создание новых объектов Чтение/поиск объектов Модификация существующих объектов Удаление объектов
  • 10. REST API: Distinguished Names DN – глобально уникальный идентификатор объекта в MIT Получается добавлением relative name (RN) к родительскому DN пока не достигнем корня дерева Правила именования RN зависят от объекта Описывается в документации Пример: uni/tn-tenant/ap-app1/epg-epg1 topology/pod-1/paths-101/pathep-[eth1/1]
  • 11. The REST API: доступ к объектной модели DEVNET-2000 11
  • 12. Поддерживаемые методы REST API Create, read, update and delete DEVNET-2000 12
  • 14. REST API: операции Create/Update
  • 15. REST API: запросы и фильтры self children subtree
  • 16. REST API: подписки В рамках REST запроса клиент может запросить push уведомление о любых изменениях в ответе использованием websocket протокола (RFC 6455) Пример: GET http://192.0.20.123/api/class/fvTenant.json?subscription=yes Для получения уведомлений клиент должен создать websocket. Пример на JavaScript: var Socket = new WebSocket(http://192.0.20.123/socket<current API session cookie>); Ответ на подписку:
  • 17. «Перехватите» XML/JSON запрос с использованием API inspector в GUI
  • 18. Воспроизведите в REST клиенте Скопируйте необходимую информацию в REST client: POST/GET, URL и объект (для POST запросов) Хороший вариант: Postman 18
  • 19. Вызов REST API из Python С использованием модуля requests
  • 20. Cobra SDK Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 20
  • 21. Cobra SDK «Привзка» к Python для APIC REST API Cobra is ACI’s SDK. Поиск, создание, модификация и удаления объектов Объекты в Cobra - 1:1 представление объектов в MIT As a result, policy created via GUI/JSON/XML can be used as a programming template, for more rapid development All data has client side consistency checks performed Посталяется как .egg (загрузка: https://<apic address>/cobra/_downloads), установка с easy_install REST API Business App Business App Cobra SDK
  • 22. Документация по Cobra SDK Документацию по Cobra SDK можно найти на https://<apic address>/cobra/index.html, включая описание API, справочник по модели и примеры использования
  • 23. ACI Python SDK: аутентификация import cobra.mit.access import cobra.mit.session ls = cobra.mit.session.LoginSession( 'http://apic', 'username', 'password') md = cobra.mit.access.MoDirectory(ls) md.login() Link the credentials to the APIC Define an APIC to which we will login LoginSession stores URI and credentials DEVNET-2000 23
  • 24. Создание тенанта с Cobra (фрагмент) from cobra.model.fv import Tenant from cobra.model.pol import Uni from cobra.mit.request import ConfigRequest uniMo = Uni('') # Uni is a static Mo, so we don’t need to look it up t = Tenant(uniMo, 'Tenant1') # We create a tenant as a child of the universe c = ConfigRequest() # Create a ConfigRequest to contain our new object c.addMo(t) # Add our tenant to the ConfigRequest moDir.commit(c) # Commit our configuration request DEVNET-2054 24
  • 25. Создание 3-звенного приложения с Cobra (фрагмент) from cobra.model.fv import * from cobra.model.pol import Uni uniMo = Uni('') t = Tenant(uniMo, 'Tenant1') ap = Ap(t, 'Exchange') epg1 = AEPg(ap, 'OWA') epg2 = AEPg(ap, 'FrontEnd') epg3 = AEPg(ap, 'MailBox') ep = RsPathAtt(epg1, tDn=‘topology/pod-1/paths-17/paths-[eth1/1]’, mode=‘regular’, encap=‘vlan-10’) c = ConfigRequest() c.addMo(t) moDir.commit(c)
  • 28. Cisco ACI Toolkit Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 28
  • 29. ACI Toolkit NX-OS like CLI Custom Python Scripts ACI toolkit Простой вход в программируемость ACI Простой Python SDK, использующий APIC API Скрипты легче читать, сохраняет базовые конструкции ACI Не полная функциональность, но наиболее часто используемые функции (~30 классов) Поддерживает «подписку» Open Source, участвует Cisco и сторонние разработчики http://github.com/datacenter/acitoolkit 29
  • 30. topRoot polUni fvTenant fvAp fvAEPg vzFilter vzEntry vzBrCP vzSubj fabricTopology fabricPod fabricPathEpCont fabricPathEp fabricNode vmmProvP vmmDomP vmmCtrlrP TECDCT-2941 30
  • 32. tenant = Tenant('sampleTenant') app = AppProfile('sampleANP', tenant) epgDB = EPG('DB', app) epgWeb = EPG('WEB', app) contract = Contract('http_contract', tenant) entry1 = FilterEntry('HTTP', applyToFrag='no', arpOpc='unspecified', dFromPort='http', dToPort='https', etherT='ip', prot='tcp', sFromPort='unspecified', sToPort='unspecified', tcpRules='unspecified', parent=contract) epgDB.provide(contract) epgWeb.consume(contract) ACIToolkit - Пример TECDCT-2941 32
  • 33. • Подписывается на уведомления от APIC и выполняет действия при подключении/отключении Endpoints • Сейчас уже часть базовой фунциональности ACI (since v1.2(1)) Пример: End Point Tracker 33 # Subscribe to End Point live updates aci.Endpoint.subscribe(session) while True: if aci.Endpoint.has_events(session): # Gather information on the endpoint ep = aci.Endpoint.get_event(session) epg = ep.get_parent() app_profile = epg.get_parent() tenant = app_profile.get_parent() # Do something when an EP leaves the network if ep.is_deleted(): ... # Do something when an EP joins the network else: ... # Sleep or else the endpointtracker will take 100% cpu time.sleep(0.1) End Point Tracker main code: https://github.com/datacenter/acitoolkit/blob/master/applications/endpointtracker/aci-endpoint-tracker.py
  • 34. Примеры приложений в составе ACIToolkit • Endpoint Tracker • Lint • Cableplan • Configuration Snapshot and Rollback • Visualization Examples • Intersite Configuration Federation • Connection Search TECDCT-2941 34
  • 35. Cloud Apps Troubleshooting Apps Security Apps Networking Apps Monitoring Apps Optimization Apps ACI 2.2: Introducing Cisco App Center Категории приложений Cisco ACI App Center https://aciappcenter.cisco.com/
  • 36. Ссылки по теме Источник Ссылка DevNet: cайт Cisco для разработчиков для ACI (включая sandbox среду) https://developer.cisco.com/site/aci/ Репозиторий Cisco по программмируемости для ЦОД (Nexus/ACI) http://github.com/datacenter/ ACI Toolkit и документация по нему http://github.com/datacenter/acitoolkit https://acitoolkit.readthedocs.io
  • 37. #CiscoConnectRu#CiscoConnectRu Спасибо за внимание! Оцените данную сессию в мобильном приложении конференции © 2017 Cisco and/or its affiliates. All rights reserved. Контакты: Тел.: +7 495 9611410 www.cisco.com www.facebook.com/CiscoRu www.vk.com/cisco www.instagram.com/ciscoru www.youtube.com/user/CiscoRussiaMedia