Ansible - Cisco interfaces

Wszystko o automatyzacji w sieciach i DC

Moderatorzy: mikrobi, aron, garfield, gangrena, Seba

Wiadomość
Autor
qligowski
wannabe
wannabe
Posty: 221
Rejestracja: 16 maja 2014, 18:35

Ansible - Cisco interfaces

#1

#1 Post autor: qligowski » 20 maja 2019, 11:19

Witam,

Ostatnio staram sie robic wszystko Ansiblem, Jenkinsem, Jinja2 i Gitem i natknalem sie na sciane. Pchalem ustawienia qos do kilkudziesieciu switchy w jednej z lokalizacji i niestety modele roznia sie interfejsami. Jedne sa Fa0/1 , Gig1/0/1 , Gig0/1, w jednych range dziala z '-' ze spacja, w innych bez itp. itd. Zrobilem dirty 'workaround' i wsadzilem wszystkie mozliwe konfiguracje interfasow w playbooka i dodalem 'ignore_erros: true' tak zeby wsadzilo az znajdzie ten wlasciwy, lecz ta metoda zajmuje strasznie duzo czasu i jeden plabyook zajal pare godzin. Czy jest jakas poprawna metoda robienia tego tak zeyb zaaplikowac konfiguracje do wszystkich interfasow jakie switch/router posiada bez sztywnego podawania wszystkich zmiennych? Moze jest jakas 'magic variable' ,ktora 'wykrywa' wszystkie interfejsy urzadzenia w Ansible o ktorej nie wiem? Mam nadzieje ze wiecie o co chodzi.

martino76
CCIE
CCIE
Posty: 833
Rejestracja: 17 gru 2010, 15:23
Lokalizacja: Barczewo

Re: Ansible - Cisco interfaces

#2

#2 Post autor: martino76 » 20 maja 2019, 11:50

Witam,

Mozesz uzyc

Kod: Zaznacz cały

ios_facts
lub

Kod: Zaznacz cały

nxos_facts
gdzie oba moduly zwracaja dict

Kod: Zaznacz cały

ansible_net_interfaces


Jesli masz innych vendorow, tez posiadaja takie moduly. Pozniej mozysz zrobic z tym co chcesz, uzyc set_facts, when itd., :)


A nie mozesz uzyc host_vars i stworzyc sobie jakas zmiena dla kazdego host z odpowiednim interfejsem na ktorym chcesz zapiac QOS? Ewentualnie mozesz uzyc pugin filter i stworzyc sobie cos w Python.


Pozdro,

qligowski
wannabe
wannabe
Posty: 221
Rejestracja: 16 maja 2014, 18:35

Re: Ansible - Cisco interfaces

#3

#3 Post autor: qligowski » 20 maja 2019, 14:40

Dzieki!

Oto przykladowy playbook - moze komus sie przyda :D

Kod: Zaznacz cały

---
- name: Get interfaces
  hosts: test
  connection: local
  gather_facts: no

  tasks:
  - name: Get facts
    ios_facts:
      host: "{{ inventory_hostname }}"
      gather_subset: "interfaces"

  - name: Apply qos
    ios_config:
      lines:
      - mls qos trust dscp
      - priority-queue out
      - srr-queue bandwidth share 10 10 60 20
      - srr-queue bandwidth shape  10  0  0  0
      parents: interface {{ item.key }}
    with_dict: "{{ ansible_net_interfaces }}"

martino76
CCIE
CCIE
Posty: 833
Rejestracja: 17 gru 2010, 15:23
Lokalizacja: Barczewo

Re: Ansible - Cisco interfaces

#4

#4 Post autor: martino76 » 20 maja 2019, 15:42

Od wersji 2.5 jest dostępny loop, który jest rekomendowany zamiast with_*. Myślę, ze z czasem with_* będzie całkowicie usunite z Ansible.


Pozdro,

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

Re: Ansible - Cisco interfaces

#5

#5 Post autor: peper » 21 maja 2019, 11:40

martino76 pisze:
20 maja 2019, 15:42
Od wersji 2.5 jest dostępny loop, który jest rekomendowany zamiast with_*. Myślę, ze z czasem with_* będzie całkowicie usunite z Ansible.


Pozdro,
Będzie chociaż jest to dłuższy cykl niż normalny cykl 3 wydań.

PS. Bawcie się stworzonymi przeze mnie modułami, Ansible 2.8 wyszło parę dni temu ;)
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

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

martino76
CCIE
CCIE
Posty: 833
Rejestracja: 17 gru 2010, 15:23
Lokalizacja: Barczewo

Re: Ansible - Cisco interfaces

#6

#6 Post autor: martino76 » 21 maja 2019, 12:52

peper pisze:
21 maja 2019, 11:40
martino76 pisze:
20 maja 2019, 15:42
Od wersji 2.5 jest dostępny loop, który jest rekomendowany zamiast with_*. Myślę, ze z czasem with_* będzie całkowicie usunite z Ansible.


Pozdro,
Będzie chociaż jest to dłuższy cykl niż normalny cykl 3 wydań.

PS. Bawcie się stworzonymi przeze mnie modułami, Ansible 2.8 wyszło parę dni temu ;)
Jakimi modulami?

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

Re: Ansible - Cisco interfaces

#7

#7 Post autor: peper » 21 maja 2019, 14:35

martino76 pisze:
21 maja 2019, 12:52
peper pisze:
21 maja 2019, 11:40
martino76 pisze:
20 maja 2019, 15:42
Od wersji 2.5 jest dostępny loop, który jest rekomendowany zamiast with_*. Myślę, ze z czasem with_* będzie całkowicie usunite z Ansible.


Pozdro,
Będzie chociaż jest to dłuższy cykl niż normalny cykl 3 wydań.

PS. Bawcie się stworzonymi przeze mnie modułami, Ansible 2.8 wyszło parę dni temu ;)
Jakimi modulami?
docker_node
docker_node_info
docker_swarm_info
docker_host_info

plus dodatkowy kod w docker_swarm i biblioteka ansible.module_utils.docker.swarm

;)
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

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

qligowski
wannabe
wannabe
Posty: 221
Rejestracja: 16 maja 2014, 18:35

Re: Ansible - Cisco interfaces

#8

#8 Post autor: qligowski » 22 maja 2019, 08:16

Pepper, a jaka jest uzytecznosc/zastosowanie Dockera albo ogolnie kontenerow w sieciach?

martino76
CCIE
CCIE
Posty: 833
Rejestracja: 17 gru 2010, 15:23
Lokalizacja: Barczewo

Re: Ansible - Cisco interfaces

#9

#9 Post autor: martino76 » 22 maja 2019, 09:07

peper pisze:
21 maja 2019, 14:35
martino76 pisze:
21 maja 2019, 12:52
peper pisze:
21 maja 2019, 11:40


Będzie chociaż jest to dłuższy cykl niż normalny cykl 3 wydań.

PS. Bawcie się stworzonymi przeze mnie modułami, Ansible 2.8 wyszło parę dni temu ;)
Jakimi modulami?
docker_node
docker_node_info
docker_swarm_info
docker_host_info

plus dodatkowy kod w docker_swarm i biblioteka ansible.module_utils.docker.swarm

;)
Nie bawiłem się, ale ogólnie odchodzę od ansible na rzecz python+nornir

Pozdro,

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

Re: Ansible - Cisco interfaces

#10

#10 Post autor: peper » 22 maja 2019, 11:26

nornir to niestety jeszcze dość ubogi jest
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

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

ODPOWIEDZ