第 9 章 模板 模板
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
Network+ 工程师的大部分工作都涉及 CLI,其中很多工作都需要特定语法的关键字和短语,而这些关键字和短语往往要根据变化重复多次。随着时间的推移,这不仅效率低下,而且容易出错。例如,在 Cisco IOS 上配置 BGP 邻居关系的方法可能很明显,但有时不明显的是一些较小的、"容易出错 "的配置,如记住附加正确的 BGP 社区配置。在 Network+ 中,做同一件事往往有许多不同的方法--这可能完全取决于您的组织。
网络自动化的关键优势之一是一致性--能够可预测地、可重复地对生产网络基础设施进行更改,并达到预期效果。实现这一目标的最佳方法之一就是为所有与网络的自动化交互创建模板。
为您的网络配置创建模板意味着您可以为您的组织实现这些配置的标准化,同时也允许网络管理员和用户(服务台、网络运行中心、IT 工程师)在需要时动态填写一些值。这样做的好处是速度快,只需更少的信息就能进行更改,而且还能保持一致性(通过这一点还能保证安全性),因为模板包含了政策规定的所有必要配置命令。
本章首先从总体上介绍模板工具,然后介绍具体的实现方法,并展示如何利用这些工具创建网络配置模板。
现代模板语言的兴起
模板技术已经存在了很长很长时间。只需在网上搜索一下 "模板语言",就会出现大量的模板语言,最常见的是每种相关编程语言都有多个选项。
您可能还会注意到,这些语言中的大多数在网络开发行业都有深入的应用。这是因为大部分网络都是基于模板的!社交媒体网站可能会为每一个用户资料页面编写 HTML 文件,而不是由开发人员编写一个模板,并根据后台呈现的数据在该模板中插入动态值。
简而言之,模板语言有各种各样的相关用例。它们显然起源于网络开发,当然,我们在本章中将讨论如何将它们用于网络配置,但它们几乎可以应用于任何基于文本的媒介,包括文档和报告。
因此,重要的是要记住,使用模板需要三个步骤。 首先,必须编写模板。 其次,你需要某种形式的数据,这些数据最终会被渲染到模板中,产生一些有意义的东西,比如网络配置。 这就引出了第三步:必须有东西将数据驱动到模板中。这可以是 Ansible 这样的自动化工具(我们将在第 12 章中介绍),也可以是你自己用 Python 这样的语言来完成(我们将在本章后面介绍)。模板本身用处不大。
提示
大多数模板语言都不是纯粹意义上的编程语言。通常情况下,模板语言与另一种语言紧密相连,后者会将数据驱动到您创建的模板中。因此,每种模板语言和它的 "父 "语言都有一些相似之处。本章将重点讨论的一个例子就是很好的例子:Jinja 是一种模板语言,脱胎于以 Python 为中心的社区,因此 Jinja 与 Python 有明显的相似之处。因此,如果你想知道该使用哪种模板语言,最好先确定你与哪种 "真正的 "语言相一致(通过编写自己的代码或使用像 Ansible 这样的现有工具),然后再从那里开始。
如前所述,模板语言并不一定是一个新概念,但我们看到新的想法,甚至整个语言都在不断进入生态系统。回顾模板语言的历史,许多模板语言都是作为网络的重要组成部分而诞生的:动态内容。如今,人们很容易认为这是理所当然的,但在网络刚刚起步,大多数网站都是由相当静态的内容构建而成的时候,将数据片段动态加载到页面中是向前迈出的一大步。
使用模板进行网络开发
Django 是一个基于 Python 的网络框架,它极大地利用了模板文档的概念。Django ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access