Norninr vs Ansible

Wszystko o automatyzacji w sieciach i DC
Wiadomość
Autor
ksos
wannabe
wannabe
Posty: 57
Rejestracja: 29 gru 2020, 10:12

Norninr vs Ansible

#1

#1 Post autor: ksos »

Hejka,

Przymierzam sie do nauki automatyzacji sieci. Z tego co czytam po forach zachodnich wszyscy polecaja nauke Nornir zamiast Ansible. Co bedzie lepsze w przypadku infrastruktury z mieszanymi vendorami? Liznalem troche Pythona i skalaniam sie w kierunku Norninr, a wy?

Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 5005
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Re: Norninr vs Ansible

#2

#2 Post autor: peper »

Podobne narzędzia przy czym Nornir to czysty Python a Ansible to o wiele większy ekosystem. Pytanie po co i do czego chcesz się uczyć. Jeżeli zawodowo to produkt, który używa się u Ciebie w firmie, jeżeli ogólnorozwojowo zacznij od Ansible bo ma szersze zastosowanie niż sam Nornir. Pamiętaj, że automatyzujesz całą infrastrukturę a nie tylko sieć jako jej element.
Szkoła DevNet: https://szkoladevnet.pl


Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

ksos
wannabe
wannabe
Posty: 57
Rejestracja: 29 gru 2020, 10:12

Re: Norninr vs Ansible

#3

#3 Post autor: ksos »

Dzieki, ogolnorozwojowo z zalozeniem na implementacje w firmie. Infra (serwery) jest w chmurze wiec ewentualnie chcialbym popchnac sama siec. Czytam ze Ansible jest idempotnenty a Nornir?

Awatar użytkownika
nowyk123
wannabe
wannabe
Posty: 185
Rejestracja: 05 mar 2017, 21:46

Re: Norninr vs Ansible

#4

#4 Post autor: nowyk123 »

Pomysl nad Ansible bardziej przyszlosciowy, przynajmniej ja tak mysle. Dalej dzialaj z Pythonem - sluszny kierunek.

Awatar użytkownika
konradrz
CCIE
CCIE
Posty: 400
Rejestracja: 23 sty 2008, 14:21
Lokalizacja: Singapore, SG
Kontakt:

Re: Norninr vs Ansible

#5

#5 Post autor: konradrz »

ksos pisze: 18 sty 2021, 12:00 Dzieki, ogolnorozwojowo z zalozeniem na implementacje w firmie. Infra (serwery) jest w chmurze
Do "chmurowych" najłatwiej ponoć Terraform. Więc może miks paru technologii?

Awatar użytkownika
xal
CCIE
CCIE
Posty: 869
Rejestracja: 06 lip 2006, 21:04
Lokalizacja: Warszawa

Re: Norninr vs Ansible

#6

#6 Post autor: xal »

konradrz pisze: 18 sty 2021, 18:12
ksos pisze: 18 sty 2021, 12:00 Dzieki, ogolnorozwojowo z zalozeniem na implementacje w firmie. Infra (serwery) jest w chmurze
Do "chmurowych" najłatwiej ponoć Terraform. Więc może miks paru technologii?
Ludzie niestety wciąż popełniają ten sam błąd. Podstawowa zasada to: najpierw zdefiniuj proces, później dobierz najlepsze narzędzie. Często zaczyna się to robić odwrotnie. Nie każde narzędzie nadaje się do wszystkiego. Nawet jak dojdziemy do nirwany i wdrożymy full-blown orkiestrator, to w tle, poszczególne komponenty często są pisane za pomocą: python, ansible, javascript, powershell, bash, itp, itd. Nie wszystko musimy znać perfekcyjnie, ale nie można się zamykać na jednym narzędziu. Wracając do pierwotnego pytania, moim zdaniem Ansible jest idealny do rozpoczęcia nauki automatyzacji, bo: 1) jest idempotentny (od razu uczymy się dbać o porządek), 2) pozwala powoływać pełne środowisko, a nie tylko "sieć", 3) jest mega granularny, (role, itp.), co pozwała łatwo zarządzać atomowymi zmianami, 4) jest napisany w pythonie, więc można pobawić się z własnymi modułami, 5) ma masę modułów, dzięki którym uczymy się szerokiego pojęcia automatyzacji (moduły producentów, template jinja2, raw, rest, itp)...

Pozdr,
xal

ksos
wannabe
wannabe
Posty: 57
Rejestracja: 29 gru 2020, 10:12

Re: Norninr vs Ansible

#7

#7 Post autor: ksos »

Dzieki za opdowiedzi. Proces jest okreslony - sredniej wielkosci siec Enterprise, 80% Cisco, 15% HP, Firewall Palo Alto, ktora chce emigrowac z notatnika do configow bardziej z unifikowanych :D Czytam wlasnie o NAPALM i jego abstrakcyjnym API do wielu vendorow.

Awatar użytkownika
xal
CCIE
CCIE
Posty: 869
Rejestracja: 06 lip 2006, 21:04
Lokalizacja: Warszawa

Re: Norninr vs Ansible

#8

#8 Post autor: xal »

ksos pisze: 18 sty 2021, 21:48 Dzieki za opdowiedzi. Proces jest okreslony - sredniej wielkosci siec Enterprise, 80% Cisco, 15% HP, Firewall Palo Alto, ktora chce emigrowac z notatnika do configow bardziej z unifikowanych :D Czytam wlasnie o NAPALM i jego abstrakcyjnym API do wielu vendorow.
Pamiętaj, że w automatyzacji nie chodzi tylko o szybsze uruchomienie vlanu, a o uruchomienie kompleksowej "usługi" (sieć, firewalle, load-balancery, ipsy, maszyny wirtualne, kontenery, serwery www, bazy danych, itpe, itd...). Jak chcesz się bawić w (net)devops to musisz zacząć rozmawiać z innymi działami i powinniście używać wspólnych narzędzi i procesów do opisywania usług w sposób jednolity, jako całość. Generalnie chodzi o to, że jak powołasz usługę, a później z niej zrezygnujesz, to jesteś w stanie wycofać wszystkie zmiany "jednym" kliknięciem. Bez integracji wielopoziomowej automatyzacja jest niczym innym jak pisaniem silosowych skryptów. A później zostaje ci na SVI-u tysiąc ACLek i nikt nie wie co one robią.

ksos
wannabe
wannabe
Posty: 57
Rejestracja: 29 gru 2020, 10:12

Re: Norninr vs Ansible

#9

#9 Post autor: ksos »

Dziekuje jeszcze raz. Wszystko rozumiem i takze uwage o strategii implementacji automatyzacji. Chcialbym po prostu wybrac droge juz przetarta i nie wymyslac kola od nowa. Wiec zabieram sie za nauke Ansible!

zyl
member
member
Posty: 19
Rejestracja: 04 paź 2012, 12:24

Re: Norninr vs Ansible

#10

#10 Post autor: zyl »

ksos pisze: 18 sty 2021, 12:00 Czytam ze Ansible jest idempotnenty a Nornir?
Nie wszystkie moduly Ansible sa. Powinny byc (takie zalozenie), ale jesli autorzy nie trzymaja sie tego to musisz z tym uwazac.
Nornir bedzie jesli ty sam o to zadbasz (mozesz zbudowac taka "task", ktora bedzie gwarantowala idempotent ale to juz wiecej pracy nad kodem).

Trzeba zaznaczyc, ze przy Nornir musisz wiedziec co nieco o Python, a w Ansible w ogole nie musisz go znac.

Pamietaj, ze zalozene Ansible jest aby zagwarantowac wykonanie czynnosci (moduly!) a nie czas wykonania (naprawde mozesz poczekac te "minuty" na mala zmiane zamiast kilka sekund).
Ciekawostka: Nornir mozna podkrecic do niezlych rezultatow jesli chodzi o szybkosc wykonania prostych czynnosci.

borekbp
wannabe
wannabe
Posty: 234
Rejestracja: 29 sie 2005, 23:31

Re: Norninr vs Ansible

#11

#11 Post autor: borekbp »

samo porównywanie, który produkt potrafi więcej a który mniej to za mało....

Ja skłaniam się w kierunku Ansible/AWX (ewentualnie Tower )głównie dlatego, że:
- daje to w miarę do ogarnięcia interfejs graficzny, więc zadania (job'y), które tworzysz mogą być uruchamiane przez inne zespoły (sam zrobiłem już kilka takich i sa używane regularnie). Wydaje mi się, iż przykładowe zadanie przeszukujące przełączniki L2 i sprawdzające, na których interfejsach nie ma 802.1x powinno być także odpalane, np. przez Twojego kierownika, albo kogoś z bezpieki... (albo przynajmniej co jakiś czas zerkać na wynik zadania 'audytowego')
- czasem zadania, które będziesz chciał/musiał zautomatyzować będą częścią większego procesu (np. provisioning maszyny wirtualnej, albo on/off środowiska), więc nie do końca organizacja będzie się cieszyła, że im wystawiasz jakiś skrypcik z małoznanym modułem Norninr na jakimś linux'ie podbirkowym bez backupów (oczywiście tutaj trochę przesadzam - lubię Twojego linuxa) :)
- masz możliwość wywołania za pomocą API zadań/skryptów, które tworzysz (czasem się przydaje)
- często masz ludzi, którzy zarządzają tym produktem, albo mogą Ci pomóc, więc Ty możesz skupić się na automatyzacji a nie administrowaniem narzędziami
- fakt, że z AWX/Ansible korzystają inne zespoły (w Twojej , lub innej firmie) daje Ci możliwość podglądania innych, uczenia się wdrażania prawdziwych rozwiązań devops (np. awx dev/test/prod, kontroli wersji git w dowolnym wydaniu, jira i ten cały grajdołek związany z ideologią działania). Żeby nie było, że sobie tam gdzieś tworzysz procesy i chwalisz się, że jesteś dev-net'owcem a przed Tobą w rzeczywistości daleka droga :D
- Ansible zmusza Cię do utrzymania porządku i schematu działania (pliki i zmienne w swoich katalogach itp)
- w przypadku AWX masz ustandaryzowane i przejrzyste zasady przydzielania uprawnień, tworzenia harmonogramu, planowania zadań
- w przypadku AWX możesz trochę bezpieczniej zarządzać hasłami, ponieważ czysty ansible i vault to no nie wiem... ciekaw jestem jak to jest w Norninr

Ansible mnie jednak często wkurza - to jednak rozwiązanie do wszystkiego, więc można się spodziewać, że im dalej w las, tym więcej przeszkód.
Często tracę sporo czasu na doprowadzenie czegoś do działania na playbook'u, wiedząc, że zwykłym skryptem pythonowym bym to w godzinę ogarnął...(ale może dlatego, że jeszcze mało tych playbooków robiłem). Czasem robię tak, że niektóre taski ansiblowe są od przetwarzania danych (te robię w skryptach pythonowych) a inne sprowadzające Ansible do narzędzia pobierającego dane z urządzeń a potem wykonania zadań na tych urządzeniach (nie wiem czy to logicznie zabrzmiało).
Często chłopcy zarządzający AWX'em wrzucają patch'e/nowe wersje, więc trzeba powtarzać testy sprawdzające czy Twoje playbook'i dalej działają - to też często można automatyzować, jednak to dodatkowa praca dla Ciebie, bo to Ty jesteś odpowiedzialny za job'a.

ksos
wannabe
wannabe
Posty: 57
Rejestracja: 29 gru 2020, 10:12

Re: Norninr vs Ansible

#12

#12 Post autor: ksos »

Dzieki borekbp,

Wlasnie od paru tygodni bawie sie w Ansible i jestem pozytywnie zaskoczony tym narzedziem. Pytanko czy jest jakas przetarta droga do CI/CD dla nas sieciowcow, nie chcialbym wymyslac kola od nowa :)

Awatar użytkownika
xal
CCIE
CCIE
Posty: 869
Rejestracja: 06 lip 2006, 21:04
Lokalizacja: Warszawa

Re: Norninr vs Ansible

#13

#13 Post autor: xal »

ksos pisze: 19 lut 2021, 17:25 Dzieki borekbp,

Wlasnie od paru tygodni bawie sie w Ansible i jestem pozytywnie zaskoczony tym narzedziem. Pytanko czy jest jakas przetarta droga do CI/CD dla nas sieciowcow, nie chcialbym wymyslac kola od nowa :)
Generalnie, tej "jedynej, słusznej" drogi to nie ma. Trzeba wypracować samemu we własnym środowisku. W sieciach jest dużo zależności i nie wszystko się da przepuścić przez CICD, tak jak w dev. Sporo testów możesz robić sam, na laptopie. YAML możesz puścić przez lint (choć jak używasz jakiegoś dobrego edytora, jak vscode, to lint masz już robiony, ale zawsze można coś przeoczyć), a dla samych playbooków zrobić unittesty z assert. To wszystko można odpalić z vagrantem w tle. Szersze testy (składnia CLI, częściowe działanie protokołów) to albo lokalnie z CML albo już przez jakiś gitlab/jenkins z CML czy EVE-NG. Produkcyjne testy są zawsze najtrudniejsze w sieciach, bo tu jak coś zwalisz to już możesz nie mieć szansy na rollback :-) Część konfiguracji można przepuścić przez CICD z PyATS/Geenie

ODPOWIEDZ