自动配置生成

Automatic Configuration Generation

我正在多个地点为我的客户安装 Cisco ASA 防火墙。所有位置的基本 ASA 配置都是相同的,只是接口 IP 地址、路由下一跃点等某些内容存在偏差。

对于每个位置,我都有一个包含所有变量的 excel sheet。

我知道基本的Python。问题是:是否可以在 python 中编写一个脚本来读取 Excel Sheet 中的变量并为 ASA 生成配置?

此外,有人可以推荐一个资源来学习针对网络或此类自动化任务的脚本编写吗? (简单地谷歌搜索让我找到了许多令人困惑的选项,因此这里出现了问题)

使用 Python 很容易做到这一点,但需要一些学习。

根据 Excel 文件的格式,我推荐 OpenPyXL, or XLRD

这也取决于您要输出的配置格式。如果它是一个 JSON 配置文件,你可以简单地使用 built-in json 模块。否则,还有各种其他模块用于 CSV 等。

然而,有一个警告。如果您 hard-code 所有 Excel columns/positions 都在您的代码中,那么如果列发生变化,您可能会受到伤害。

我建议您使用模板引擎,例如 jinja2 以及 python。 (https://github.com/jedelman8/interop-nyc-2014.git) (http://keepingitclassless.net/2014/03/network-config-templates-jinja2/)

或者您可以使用简单的 Ansible 工具和 Jinja2 模板来生成配置。 (无需编程技能) (https://sreeninet.wordpress.com/2014/09/28/ansible-for-networking-automation-part-1/) (https://sreeninet.wordpress.com/2014/09/28/ansible-for-network-automation-part-2/) (https://sreeninet.wordpress.com/2014/09/28/network-device-configuration-using-templates-with-jinja2-and-yaml/) (http://jedelman.com/home/ansible-for-networking/)

我还建议查看一个非常好的库 "netmiko" 以用于将来的 ssh 连接和推送、拉取配置 (https://github.com/ktbyers/netmiko/tree/master/examples)

以上所有选项都适合您。请参阅以下示例。我自己是网络专业人士,发现这些很有用。