Как стать сетевым автоматизатором (by Natasha Samoylenko)

Как стать сетевым автоматизатором from zero to hero от Наташи Самойленко:

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

  2. дополнить прохождениями туториалов по nornir / scrapli / scrapli-cfg / nornir_scrapli  из доков

  3. потыкать нетбокс и его апи

  4. пройти туториал фастапи или фласка (если туториал из доков не заходит, можно глянуть на курс фастапи от talkpython to me/real python, а по фласку можно почитать flask mega tutorial)

  5. посмотреть Наташины лекции из курсы advanced и другие дополнительные лекции

  6. почитать fluent python 2nd edition

  7. во время всего обучения пытаться как можно больше пытаться применять полученные знания к вашим проблемам. в идеале даже попросить какого-нибудь питон программиста вас поменторить, чтобы помогал писать нормальный код

В принципе этого всего хватит, чтобы начать.

Дополнительные ответвления, которые могут быть полезны:

  • разобраться с pytest. книга python testing with pytest. дополнительно глянуть на либы vcrpy и scrapli-replay

  • разобраться с докером и почитать как докеризировать питон приложения правильно. на testdriven.io есть хорошая статья

  • разобраться в дизайне питон приложений. например, почитать книгу cosmic python (она же Architecture Patterns with Python), презентации от Gary BernhardtBrandon Rhodes (Python Design Patterns), Harry Percival связанные с дизайном и тестированием << конкретно эта тема сложная, и, например, я программирую на питоне 10 лет, и серьезно начал заниматься этой темой только последний год

  • разобраться с netconf/yang. книга есть хорошая network programmability with yang. уметь с помощью языка программирования общаться с железкой с помощью netconf/restconf/gnmi

  • потыкать клауд и понять основные современные сервисы предоставляемые выбранным клауд провайдером. если не знаете какой, начните с aws. можно даже идти по сертификации, к примеру aws solutions architect associate очень неплох и полезен

  • выучить чуть более детально asyncio. например, курс asyncio от edgedb достаточно детальный

  • потыкать либу pydantic, или, если не сильно нравится, то marshmallow или аналоги и применять их везде, где нужно получать или передавать данные :wink:

  • ансибл можно тоже потыкать, чтобы уверенно кивать головой, когда кто-нибудь его хейтит в интернете. можно и не тыкать, а то потом придется траблшутить плейбуки стабильно 2 раза в год с кровью, вытекающей из глаз

  • если задолбал питон с его динамическими типами, то можно всё захейтить и выучить го. scrapligo есть, что ещё надо

 

Komama, [8/30/2022 7:38 PM]
А где можно посмотреть лесенку ну или последовательность в чем обычно развиваются, в сторону devnet/devops. Проблема в том что познание некоторые есть, задачь на работе нет в этой сфере. А фантазия не позволяет что сделать, чего почитать.Pavel, [8/30/2022 7:39 PM]

https://roadmap.sh/devops
Девопсы говорили вот эта рабочая )Komama, [8/30/2022 7:40 PM]
Ооо, недавно это так "пылесосили" на интенсиве )Pavel, [8/30/2022 7:41 PM]
[In reply to Komama]
Автоматизируй все до чего руки дотягиваются )Pavel, [8/30/2022 7:41 PM]
Кем работаешь, какие задачи? Энтерпрайз, isp, цод?Komama, [8/30/2022 7:41 PM]
Сетевой инженер
Всем)Pavel, [8/30/2022 7:44 PM]
Ну вот подними нетбокс, заполни, напиши небольшой модуль который будет парсить все сетевые железки, апдейтить в нетбоксе статусы портов, саки на портах И так далее
Если допустим есть сервер как у меня опенвпн для удаленщиков, на базе easyrsa напиши скрипты по генерации и менеджменту учетных записей, делай выгрузку в веб для своих менеджеров, прикрути к гитлабу, сделай через него пайплайнKomama, [8/30/2022 7:46 PM]
[In reply to Pavel]
Спасибо, прозвучало как задачник)Pavel, [8/30/2022 7:46 PM]
Также можно написать скрипт там по сбору версий ПО со свитчей, опять же выгрузить все в какой нибудь веб, сделай так чтобы в 3 клика ты мог обновить все свитчи или какой то пулНу и выше там был неплохой гайд от Дмитрия Фиголя, почитай про норнир там И так далее)Pavel, [8/30/2022 7:48 PM]
Ну берёшь любую задачу от самой простой и нудной до сложной и постояннойБерёшь и автоматизируешь ее, мониторишь ее состояние, версионируешь, пишешь скрипты по селф-хилингу путём ребута/отката
Репрезентуешь выгрузки так, чтобы их понял не только ты но и коллегиВообщем ничего нового)Komama, [8/30/2022 7:48 PM]
Наташка мне никак не даётся) все начинаю, и торможу. Понимаю там хороший ап, надо пересилить)Pavel, [8/30/2022 7:50 PM]
[In reply to Komama]
Я помню так застрял на мультитреде, потом писал скрипты базовые от полной дури до чего то нужного.
Упёрся в то, что работает все медленно, погуглил, наткнулся на мультитрединг, повторил курс, прошёл, в ООП не вьехал, потом когда задачи стали шаблонные - вернулся и вьехал))Вообщем без практики все херово даётся, даPavel, [8/30/2022 7:53 PM]
Вот ещё из своих будней:Скрипт обходит 2 раза в день все железки, парсит конфиг, сохраняет его на всякий случай (малоли я забыл)
Складывает конфиги в виде текста, имя файла - хостнейм, сортирует по модели оборудования (зоопарк) и пушит это все в гитлаб, высылает уведомление в телегу ботомВ результате у меня корявый rconfig, с версионированием в гите.Данные о свитчах берет в нетбоксе по apiPavel, [8/30/2022 7:55 PM]
Также из нетбокса 2 раза в день собирается инфа о свитчах (локации, статус, айпишник и тд)
Формируется бд, из бд другой скрипт пушит по api это в заббикс, в результате я имею автоапдейты, сняли свитч - оно само уберетсяPavel, [8/30/2022 7:56 PM]
Коллега админ конфиг астеров хранит в гитлабе с пайплайном, нужно что то поменять - меняет в гитлабе, делает комит, конфиг меняется на лету)Pavel, [8/30/2022 7:56 PM]
Вот тебе план на практику)Komama, [8/30/2022 7:57 PM]
Вообще супер ))Pavel, [8/30/2022 7:57 PM]
Главное не пытайся бесконечно вылизать свой скрипт перед вводом в эксплуатацию, напиши чтобы он работал «хоть как то», выполнял базово свою задачуPavel, [8/30/2022 7:57 PM]
А потом уже читай, тюнь его и модернизируйPavel, [8/30/2022 7:59 PM]
Пусть у тебя будет 5 пет проектов с говнокодом и планом по их модернизации, это лучше чем бесконечная работа над 1 проектом который ты будешь бесконечно докручивать до релизаВ варианте 1 ты уже с себя рутину какую то скинешь и будет время на изучение и модернизацию, в варианте 2 ты профита видеть не будешь, тк задачи рутинные всеранво отвлекать будут
.

 

Также DevNet рекомендует:

 - Python Distilled https://www.oreilly.com/library/view/python-distilled/9780134173399/
 - Fluent Python v2 (second edition) // https://www.oreilly.com/library/view/fluent-python-2nd/9781492056348/
 - Python Cookbook // https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/
 - Effective Python v2 // https://www.oreilly.com/library/view/effective-python-90/9780134854717/
 - Python Concurrency with asyncio // https://www.oreilly.com/library/view/python-concurrency-with/9781617298660/
 - Network Programmability with YANG // https://www.oreilly.com/library/view/network-programmability-with/978013...
 - https://dabeaz-course.github.io/practical-python/Notes/Contents.html