python скрипты для админа

Начало работы с Python в Windows для создания сценариев и автоматизации

Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

В этой статье рассматривается настройка среды для использования некоторых полезных библиотек в Python, которые могут автоматизировать задачи на разных платформах, таких как поиск в файловой системе, доступ к Интернету, анализ типов файлов и т. д. с помощью подхода, ориентированного на Windows. Для операций, относящихся к Windows, извлеките ctypes, совместимую с C библиотеку функций с кодом на другом языке программирования для Python, winreg, функции, предоставляющие API реестра Windows для Python, и Python/WinRT, включив доступ к API среды выполнения Windows в Python.

Настройка среды разработки

При использовании Python для написания скриптов, выполняющих операции файловой системы, рекомендуется установить Python из Microsoft Store. При установке из Microsoft Store используется базовый интерпретатор Python3, но в дополнение к автоматическому обновлению также настраиваются параметры пути для текущего пользователя (без необходимости доступа администратора).

Если вы используете Python для веб-разработки в Windows, рекомендуем использовать другую установку с помощью подсистемы Windows для Linux. Ознакомьтесь с пошаговыми инструкциями в нашем руководстве: Начало работы с Python для разработки веб-приложений в Windows. Если вы новичок в Python, ознакомьтесь с нашим руководством: Get started using Python on Windows for beginners (Приступая к работе с Python в Windows для начинающих). В некоторых сложных сценариях (например, при необходимости модификации или доступа к установленным файлам Python, создания копий двоичных файлов или непосредственного использования библиотек DLL Python) может потребоваться загрузить определенный выпуск Python непосредственно с сайта python.org или установить альтернативное средство, например Anaconda, Jython, PyPy, WinPython, IronPython и т. д. Мы рекомендуем это только в том случае, если вы более продвинутый программист на Python и у вас есть конкретная причина выбрать альтернативную реализацию.

Установка Python

Чтобы установить Python с помощью Microsoft Store, сделайте следующее:

Перейдите в меню Пуск (значок Windows в нижнем левом углу), введите «Microsoft Store» и щелкните ссылку, чтобы открыть магазин.

Когда магазин откроется, выберите Поиск в верхнем правом меню и введите «Python». Выберите, какую версию Python вы хотите использовать, из результатов в разделе «Приложения». Мы рекомендуем использовать самую последнюю версию, если только у вас нет причин для обратного (например, по причине согласования с версией, использованной в уже существующем проекте, над которым вы планируете работать). Определив, какую версию вы хотите установить, выберите Получить.

Установка Visual Studio Code

При использовании VS Code в качестве текстового редактора или интегрированной среды разработки (IDE) вам доступны IntelliSense (помощь в завершении кода), анализ кода (помогает избежать ошибок в коде), поддержка отладки (помогает находить ошибки в коде после запуска), фрагменты кода (шаблоны для небольших повторно используемых блоков кода) и модульное тестирование (тестирование интерфейса кода с различными типами входных данных).

Загрузите VS Code для Windows и следуйте инструкциям по установке: https://code.visualstudio.com.

Установка расширения Microsoft Python

Установите расширение Microsoft Python, чтобы воспользоваться преимуществами функций поддержки VS Code. Подробнее.

Откройте окно расширения VS Code с помощью CTRL+SHIFT+X (или используйте меню, чтобы перейти к Вид > Расширения).

В поле Поиск расширений в Marketplace введите: Python.

Найдите расширение Python (ms-python.python) от Microsoft и нажмите зеленую кнопку Установить.

Откройте встроенный терминал PowerShell в VS Code

VS Code содержит встроенный терминал, который позволяет открывать командную строку Python с помощью PowerShell, создавая простой рабочий процесс между редактором кода и командной строкой.

Откройте терминал в VS Code, выберите Просмотр > Терминал или используйте сочетание клавиш Ctrl+` (используя символ обратного апострофа).

По умолчанию этим терминалом должен быть PowerShell, но если его нужно изменить, используйте Ctrl+Shift+P, чтобы ввести команду. Введите терминал: Выберите Оболочку по умолчанию, и отобразится список параметров терминала, содержащий PowerShell, командную строку, WSL и т. д. Выберите ту, которую хотите использовать, и нажмите Ctrl+Shift+` (с помощью обратного апострофа), чтобы создать новый терминал.

В окне терминала VS Code откройте Python, введя: python

python скрипты для админа. python in vscode. python скрипты для админа фото. python скрипты для админа-python in vscode. картинка python скрипты для админа. картинка python in vscode. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

Установка Git (необязательно)

Если вы планируете совместно работать над кодом Python с другими пользователями или размещать проект на сайте с открытым исходным кодом (например, GitHub), примите во внимание, что VS Code поддерживает управление версиями с помощью Git. Вкладка системы управления версиями в VS Code отслеживает все изменения и содержит общие команды Git (добавление, фиксация, принудительная отправка, извлечение) прямо в пользовательском интерфейсе. Сначала необходимо установить Git для включения панели управления версиями.

Скачайте и установите Git для Windows с веб-сайта git-scm.

В комплект входит мастер установки, который задает вам ряд вопросов о параметрах установки Git. Рекомендуется использовать все параметры по умолчанию, если у вас нет конкретной причины изменить какой-либо из них.

Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе.

Пример сценария для вывода структуры каталога файловой системы

Распространенные задачи системного администрирования могут занимать огромное количество времени, но с помощью сценария Python вы можете их автоматизировать и не тратить на них время вовсе. Например, Python может читать содержимое файловой системы компьютера и выполнять такие операции, как вывод структуры файлов и каталогов, перемещение папок из одного каталога в другой или переименование большого количества файлов. Как правило, такие задачи могут занимать массу времени, если выполнять их вручную. Вместо этого используйте сценарий Python!

Начнем с простого сценария, в котором описано дерево каталогов и отображено структуру каталогов.

Откройте PowerShell, используя меню Пуск (нижний левый значок Windows).

Создайте несколько каталогов для использования с нашим примером сценария:

Создайте несколько файлов в этих каталогах для использования с нашим сценарием:

Создайте в каталоге Python-Scripts новый файл Python:

Откройте окно проводника VS Code, нажав Ctrl+Shift+E (или используйте меню, чтобы перейти к Вид > Обозреватель) и выберите только что созданный файл list-directory-contents.py. Расширение Microsoft Python будет автоматически загружать интерпретатор Python. Загруженный интерпретатор можно увидеть в нижней части окна VS Code.

Python — интерпретируемый язык, то есть он выступает в качестве виртуальной машины, имитируя физический компьютер. Существуют различные типы интерпретаторов Python, которые можно использовать: Python 2, Python 3, Anaconda, PyPy и т. д. Чтобы выполнить код Python и получить Python IntelliSense, необходимо указать интерпретатор, который следует использовать в VS Code. Если нет конкретной причины для выбора другого интерпретатора, мы рекомендуем придерживаться интерпретатора, который VS Code выбирает по умолчанию (Python 3 в нашем случае). Чтобы изменить интерпретатор Python, выберите интерпретатор, который сейчас отображается в синей панели в нижней части окна VS Code, или откройте палитру команд (Ctrl+Shift+P) и введите команду Python: Select Interpreter (Python: выбор интерпретатора). На экране появится список установленных интерпретаторов Python. Using Python environments in VS Code(Использование сред Python в VS Code).

python скрипты для админа. interpreterselection. python скрипты для админа фото. python скрипты для админа-interpreterselection. картинка python скрипты для админа. картинка interpreterselection. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

Вставьте следующий код в файл list-directory-contents.py, а затем выберите Сохранить:

Откройте интегрированный терминал VS Code (Ctrl+` с помощью символа обратного апострофа) и введите каталог src, в котором вы только что сохранили сценарий Python:

Запустите сценарий в PowerShell с помощью:

Результат должен выглядеть примерно так:

Используйте Python, чтобы вывести выходные данные каталога файловой системы в собственный текстовый файл, введя следующую команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory.txt

Поздравляем! Вы только что написали автоматизированный сценарий системного администрирования, который считывает созданные вами каталог и файлы и использует Python для отображения, а затем для вывода структуры каталога в собственный текстовый файл.

Если вы не можете установить Python 3 из Microsoft Store, прочтите об этой проблеме, чтобы ознакомиться с примером управления путями для этого примера скрипта.

Пример сценария для изменения всех файлов в каталоге

В этом примере используются только что созданные файлы и каталоги, каждый из которых следует переименовать путем добавления даты последнего изменения файла в начало имени файла.

В папке src в каталоге python-scripts создайте новый файл Python для своего сценария:

Откройте файл update-filenames.py, вставьте следующий код в файл и сохраните его:

os.getmtime возвращает метку времени в тактах, что трудно читать. Сначала его необходимо преобразовать в стандартную строку datetime.

Протестируйте сценарий update-filenames.py, запустив его: python3 update-filenames.py а затем снова запустите сценарий list-directory-contents.py: python3 list-directory-contents.py

Вы должны получить следующий результат:

Используйте Python для вывода новых имен каталогов файловой системы с меткой времени последнего изменения в начале текстового файла, введя эту команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory-last-modified.txt

Надеемся, что вы узнали несколько интересных вещей об использовании сценариев Python для автоматизации основных задач системного администрирования. Конечно, есть еще масса информации, но мы надеемся, что это позволит вам начать работу с нужным нижним колонтитулом. Ниже мы предоставили несколько дополнительных ресурсов, чтобы вы продолжили обучение.

Источник

Нужен ли python для системных администраторов?

Прочитал книжку по Python системное администрирование, сложилось стойкое впечатление, что Питон используется не потому, что он решает задачу эффективно, а из-за того, что это круто, здорово, молодежно.

Есть ли реальная выгода от питона в системное администрировании?

P.s. Знаю, что ряд тулзов написано на питоне, но при этом их можно было бы написать и на других языках.

python скрипты для админа. 5c666690035e3786776553. python скрипты для админа фото. python скрипты для админа-5c666690035e3786776553. картинка python скрипты для админа. картинка 5c666690035e3786776553. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

python скрипты для админа. 5d21435faa70479881844ca2c8ae6d8d. python скрипты для админа фото. python скрипты для админа-5d21435faa70479881844ca2c8ae6d8d. картинка python скрипты для админа. картинка 5d21435faa70479881844ca2c8ae6d8d. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

Когда я и коллеги использовали python вместо баш?
Когда потребовалось написать бекапилку конфигов на 8k сетевых устройст по snmp.
Когда надо было набросать простой веб-интерфейс для дежурной смены для примитивного up/down и смену description на этих устройствах.
Когда надо было проинтегрировать nagios-мониторилку с внешей сторонней базой данных.
Когда на 600 виртуалок необходимо было поставить разные софтины, перечень и версии которых хранились во внешнем xml-файле
Когда с увесистой пачки серверов понадобилось провести инвентаризацию типа sfp-модулей

К чему я это? Если вам хватает bash, радуйтесь и используйте его. Когда будет надо, вы сами придете к python.

На чистом баше вы замучаетесь делать веб-интерфейс к чему-либо, организовывать взаимодействие с внешними системами/программами, отличными от чистого linux (web, snmp, sql, email, ftp не разовое обращение), обрабатывать вводные данные к системе в форматах сложнее csv (html, xml, json), обрабатывать файлы в нестандартных кодировках, использовать нетекстовые переменные в скриптах (арифметика, дроби, списки, файлы). Боль начнется даже просто тогда, когда появятся файлы с названиями с нестандартными символами (?$!*\+alt-символы), а еще и в левой кодировке (привет mount ftp/samba/sshfs/ntfs и даже вложения к письмам). А еще больнее станет, когда размер своих скриптов превысит хотя бы 500 строк.

И уже как бонус идет то, что python есть из коробки в deb/rhel дистрибутивах, многие системные утилиты написаны уже на нем. Плагин к apt/yum проще всего сделать на python, даже можно не парясь писать стартап скрипты к сервисам.

python скрипты для админа. 0b2ad9c0644343739d4266526cf54701. python скрипты для админа фото. python скрипты для админа-0b2ad9c0644343739d4266526cf54701. картинка python скрипты для админа. картинка 0b2ad9c0644343739d4266526cf54701. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

Есть ли реальная выгода от питона в системное администрировании?

Знаю, что ряд тулзов написано на питоне, но при этом их можно было бы написать и на других языках.

Я Вам больше скажу, они были бы ощутимо производительнее, и возможно даже лучше по ряду других параметров, если были бы написаны на Си. И это касается не только каких-то «тулзов», о которых Вы говорите, это касается примерно 99% программ/»тулзов»/etc. Практически что угодно можно написать «на других языках».

Источник

Разработка надёжных Python-скриптов

Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно просто забыть о написанном коде и перейти к решению следующей задачи.

Если, скажем, через полгода после того, как был написан некий «одноразовый» скрипт, кто-то спросит его автора о том, почему этот скрипт даёт сбои, об этом может не знать и автор скрипта. Происходит подобное из-за того, что к такому скрипту не была написана документация, из-за использования параметров, жёстко заданных в коде, из-за того, что скрипт ничего не логирует в ходе работы, и из-за отсутствия тестов, которые позволили бы быстро понять причину проблемы.

python скрипты для админа. bwsc8np51ystvqsvlchcn ukvwi. python скрипты для админа фото. python скрипты для админа-bwsc8np51ystvqsvlchcn ukvwi. картинка python скрипты для админа. картинка bwsc8np51ystvqsvlchcn ukvwi. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

При этом надо отметить, что превратить скрипт, написанный на скорую руку, в нечто гораздо более качественное, не так уж и сложно. А именно, такой скрипт довольно легко превратить в надёжный и понятный код, которым удобно пользоваться, в код, который просто поддерживать как его автору, так и другим программистам.

Исходный код

Вот исходный код Python-скрипта, который позволяет решить задачу:

Поговорим о том, как его улучшить.

Документация

Я считаю, что полезно писать документацию до написания кода. Это упрощает работу и помогает не затягивать создание документации до бесконечности. Документацию к скрипту можно поместить в его верхнюю часть. Например, она может выглядеть так:

В первой строке даётся краткое описание цели скрипта. В оставшихся абзацах содержатся дополнительные сведения о том, что именно делает скрипт.

Аргументы командной строки

Следующей задачей по улучшению скрипта станет замена значений, жёстко заданных в коде, на документированные значения, передаваемые скрипту через аргументы командной строки. Реализовать это можно с использованием модуля argparse. В нашем примере мы предлагаем пользователю указать диапазон чисел и указать значения для «fizz» и «buzz», используемые при проверке чисел из указанного диапазона.

Модуль argparse — это весьма мощный инструмент. Если вы с ним не знакомы — вам полезно будет просмотреть документацию по нему. Мне, в частности, нравятся его возможности по определению подкоманд и групп аргументов.

Логирование

Если оснастить скрипт возможностями по выводу некоей информации в ходе его выполнения — это окажется приятным дополнением к его функционалу. Для этой цели хорошо подходит модуль logging. Для начала опишем объект, реализующий логирование:

Добавим в код проекта следующую функцию для настройки логирования:

Основной код скрипта при этом изменится так:

Тесты

Модульные тесты — это полезнейшее средство для проверки того, ведёт ли себя приложения так, как нужно. В скриптах модульные тесты используют нечасто, но их включение в скрипты значительно улучшает надёжность кода. Преобразуем код, находящийся внутри цикла, в функцию, и опишем несколько интерактивных примеров её использования в её документации:

Проверить правильность работы функции можно с помощью pytest :

В случае возникновения ошибки pytest выведет сообщение, указывающее на расположение соответствующего кода и на суть проблемы:

Модульные тесты можно писать и в виде обычного кода. Представим, что нам нужно протестировать следующую функцию:

В конце скрипта добавим следующие модульные тесты, использующие возможности pytest по использованию параметризованных тестовых функций:

Если произойдёт ошибка — pytest даст полезные сведения о том, что случилось:

Итоги

Сделать Python-скрипты надёжнее можно, выполнив следующие четыре шага:

Вокруг этого материала развернулись интересные обсуждения — найти их можно здесь и здесь. Аудитория, как кажется, хорошо восприняла рекомендации по документации и по аргументам командной строки, а вот то, что касается логирования и тестов, показалось некоторым читателям «пальбой из пушки по воробьям». Вот материал, который был написан в ответ на данную статью.

Уважаемые читатели! Планируете ли вы применять рекомендации по написанию Python-скриптов, данные в этой публикации?

Источник

Автоматизация задач инженера/администратора при помощи Python

python скрипты для админа. aa2815f2207940fab9ac72e85219fe3c. python скрипты для админа фото. python скрипты для админа-aa2815f2207940fab9ac72e85219fe3c. картинка python скрипты для админа. картинка aa2815f2207940fab9ac72e85219fe3c. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.
В предыдущей статье из цикла по Brocade я обещал рассказать об автоматизации рутинных задач инженера/администратора. Самое главное — я не буду учить вас программировать, потому что я сам делаю это плохо. Если более-менее опытный разработчик на Python посмотрит на мой код, наверное ещё пару ночей ему будут сниться кошмары. Всё дело в том, что я никогда не занимался программированием более чем хобби и у меня не было возможности с кем-то общаться по поводу качества и красоты моего кода, мне не у кого было спросить совета (а на форумах разработчиков не очень любят учить новичков, обычно их отправляют читать документацию). Но этот код работает и он выполняет возлагаемые на него задачи и это является для меня главным.

На самом деле автоматизация любых задач стала меня интересовать довольно давно. А моему первому в этом плане проекту — TorrentMonitor на сегодняшний день уже 6,5 лет.
И так, сегодня на конкретном примере я постараюсь рассказать о том, как можно работать с различным оборудованием при помощи Python, как этим облегчить свою работу и жизнь. Но Python не панацея. Всё зависит от ваших текущих знаний или какие знания и опыт вы хотели бы получить. Есть приверженцы Bash/Powershell. Кто-то говорит, что это хороший вариант. На мой взгляд — проще учить один язык, который на 90% одинаково будет себя вести на разных платформах, чем учить 2 языка. Да и ни Powershell своими командлетами, ни Bash своим синтаксисом мне совершенно не нравятся. Тем более, что у Python есть уже огромное количество разнообразных модулей и вы можете даже сделать для своих скриптом кросплатформенный GUI, если уж совсем скучно станет. В нашей компании есть инженер, который в рамках своих задач по сопровождению приложений и серверов JEE написал не просто скрипт, а целую систему на Bash, которая была положительно отмечена руководством, используется не только в рамках нашей компании и нашими инженерами, но уже и разработчиками самой системы. Так что выбор инструмента, по сути, не так уж и важен. Главное что бы вы были в состоянии реализовать на нём то, что задумываете.

В качестве примера у нас будет несколько скриптов, работающих с коммутаторами Brocade. первый из них — будет генерировать конфиг зон, при добавлении нового устройства в SAN сеть. Задача в принципе простая, достаточно рутинная, но может заниматься много времени ввиду необходимости создания большого кол-ва команд.

Поступим следующим образом — сначала будет полный листинг скрипта, а затем уже будут объяснять — как, что и зачем. Опять-таки — обратите внимание, что это не готовое, универсальное решение. Но вы вполне можете взять его за основу для реализации собственных задач.

Исходник на Pastebin
И так, начнём с главного — что же делает скрипт?
Перед нами стоит задача — добавить в нашу существующую SAN сеть, новое устройство. Это будет или сервер или СХД. Для того, что бы это сделать, в первую очередь нам нужно получить список уже имеющихся устройство в SAN сети. В зависимости от типа добавляемого устройства это будут или серверы или СХД. Конечно, будет очень удобно, если у алиасов в вашем зонинге есть какие-то общие именования, к которым можно привязаться. Вот в плане серверов у нас всё просто ESXi_*, есть ещё несколько отдельный серверов, но для них зонинг существует отдельно, т.к. это не основные, а вспомогательные серверы и не со всеми СХД они связаны зонингом. С СХД же всё намного сложнее, поэтому тут придётся повозиться с фильтрацией + есть очень важная задача, для красивого именования зон не просто взять алиасы как они есть, а найти среди них уникальные части и убрать всё лишнее. Но это я уже покажу на примере, для большей наглядности.

И так, начнём с самого начала и я расскажу о дополнительных модулях, которые обычно использую:
argparse удобная вещь, позволяющая работать с передаваемыми скрипту аргументами. Не всегда я сам помню все ключи всех своих скриптов, поэтому автоматически генерируемый им help крайне полезен.
python скрипты для админа. 1. bash 2017 07 24 08 46 53. python скрипты для админа фото. python скрипты для админа-1. bash 2017 07 24 08 46 53. картинка python скрипты для админа. картинка 1. bash 2017 07 24 08 46 53. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.
OrderedDict в данном примере будет использоваться именно для «очеловечивания» алиасов СХД, для красивого именования зонинга.
paramiko модуль, который я использую во всех своих скриптах, который позволяет удобно работать с устройствами по протоколу ssh.
re если вам предстоит делать что-то с ответами на команды от оборудования — без регулярных выражений просто не обойтись.

Функции:
connect — это обёртка для paramiko, для соединения с коммутаторами.
findHosts — функция создания списка алиасов хостов с коммутатора. При помощи функции connect она подключается к коммутатору, выполняет команду alishow ESXi*, затем при помощи регулярных выражений обрабатывает полученный от коммутатора ответ и у нас получается полный список алиасов хостов. Как я уже ранее говорил — хорошо если ваши алиасы имеют какую-то общую часть, что бы это можно было легко описать логикой. Следующая функция по поиску алиасов СХД будет как раз для тех, у кого такой логики нет.
findArrays — аналогичная функция, что и findHosts, только ищет не хосты, а массивы. Как можно видеть, в данном случае у нас есть список исключений (exception) для исключения всего ненужного. Если бы в именования наших массивов присутствовала какая-то логика, к примеру stor_NetApp_8200, stor_fas2650 и т.д., автоматизировать было бы проще. Стоит учитывать подобные вещи, если вы планируете зонинг с нуля. В дальнейшем этим вы сильно упростите себе жизнь.
findCommon — это продолжение функции findArrays. Как я уже говорил, из алиасов вида Storwize_p1, Storwize_p2, FAS_8200_initiator1_0f, FAS_8200_initiator2_0f нам нужно вычленить именование непосредственно массивов, для того, что бы мы имели возможность создавать читабельные имена зон, типа ESXi01_3_NetApp_8200.

И так, логика работы следующая. Вызывая скрипт, вы в параметрах передаёте необходимые данные — тип добавляемого устройства (что бы скрипт понимать — зонинг для чего именно нам делать и какие устройства вытаскивать с коммутаторов), имя (которое будет использоваться при именовании зоны), 2 алиаса, 2 WWNа (мы подключаем и СХД и серверы по 2 портам, за редким исключением. можно сделать и больше, а можно просто дважды запустить скрипт, если вы подключаете СХД по 4 портам), номер фабрики (от этого зависит выбор коммутатора. Деление на 1 и 2 тут условное, но мы помним, что FC фабрик у нас всегда должно быть 2 — для отказоустойчивости) и имя конфигурационного файла на коммутаторе.
Вот так это будет выглядеть
python скрипты для админа. 1. bash 2017 07 24 09 03 53. python скрипты для админа фото. python скрипты для админа-1. bash 2017 07 24 09 03 53. картинка python скрипты для админа. картинка 1. bash 2017 07 24 09 03 53. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.
На выходе мы получим тестовый файлик, со всеми необходимыми командами для создания зонинга на коммутаторе.

python скрипты для админа. config 20170724090348.txt 2017 07 24 09 04 55. python скрипты для админа фото. python скрипты для админа-config 20170724090348.txt 2017 07 24 09 04 55. картинка python скрипты для админа. картинка config 20170724090348.txt 2017 07 24 09 04 55. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows. Пример добавления СХД. python скрипты для админа. config 20170724090655.txt 2017 07 24 09 08 10. python скрипты для админа фото. python скрипты для админа-config 20170724090655.txt 2017 07 24 09 08 10. картинка python скрипты для админа. картинка config 20170724090655.txt 2017 07 24 09 08 10. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows. Пример добавления сервера.

На самом деле, получить просто конфиг, который необходимо вручную выполнить на коммутаторе не очень интересно. По этому для вас я покажу как его можно доделать, для автоматического коммита зоны на коммутатор.
И так — мы получили файл, мы его визуально на всякий случай проверили, возможно у нас есть какие то вещи, которые нам нужно поправить, после чего мы этот файлик сохраняем и хотим, что бы он автоматически закоммитился на коммутатор.
Для этого нам в конце скрипта нужно дописать следующие вещи:

Соответственно скрипт, при утвердительном ответе на вопрос залить ли конфиг, прочитает файл с нашим конфигом (в том числе и наши исправления) и выполнит последовательно каждую команду на коммутаторе.

Пример 2: Ищем устройство на порту
Наши коммутаторы мониторятся при при помощи Zabbix, в том числе и ошибки на портах. Я об этом в статьях по Brocade ещё не говорил, это тема лишь 7 и 13 частей, но в данном случае для примере пока не важно, что именно за ошибки на портах у нас есть. В любом случае, для того, что бы начать разбирать в возникшей проблеме — нам необходимо понять с какого устройства всё началось.
er_other_discard port 4 delta (IBM SAN 10.6.220.10:brocadeportstaterrlld.sh[er_other_discard,4,10,1]): 30
Здесь у на сошибка на 4-и порту коммутатора 10.6.220.10
Да, мы можете зайти самостоятельно на коммутатор, сделать switchshow, посмотреть WWN на порту, сделать nodefind. А может быть ещё и пароль от коммутатора у вас сгенерирован и записан где-нибудь в хранилище паролей, пароль от которого ещё нужно вспомнить. В общем да — я ленив, и никогда этого не скрывал 🙂

Пример 3: Карта подключений
Порой для отчётности или для составления документации нам необходимо составить карту подключений устройств к портам коммутатора. Можно записывать их сразу, можно долго сопоставлять алиасы и WWNы устройств. Но это не интересно, проще всё это автоматизировать.

Пример 2 и 3 у меня реализованы в виде единого скрипта (на самом деле он делает ещё несколько функций, но описывать всё просто не вижу смысла) и задачи в общем то одинаковы, только для одной из них нас интересует конкретный порт на конкретном коммутаторе, во втором же случае нас интересуют все порты одного или нескольких коммутаторов фабрики.

Работает это очень просто
python скрипты для админа. 389d5616 3e38 40a6 87b7 4de69a58e04c. python скрипты для админа фото. python скрипты для админа-389d5616 3e38 40a6 87b7 4de69a58e04c. картинка python скрипты для админа. картинка 389d5616 3e38 40a6 87b7 4de69a58e04c. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows. Поиск устройства на порту. В данном примере у нас порт транковый

python скрипты для админа. 1. bash 2017 07 24 10 05 22. python скрипты для админа фото. python скрипты для админа-1. bash 2017 07 24 10 05 22. картинка python скрипты для админа. картинка 1. bash 2017 07 24 10 05 22. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows. Поиск всех устройств на коммутаторе

Набор дополнительных модулей в общем то тот же самый — для работы с параметрами коммандной строки, работа с ssh и регулярные выражения.

И так, в начале нам нужно создать словарь с нашими коммутаторами, где мы указываем их ip, логин, пароль и количество портов. Последний параметр будет важен, если у ваших коммутаторов разное количество портов, и скрипту нужно знать — сколько портов опрашивать, когда в качестве аргумента к порту мы передаём «all».

Функции:
connect — как и в предыдущем скрипте отвечает за подключение к коммутатору при помощи paramiko
findali — собственно эту команду мы и вызываем, она занимается тем, что запускает дву другие функции для поиска WWN на порту и его сопоставление с алиасом и затем выводом информации в консоль.
findWWN — получает курсор подключения к коммутатору и ищет WWN на указанном порту.
findAlias — получает курсор подключения к коммутатору и ищет алиас переданного WWN.

при помощи argparse снова создана менюшка, которая генерирует хелп
python скрипты для админа. 1. bash 2017 07 24 10 21 00. python скрипты для админа фото. python скрипты для админа-1. bash 2017 07 24 10 21 00. картинка python скрипты для админа. картинка 1. bash 2017 07 24 10 21 00. Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.

И так — параметры:
-c — выполняемая команда. В нашем случае только findali, остальное я убрал, что бы не загромождать код.
-switchall — выполнение команды на всех коммутаторах
-a — выполнение команды на конкретном коммутаторе (в качестве идентификатора я использую последний октет адреса коммутатора)
-dc — выполнение команды на коммутаторах в конкретном ЦОДе
-f — выполнение команды на коммутаторах первой или второй фабрики
-st — выполнение команды на коммутаторах по логическому распределению core/edge
-p — порт. может быть указан как один, так и через запятую, либо all.

все дальнейшие IFы определяют исходя из переданных параметров — на каких коммутаторах необходимо выполнять команду.
Данный скрипт, в отличие от первого, уже можно назвать универсальным. Вам достаточно указать свои коммутаторы в словаре и разбивках и он будет успешно работать и в вашей инфраструктуре.

Надеюсь этим небольшими примерами, я показал как можно сделать свои рабочие будни немножко проще.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *