毕业论文
您现在的位置: 自动化 >> 自动化发展 >> 正文 >> 正文

网络编程和自动化基础73

来源:自动化 时间:2022/5/7
白癜风初期症状图片 http://m.39.net/pf/a_6858103.html

Jinja2模板

Jinja2是一种现代的且对设计人员友好的Python模板语言。Ansible基于Python,并且大量使用Jinja2。实际上,您已经看到Jinja2使用了很多。语法{{variable}}用于在Jinja2中定义一个变量,{{variable

filter}}也是Jinja2的语法。但是,您需要了解有关Jinja2和相关模块的更多信息,才能通过Ansible充分发挥自动化的力量。

模板的需要

为了自动化任何大规模的操作,你需要模板。基本上,模板是一个预定义的字符串(或多行字符串),它有固定的部分和变量,这些变量的值会根据传递给模板的内容而改变。

包括AWS、GoogleCloud和THGHosting在内的云服务商,大量使用模板来分配和删除用户的计算资源。模板也与网络设备一起使用,因为通常配置中的绝大多数参数在网络中的所有网络功能中都是相同的,只有少数参数会有所不同。想想企业网络中的标准路由器配置。假设您正在运行一些路由器协议,例如OSPF或EIGRP。定时器和区域很可能具有相同的参数,但路由器ID和接口将不同。您可能认为企业网络对每个设备都有很多特定的配置,例如EIGRP的聚合和OSPF的多个区域,这转化为不同风格的模板。然而,即使是这样的偏差也可以使用条件和循环来覆盖,正如您将在本节学习的那样。另一个展示模板强大功能的例子是大规模数据中心和服务提供商网络,它们在大量网络元素上具有非常相似的配置。

基于模板的组网配置示意如下所示。

使用Ansible,有三种与模板交互的重要方式,根据特定的用例或使用的Ansible模块,您可能会混合使用它们。

为了了解使用Ansible模板的效果,让我们考虑一个实际的例子:在Linux主机的/etc/hosts中添加新的条目,以简化通过主机名对它们的管理。正如您已经看到的,Jinja2模板的一个选项是内联模板(参见上篇最后的示例)。内联模板通常以管道(

)作为某些键的值开始,比如模块debug中的键msg,然后从新的字符串继续。下例显示了内联模板的结构。

您是否注意到示例开头的新条目be

转载请注明:http://www.0431gb208.com/sjszyzl/183.html