The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

Red Hat Ansible Engine 2.9-un qarşıdan gələn buraxılışı maraqlı təkmilləşdirmələr gətirir, onlardan bəziləri bu məqalədə əhatə olunur. Həmişə olduğu kimi, ictimaiyyətin dəstəyi ilə Ansible Network təkmilləşdirmələrini açıq şəkildə inkişaf etdiririk. Bizə qoşulun - baxın GitHub-da buraxılış lövhəsi və inkişaf planını öyrənin Red Hat Ansible Engine buraxılışı 2.9 üçün wiki səhifəsində Ansible Network.

Bu yaxınlarda elan etdiyimiz kimi, Red Hat Ansible Automation Platforması indi Ansible Tower, Ansible Engine və bütün Ansible Network məzmunu daxildir. Hal-hazırda ən populyar şəbəkə platformaları Ansible modulları vasitəsilə həyata keçirilir. Misal üçün:

  • Arista EOS
  • Cisco İOS
  • Cisco IOS XR
  • Cisco NX-OS
  • Juniper Junos
  • VyOS

Ansible Automation abunəliyi vasitəsilə Red Hat tərəfindən tam dəstəklənən platformaların tam siyahısı üçün, burada dərc edilmişdir.

Nə öyrənmişik

Son dörd il ərzində biz şəbəkə avtomatlaşdırma platformasının inkişafı haqqında çox şey öyrəndik. Bunu da öyrəndik kimi platforma artefaktları Ansible oyun kitablarında və son istifadəçilər tərəfindən rollarda istifadə olunur. Və burada öyrəndiklərimiz:

  • Təşkilatlar təkcə bir deyil, bir çox satıcının cihazlarını avtomatlaşdırır.
  • Avtomatlaşdırma təkcə texniki deyil, həm də mədəni bir hadisədir.
  • Şəbəkələrin miqyasda avtomatlaşdırılması, avtomatlaşdırma dizaynının əsas memarlıq prinsiplərinə görə göründüyündən daha çətindir.

Bir il əvvəl uzunmüddətli inkişaf planlarımızı müzakirə edərkən, korporativ müştərilərimiz aşağıdakıları istədi:

  • Faktların toplanması daha yaxşı standartlaşdırılmalı və bütün cihazlarda avtomatlaşdırma iş axını ilə uyğunlaşdırılmalıdır.
  • Cihazda konfiqurasiyaların yenilənməsi də standartlaşdırılmalı və ardıcıl olmalıdır ki, Ansible modulları faktları topladıqdan sonra dövrün ikinci yarısını idarə etsin.
  • Cihaz konfiqurasiyasını strukturlaşdırılmış məlumatlara çevirmək üçün bizə ciddi və dəstəklənən üsullar lazımdır. Bu əsasda həqiqət mənbəyi şəbəkə cihazından köçürülə bilər.

Faktların təkmilləşdirilməsi

Ansible istifadə edərək şəbəkə cihazlarından faktların toplanması çox vaxt təsadüfi olur. Veb-əsaslı platformalar müxtəlif dərəcədə faktların toplanması imkanlarına malikdir, lakin onların açar-dəyər cütlərində verilənlərin təqdimatını təhlil etmək və standartlaşdırmaq üçün çox az və ya heç bir funksionallığı yoxdur. Oxuyun yazı Ken Celenza faktiki məlumatları təhlil etmək və standartlaşdırmaq nə qədər çətin və ağrılı ola bilər.

Siz bizim Ansible Network Engine rolu üzərində işlədiyimizi görmüsünüz. Təbii ki, 24K yüklənmədən sonra Şəbəkə Mühərriki rolu tez bir zamanda şəbəkə avtomatlaşdırma ssenariləri üçün Ansible Galaxy-də ən populyar Ansible rollarından birinə çevrildi. Ansible 2.8-da lazım olanlara hazırlaşmaq üçün bunun çox hissəsini Ansible 2.9-ə köçürməzdən əvvəl, bu Ansible rolu əmrləri təhlil etmək, əmrləri idarə etmək və şəbəkə cihazları üçün məlumat toplamaq üçün ilk alətlər dəstini təmin etdi.

Şəbəkə Mühərrikindən necə istifadə edəcəyinizi bilirsinizsə, bu, Ansible-da istifadə üçün fakt məlumatlarını toplamaq, təhlil etmək və standartlaşdırmaq üçün çox səmərəli üsuldur. Bu rolun dezavantajı ondan ibarətdir ki, siz hər bir platforma və bütün şəbəkə fəaliyyəti üçün bir dəstə təhlilçi yaratmalısınız. Ayrışdırıcıları yaratmağın, göndərməyin və saxlamağın nə qədər çətin olduğunu başa düşmək üçün nəzər yetirin 1200-dən çox təhlilçi Cisco-dakı uşaqlardan.

Bir sözlə, cihazlardan faktlar əldə etmək və onları açar-dəyər cütlərinə normallaşdırmaq miqyasda avtomatlaşdırma üçün vacibdir, lakin bir çox təchizatçı və şəbəkə platformanız olduqda buna nail olmaq çətindir.

Ansible 2.9-dakı hər bir şəbəkə faktı modulu artıq şəbəkə qurğusunun konfiqurasiyasını təhlil edə və strukturlaşdırılmış məlumatları qaytara bilər - əlavə kitabxanalar, Ansible rolları və ya fərdi analizatorlar olmadan.

Ansible 2.9-dan bəri, hər dəfə yenilənmiş şəbəkə modulu buraxıldıqda, konfiqurasiyanın bu bölməsi haqqında məlumat vermək üçün fakt modulu təkmilləşdirilir. Yəni faktların və modulların inkişafı indi eyni sürətlə baş verir və onlar həmişə ümumi məlumat strukturuna malik olacaqlar.

Şəbəkə cihazındakı resursların konfiqurasiyası iki yolla əldə edilə və strukturlaşdırılmış məlumatlara çevrilə bilər. Hər iki yolla siz yeni açar sözdən istifadə edərək xüsusi resurslar siyahısını toplayıb çevirə bilərsiniz gather_network_resources. Resurs adları modul adlarına uyğun gəlir ki, bu da çox rahatdır.

Faktları toplayarkən:

Açar sözdən istifadə gather_facts siz oyun kitabının əvvəlində cari cihaz konfiqurasiyasını əldə edə və sonra onu bütün kitabçada istifadə edə bilərsiniz. Cihazdan əldə ediləcək fərdi resursları göstərin.

- hosts: arista
  module_defaults:
    eos_facts:
      gather_subset: min
      gather_network_resources:
      - interfaces
  gather_facts: True

Bu nümunələrdə siz yeni bir şey görmüsünüz, yəni - gather_facts: true indi şəbəkə cihazları üçün yerli faktların toplanması üçün əlçatandır.

Şəbəkə faktları modulundan birbaşa istifadə:

- name: collect interface configuration facts
  eos_facts:
    gather_subset: min
    gather_network_resources:
    - interfaces

Oyun kitabı interfeys haqqında aşağıdakı faktları qaytarır:

ansible_facts:
   ansible_network_resources:
      interfaces:
      - enabled: true
        name: Ethernet1
        mtu: '1476'
      - enabled: true
        name: Loopback0
      - enabled: true
        name: Loopback1
      - enabled: true
        mtu: '1476'
        name: Tunnel0
      - enabled: true
        name: Ethernet1
      - enabled: true
        name: Tunnel1
      - enabled: true
        name: Ethernet1

Ansible-ın Arista cihazından yerli konfiqurasiyanı necə əldə etdiyinə və onu aşağı axın tapşırıqları və əməliyyatlar üçün standart açar-dəyər cütləri kimi istifadə etmək üçün strukturlaşdırılmış məlumatlara necə çevirdiyinə diqqət yetirin.

İnterfeys faktları Ansible-da saxlanılan dəyişənlərə əlavə edilə bilər və dərhal və ya daha sonra resurs moduluna giriş kimi istifadə edilə bilər. eos_interfaces əlavə emal və ya çevrilmə olmadan.

Resurs Modulları

Beləliklə, biz faktları çıxardıq, məlumatları normallaşdırdıq, onları standartlaşdırılmış daxili məlumat strukturu diaqramına uyğunlaşdırdıq və hazır həqiqət mənbəyini aldıq. Yaşasın! Bu, əlbəttə ki, əladır, lakin biz hələ də bir şəkildə açar-dəyər cütlərini xüsusi cihaz platformasının gözlədiyi xüsusi konfiqurasiyaya çevirməliyik. İndi bu yeni faktların toplanması və normallaşdırma tələblərinə cavab vermək üçün platformaya xas modullara ehtiyacımız var.

Resurs modulu nədir? Siz cihazın konfiqurasiya bölmələrini həmin cihaz tərəfindən təmin edilən resurslar kimi düşünə bilərsiniz. Şəbəkə resurs modulları qəsdən bir resursla məhdudlaşır və mürəkkəb şəbəkə xidmətlərini konfiqurasiya etmək üçün tikinti blokları kimi yığıla bilər. Nəticədə, resurs modulu üçün tələblər və spesifikasiyalar təbii olaraq sadələşdirilmişdir, çünki resurs modulu oxuya bilər. и şəbəkə cihazında xüsusi şəbəkə xidmətini konfiqurasiya edin.

Resurs modulunun nə etdiyini izah etmək üçün yeni şəbəkə resursu faktları və moduldan istifadə edərək idempodent əməliyyatını göstərən nümunə dərs kitabına baxaq. eos_l3_interface.

- name: example of facts being pushed right back to device.
  hosts: arista
  gather_facts: false
  tasks:
  - name: grab arista eos facts
    eos_facts:
      gather_subset: min
      gather_network_resources: l3_interfaces

  - name: ensure that the IP address information is accurate
    eos_l3_interfaces:
      config: "{{ ansible_network_resources['l3_interfaces'] }}"
      register: result

  - name: ensure config did not change
    assert:
      that: not result.changed

Gördüyünüz kimi, cihazdan toplanan məlumatlar çevrilmədən birbaşa müvafiq resurs moduluna ötürülür. Başladıqda, oyun kitabı cihazdan dəyərləri alır və onları gözlənilənlərlə müqayisə edir. Bu misalda qaytarılan dəyərlər gözlənildiyi kimidir (yəni konfiqurasiyanın sapmalarını yoxlayır) və konfiqurasiyanın dəyişib-dəyişmədiyini bildirir.

Konfiqurasiya sürüşməsini aşkar etməyin ideal yolu faktları Ansible saxlanan dəyişənlərdə saxlamaq və onları yoxlama rejimində resurs modulu ilə vaxtaşırı istifadə etməkdir. Bu, kiminsə dəyərləri əl ilə dəyişdirdiyini görmək üçün sadə bir üsuldur. Əksər hallarda təşkilatlar dəyişikliklərə və konfiqurasiyaya əl ilə icazə verir, baxmayaraq ki, bir çox əməliyyatlar Ansible Automation vasitəsilə həyata keçirilir.

Yeni resurs modulları əvvəlkilərdən nə ilə fərqlənir?

Şəbəkə avtomatlaşdırma mühəndisi üçün Ansible 3 və əvvəlki versiyalardakı resurs modulları arasında 2.9 əsas fərq var.

1) Verilmiş şəbəkə resursu (konfiqurasiya bölməsi kimi də düşünülə bilər) üçün modullar və faktlar eyni vaxtda dəstəklənən bütün şəbəkə əməliyyat sistemlərində inkişaf edəcək. Düşünürük ki, Ansible bir şəbəkə platformasında resurs konfiqurasiyasını dəstəkləyirsə, biz bunu hər yerdə dəstəkləməliyik. Bu, resurs modullarının istifadəsini asanlaşdırır, çünki şəbəkə avtomatlaşdırma mühəndisi indi yerli və dəstəklənən modulları olan bütün şəbəkə əməliyyat sistemlərində resursu (məsələn, LLDP kimi) konfiqurasiya edə bilər.

2) Resurs modulları indi dövlət dəyərini ehtiva edir.

  • merged: konfiqurasiya təqdim edilmiş konfiqurasiya ilə birləşdirilir (standart);
  • replaced: Resurs konfiqurasiyası təmin edilmiş konfiqurasiya ilə əvəz olunacaq;
  • overridden: Resurs konfiqurasiyası təmin edilmiş konfiqurasiya ilə əvəz olunacaq; lazımsız resurs nümunələri silinəcək;
  • deleted: Resurs konfiqurasiyası silinəcək/defolt vəziyyətinə qaytarılacaq.

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

3) Resurs modullarına indi stabil qaytarma dəyərləri daxildir. Şəbəkə resursu modulu şəbəkə cihazına lazımi dəyişikliklər etdikdə (və ya təklif etdikdə), eyni açar-dəyər cütlərini oyun kitabına qaytarır.

  • before: tapşırıqdan əvvəl strukturlaşdırılmış məlumatlar şəklində cihazda konfiqurasiya;
  • after: cihaz dəyişibsə (və ya test rejimi istifadə edilərsə dəyişə bilər), nəticədə konfiqurasiya strukturlaşdırılmış məlumat kimi qaytarılacaq;
  • commands: İstənilən konfiqurasiya əmrləri cihazı istədiyiniz vəziyyətə gətirmək üçün işləyir.

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

Bütün bunlar nə deməkdir? Niyə vacibdir?

Bu yazı bir çox mürəkkəb anlayışları əhatə edir, lakin ümid edirik ki, sonda siz müəssisə müştərilərinin əslində toplama, məlumatların normallaşdırılması və avtomatlaşdırma platforması üçün loop konfiqurasiyası üçün nə istədiklərini daha yaxşı başa düşəcəksiniz. Bəs niyə bu təkmilləşdirmələrə ehtiyac var? İndi bir çox təşkilatlar İT mühitlərini daha çevik və rəqabətədavamlı etmək üçün rəqəmsal transformasiyaya əl atırlar. Yaxşı və ya pis, bir çox şəbəkə mühəndisləri ya şəxsi maraqları naminə, ya da rəhbərliyin göstərişi ilə şəbəkə tərtibatçısı olurlar.

Təşkilatlar dərk edirlər ki, fərdi şəbəkə şablonlarının avtomatlaşdırılması silos problemini həll etmir və yalnız müəyyən dərəcədə səmərəliliyi artırır. Red Hat Ansible Automation Platform şəbəkə cihazında əsas məlumatları proqramlı şəkildə idarə etmək üçün ciddi və normativ resurs məlumat modelləri təqdim edir. Yəni, istifadəçilər tədricən fərdi konfiqurasiya metodlarından imtina edərək konkret təchizatçı tətbiqindən daha çox texnologiyalara (məsələn, IP ünvanları, VLAN-lar, LLDP və s.) diqqət yetirməklə daha müasir metodların xeyrinə olurlar.

Bu, etibarlı və sübut edilmiş komanda modullarının və konfiqurasiya günlərinin nömrələndiyini bildirirmi? Heç bir halda. Gözlənilən şəbəkə resursu modulları bütün hallarda və ya hər bir təchizatçı üçün tətbiq oluna bilməyəcək, buna görə də komanda və konfiqurasiya modulları hələ də müəyyən tətbiqlər üçün şəbəkə mühəndislərinə lazım olacaq. Resurs modullarının məqsədi böyük Jinja şablonlarını sadələşdirmək və strukturlaşdırılmamış cihaz konfiqurasiyalarını strukturlaşdırılmış JSON formatına normallaşdırmaqdır. Resurs modulları ilə mövcud şəbəkələrin konfiqurasiyasını asan oxunan həqiqət mənbəyini təmsil edən strukturlaşdırılmış açar-dəyər cütlərinə çevirmək daha asan olacaq. Strukturlaşdırılmış açar-dəyər cütlüyündən istifadə etməklə siz hər bir cihazda işləyən konfiqurasiyalardan müstəqil strukturlaşdırılmış verilənlərlə işləməyə keçə və şəbəkələri kod kimi infrastruktur yanaşmasının ön sıralarına çıxara bilərsiniz.

Ansible Engine 2.9-da hansı resurs modulları gələcək?

Ansible 2.9-da nələrin baş verəcəyini ətraflı izah etməzdən əvvəl, bütün iş sahəsini necə böldiyimizi xatırlayaq.

Biz 7 kateqoriya müəyyən etdik və hər birinə xüsusi şəbəkə resursları təyin etdik:

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

Qeyd: Qalın hərflərlə yazılmış mənbələr Ansible 2.9-da planlaşdırılıb və həyata keçirilib.
Müəssisə müştərilərinin və icmanın rəylərinə əsaslanaraq, əvvəlcə şəbəkə topologiyası protokolları, virtuallaşdırma və interfeyslərlə əlaqəli modulları həll etmək məntiqli idi.
Aşağıdakı resurs modulları Ansible Network komandası tərəfindən hazırlanıb və Red Hat tərəfindən dəstəklənən platformalara uyğundur:

The Inside Playbook. Yeni Ansible Engine 2.9-da şəbəkə funksiyaları

Aşağıdakı modullar Ansible icması tərəfindən hazırlanmışdır:

  • exos_lldp_global - Ekstremal Şəbəkələrdən.
  • nxos_bfd_interfaces - Cisco-dan
  • nxos_telemetry - Cisco-dan

Gördüyünüz kimi, resurs modulları konsepsiyası bizim platforma mərkəzli strategiyamıza uyğun gəlir. Yəni, biz şəbəkə modullarının inkişafında standartlaşdırmanı dəstəkləmək, həmçinin Ansible rolları və oyun kitabları səviyyəsində istifadəçilərin işini sadələşdirmək üçün lazımi imkanları və funksiyaları Ansible-a daxil edirik. Resurs modullarının inkişafını genişləndirmək üçün Ansible komandası Module Builder alətini buraxdı.

Ansible 2.10 və ondan sonrakı planlar

Ansible 2.9 buraxıldıqdan sonra biz Ansible 2.10 üçün resurs modullarının növbəti dəsti üzərində işləyəcəyik ki, bunlar şəbəkə topologiyası və siyasətini daha da konfiqurasiya etmək üçün istifadə edilə bilər, məs. ACL, OSPF və BGP. İnkişaf planı hələ də düzəldilə bilər, buna görə də şərhləriniz varsa, lütfən, bu barədə məlumat verin Ansible Network icması.

Resurslar və başlanğıc

Ansible Automation Platform haqqında press-reliz
Ansible Avtomatlaşdırma Platforması Blogu
Ansible-da məzmun çatdırılmasının gələcəyi
Ansible layihə strukturunun dəyişdirilməsi ilə bağlı fikirlər

Mənbə: www.habr.com

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