精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡化網絡自動化任務編排框架Nornir的用法

網絡技術干貨圈 ? 來源:網絡技術干貨圈 ? 2023-05-04 14:25 ? 次閱讀

Nornir是一個基于Python的自動化編排框架,旨在簡化網絡自動化的任務。它提供了一些基本的操作,例如SSH,Telnet,HTTP,以及很多網絡設備的API。在這篇文章中,我們將介紹Nornir框架的基本用法和一些常見的例子。

86a509b6-e5b2-11ed-ab56-dac502259ad0.png

安裝

你可以通過以下命令安裝Nornir框架:

pipinstallnornir

用法

以下是一個簡單的Nornir代碼示例,它打印出了一個主機列表:

fromnornirimportInitNornir

nr=InitNornir(config_file="config.yaml")

forhostinnr.inventory.hosts.values():
print(host)

你需要提供一個配置文件,它將告訴Nornir框架如何連接你的網絡設備。以下是一個示例配置文件:

inventory:
plugin:SimpleInventory
options:
host_file:"hosts.yaml"
group_file:"groups.yaml"

credentials:
napalm:
username:"admin"
password:"admin"

runner:
plugin:threaded
options:
num_workers:20

inventory 部分告訴Nornir如何讀取你的主機清單和組清單。在這個例子中,我們使用了一個簡單的清單插件,它使用一個YAML格式的文件來定義主機和組。

credentials 部分告訴Nornir如何連接到設備。在這個例子中,我們使用了napalm插件來連接設備,因此我們需要提供napalm插件需要的用戶名和密碼。

runner 部分告訴Nornir如何運行任務。在這個例子中,我們使用了一個線程插件來并行運行任務,并設置了20個工作線程。

例子

連接并獲取設備信息

以下代碼示例演示了如何使用Nornir連接設備并獲取設備的信息:

fromnornirimportInitNornir
fromnornir.plugins.tasks.networkingimportnapalm_get

nr=InitNornir(config_file="config.yaml")

result=nr.run(task=napalm_get,getters=["interfaces","facts"])

forhost,rinresult.items():
print(f"Host:{host}")
print(f"Interfaces:{r[0].result['interfaces']}")
print(f"Facts:{r[1].result['facts']}")

在這個例子中,我們使用了napalm_get任務來獲取設備的接口和基本信息。

Nornir支持異步任務執行,使用asyncio庫實現。通過asyncio庫,我們可以使用協程并發執行任務,提高執行效率。

下面是一個使用異步任務執行的示例代碼:

importasyncio
fromnornirimportInitNornir


asyncdeftask1(task):
print(f"Task{task.task_id}starting")
awaitasyncio.sleep(2)
print(f"Task{task.task_id}ending")


asyncdefmain():
nr=InitNornir(config_file="config.yaml")
tasks=[task1forhostinnr.inventory.hosts.values()]
awaitasyncio.gather(*tasks)


if__name__=="__main__":
asyncio.run(main())

在上面的示例中,我們首先定義了一個異步任務task1,在任務中打印任務ID,然后等待2秒鐘,最后再次打印任務ID。然后我們定義了一個主函數main,在函數中初始化Nornir,并使用異步任務執行多個task1任務。最后,在主程序中使用asyncio.run方法運行主函數。

在上面的代碼中,我們使用asyncio.gather方法來并發執行所有任務。asyncio.gather方法接受多個協程作為參數,然后并發執行這些協程,并等待它們全部執行完成。

總結

本文介紹了Python Nornir框架的基本用法和示例代碼,包括初始化Nornir、執行任務、使用組、使用過濾器、使用動態數據、使用自定義插件、使用SSH、Telnet、Netmiko等插件、使用異步執行任務等。通過本文的介紹,讀者可以了解到如何使用Nornir框架進行自動化網絡管理和配置,以及如何通過Nornir插件和自定義插件擴展框架的功能。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1484

    瀏覽量

    61810
  • HTTP
    +關注

    關注

    0

    文章

    501

    瀏覽量

    31056
  • 自動化
    +關注

    關注

    29

    文章

    5511

    瀏覽量

    79098
  • 命令
    +關注

    關注

    5

    文章

    678

    瀏覽量

    21984
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84449

原文標題:網絡工程師學Python-39-簡化網絡自動化任務編排框架Nornir

文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    網絡路由設備的測試自動化

    網絡路由設備的測試自動化
    發表于 06-18 06:34

    自動化測試框架思想和構建

    自動化測試一般是指軟件測試的自動化,軟件測試就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。本文介紹的是自動化測試框架思想與構建,一起來看。
    發表于 07-18 06:52

    請問數據驅動的自動化測試框架結構是怎么構成的?

    自動化測試為什么會出現?相比手工測試,自動化測試有哪些優勢?自動化測試可以分為哪幾個級別?進行自動化測試的軟件需要滿足哪幾個條件?數據驅動的自動化
    發表于 04-15 06:55

    HarmonyOS自動化測試框架—Hypium

    ??,點擊鏈接查看更多技術內容。 應用開發過程中,要確保應用的功能和界面能滿足預期,往往需要通過測試來驗證。為此,我們研發了一套新的自動化測試框架,它支持以插件形式集成到DevEco Studio中
    發表于 08-10 17:13

    常用軟件測試自動化框架

    自動化測試框架無疑是企業實施自動化測試的一個必然的發展方向,它對于產生成功的測試自動化的適當基礎是重要的。
    發表于 04-21 11:39 ?5033次閱讀

    Force10推出開放式自動化框架方案

    Force10網絡公司日前宣布推出其開放式自動化框架Open Automation Framework 2.0,該版本是對其原有開放式自動化框架
    發表于 05-28 08:42 ?888次閱讀

    全面提升自動化測試,NI TestStand 2012新模塊框架

    NI TestStand 2012采用全新的模塊框架,能夠簡化自動化測試的開發和報告生成。
    發表于 11-06 17:42 ?1768次閱讀

    基于Web的自動化測試框架的研究

    根據web系統測試的特點,為提高軟件測試自動化腳本的可重用性,結合在實際項目中軟件自動化測試的實踐,提出基于Web的自動化測試框架(ACRAT)。分析了軟件
    發表于 11-07 15:58 ?0次下載
    基于Web的<b class='flag-5'>自動化</b>測試<b class='flag-5'>框架</b>的研究

    網絡走向自動化的三大原因是什么?

    網絡自動化是指一個網絡中的物理和虛擬設備的自動配置、管理、測試、部署和操作的過程。在該技術加持下的網絡,可每天
    發表于 08-09 14:56 ?4069次閱讀

    什么是自動化測試框架

    這些優勢可以是不同的形式,如易于編寫腳本、可伸縮性、模塊、可理解性、過程定義、可重用性、成本、維護等。因此,為了能夠獲得這些好處,建議開發人員使用一個或多個自動化測試框架。此外,當有一群開發人員在
    的頭像 發表于 11-03 10:33 ?4314次閱讀

    常規自動化程序框架結構

    常規自動化程序框架結構,方便程序編寫提高工程效率。
    發表于 02-22 14:30 ?36次下載

    自動化測試框架unittes詳解

    的測試框架,不妨“軟為硬用”。這里就基于python的自動化測試框架unittest來實現一個簡單的自動化上板測試流程,同時自動生成html
    的頭像 發表于 05-20 14:47 ?2883次閱讀

    什么是自動化測試框架

    自動化測試框架,即是應用于自動化測試所用的框架。按照框架的定義,自動化測試
    發表于 04-18 14:44 ?875次閱讀

    Facebook群組自動化python – 網絡自動化

    電子發燒友網站提供《Facebook群組自動化python – 網絡自動化.zip》資料免費下載
    發表于 07-05 14:26 ?0次下載
    Facebook群組<b class='flag-5'>自動化</b>python – <b class='flag-5'>網絡</b><b class='flag-5'>自動化</b>

    操作簡單:自動化簡化SAN配置

    電子發燒友網站提供《操作簡單:自動化簡化SAN配置.pdf》資料免費下載
    發表于 08-29 09:44 ?0次下載
    操作簡單:<b class='flag-5'>自動化</b>和<b class='flag-5'>簡化</b>SAN配置