Ansible基础:Python自动化框架解析
1. Ansible的特性
1.1 简单且可扩展
Ansible使用Python编写,剧本语言采用YAML,这两者都相对容易学习。与特定领域语言(如Cisco IOS语法)不同,YAML和Python是通用语言,无需额外学习特定领域语言。
Ansible还使用Jinja2作为模板引擎,这是Python Web框架(如Django和Flask)常用的工具,知识具有可迁移性。
Ansible的扩展性很强,最初用于自动化服务器(主要是Linux)管理,后来扩展到使用PowerShell管理Windows机器,再到网络设备管理。从Ansible 2.0开始,网络管理与服务器管理处于同等重要的地位。其社区友好且包容新成员和新想法。
1.2 供应商支持
各大供应商都支持Ansible,网络模块数量不断增加。供应商支持Ansible的原因如下:
- 无代理架构 :仅依赖SSH,降低了入门门槛。
- 基于Python :受很多网络专业人员喜爱,像Juniper和Arista等供应商可利用现有模块快速集成到Ansible中。
- 社区驱动模块 :在关注网络之前,Ansible已有大量社区驱动的模块,贡献流程成熟。
- 展示供应商优势 :Ansible模块除了SSH,还可本地执行并通过API与设备通信,供应商能及时展示最新特性。