26
Cisco Connect Москва, 2017 Цифровизация: здесь и сейчас

python for NE alepanov - Cisco

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: python for NE alepanov - Cisco

CiscoConnectМосква, 2017

Цифровизация: здесь и сейчас

Page 2: python for NE alepanov - Cisco

Прикладная автоматизация для сетевых инженеров, используя PythonАлексей Панов

Системный инженер

Page 3: python for NE alepanov - Cisco

You’re either the one that creates the automation or you’re getting automated.

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 03

- Tom Preston-Werner, co-founder of GitHub

Page 4: python for NE alepanov - Cisco

Почему Python

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 04

• Один из наиболее интуитивно понятных “серьезных” языков

программирования

• Крайне разносторонний

• Популярный

Page 5: python for NE alepanov - Cisco

Github active repositories rating

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 05

Page 6: python for NE alepanov - Cisco

Среда разработки

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 06

• Предустановлен на большинство unix-подобных систем,

включая OSX

• Для разработки достаточно продвинутого текстового

редактора (Atom, Sublime Text, Notepad++, … ) или IDE

(Pycharm, Spyder …)

• CLI - интерпретатор

Page 7: python for NE alepanov - Cisco

Python 2 vs Python 3

Python 2:• Старый стандарт, последний релиз

(2.7) вышел в 2010• Некоторые вещи сделаны не

оптимально / устарели

• Большинство программистов все еще используют 2.7

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 07

Python 3:• Современный стандарт, последний

релиз (3.6) вышел в декабре 2016• Некоторые библиотеки и решения

поддерживают только python 3.

Page 8: python for NE alepanov - Cisco

Менеджер пакетов - PIP

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 08

• Обычно устанавливается вместе с Python

• Позволяет управлять подключаемыми сторонними

библиотеками

• Для изоляции сред разработки - vitrualenv

Page 9: python for NE alepanov - Cisco

Числовые данные

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 09

Page 10: python for NE alepanov - Cisco

Строковые данные

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 010

Page 11: python for NE alepanov - Cisco

Списки

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 011

Page 12: python for NE alepanov - Cisco

Цикл “for”

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 012

Page 13: python for NE alepanov - Cisco

Цикл for и конструкция if / else

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 013

Page 14: python for NE alepanov - Cisco

Словарь

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 014

Page 15: python for NE alepanov - Cisco

Работа с файлами

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 015

Page 16: python for NE alepanov - Cisco

Регулярные выражения

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 016

• Реализованы в Python в модуле re

• Универсальное средство для поиска текста

• Наиболее полезны совместно с другими инструментами

Page 17: python for NE alepanov - Cisco

Модуль ipaddress

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 017

• Большой набор полезных функций для работы с IP

адресацией

• Поддерживает IPv4 и IPv6

Page 18: python for NE alepanov - Cisco

Модуль subprocess

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 018

• Позволяет запускать параллельные процессы, и получать

информацию с их ввода/вывода

• Можно использовать для выполнения и получения

результата любых системных команд

Page 19: python for NE alepanov - Cisco

Модуль OS

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 019

• Различные функции по доступу к системной информации

• os.getcwd – текущая директория

• os.walk – итерация по файлам внутри директории

• os.path - набор функций для работы с путями

• os.environ - набор функций для работы с переменными

окружения

Page 20: python for NE alepanov - Cisco

Модуль Netmiko

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 020

• Является ”оберткой” для более общего модуля Paramiko,

реализующего работу по SSH

• Поддерживает набор сетевых устройств, полный список в

документации

Page 21: python for NE alepanov - Cisco

Модуль Netmiko

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 021

• send_command - отправить одну команду

• send_config_set - отправить список команд

• send_config_from_file - отправить команды из файла (используетвнутри метод send_config_set)

• send_command_timing - отправить команду и подождать выводна основании таймера

• ssh.enable() - переход в режим enable

Page 22: python for NE alepanov - Cisco

Модуль Jinja2

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 022

• Библиотека для работы с шаблонами

• Широко используется в web-разработке

• Применим для создания любых стандартизированных

текстовых файлов

Page 23: python for NE alepanov - Cisco

Другие модули

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 023

• Openpyxl - Один из модулей для работы с документами Excel

• Requests – выполнение http запросов

• Threading/Multiprocessing

Page 24: python for NE alepanov - Cisco

Ресурсы

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 024

• Python для сетевых инженеров

• Google python class

• Effective Python

Page 25: python for NE alepanov - Cisco

Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 025

Сообщество Технической поддержки Cisco

https://supportforums.cisco.com

http://russiansupportforum.cisco.com

email:[email protected]

Page 26: python for NE alepanov - Cisco

#CiscoConnectRu#CiscoConnectRu

Спасибо за внимание!Оцените данную сессию в мобильном приложении конференции

© 2017 Cisco and/or its affiliates. All rights reserved.

Контакты:

Тел.: +7 495 9611410www.cisco.com

www.facebook.com/CiscoRu

www.vk.com/cisco

www.instagram.com/ciscoru

www.youtube.com/user/CiscoRussiaMedia