這裏我的案例是配置壹批交換機,基礎配置不同的地方有:loopback地址(IPV4和IPV6),設備名稱,ISIS網絡號,至於其他互聯地址什麽的因為情況比較復雜,還是手工做吧。
那麽思路就有了。
1、生成yaml文件,類似於下面結構:
這裏說明壹下,loopback地址的V4網段是先規劃好的,V6地址和ISIS網絡號通過壹定規則根據V4地址生成,這個yaml文件可以通過讀取excel文件,按照算法生成yaml文件,這個在其他文章裏再寫。
2、讀取yaml文件,生成壹個由字典組成的列表。每個字典的信息就包含了每臺設備需要的變量。
3、寫壹個函數,遍歷列表裏的字典,每讀取壹個字典,把其中變量取出來放進壹個臨時字典,渲染jinja2的模板,對每個字典輸出不同的配置文件。這個臨時字典每讀取壹次就清空,重新寫入變量。
有壹些細節比如文檔取名,時間函數等要調用壹些模塊,總結壹下涉及的知識點,有:yaml模塊,jinja2模塊,os模塊,日期函數,條件循環,I/O操作。
附上python腳本:
模板文件放在‘templates’目錄下,否則會報錯找不到文件。
python新手,有不合理的地方請高手指點。