网络自动化工具Ansible介绍

一、Ansile介绍

1.1什么是Ansible
Ansible 批量管控工具,解决批量的在下游管理的设备上进行服务的安装和调试启动操作
例如 ;PSSH,Puppet,Chef ,Saltstack ,Ansble 等都是类似的工具
1.2 Puppet与Saltstack与Ansible的对比
Puppet与Saltstac都是-C/S模式,在被管控设备上必须安装客户端程序,而Ansible基于SSH无需在提前安装客户端程序,Ansible 和Saltstack 都是基于Python语言开发,消耗的都是CPU资源,

  • Puppet ; 是最早的管理工具之一,linux,unix ,windos 平台都支持
    客户端半个小时向服务器请求一次,保证配置的同步,下载配置文件,执行后,反馈给服务器通知已经同步成功
  • Saltstack ; 加入MQ (message
    Queen)消息队列,一条一条的去执行,执行命令的同时反馈结果,执行过程中需要等待客户端的反馈
  • Ansible ; ansbile使用ssh
    管理,不需要额外的安装客户端,Ansible功能都是通过插件完成,用就调取,不用就不调取,不会有任何影响,Ansible执行速度慢是Ansible的弊端,因为SSH本身就很慢,所以需要学习Ansible的优化,Ansible支持分布式,支持跨网段管理,Ansible1
    的剧本使用YAML语言,所以学习者还需要学习YANML语言

1.3 Ansible的运行机制
在这里插入图片描述

(1)由上面的图可以看到 Ansible 的组成由 5 个部分组成:

  • Ansible : ansible核心

  • Inventory : 定义 Ansible 管理主机的清单 [ˈɪnvəntri] 清单

  • Playbooks : 剧本;定义 Ansible 多任务配置文件,由Ansible 自劢执行

  • Modules : 包括 Ansible 自带的核心模块及自定义模块

  • Plugins : 完成模块功能的补充,包括连接SSH揑件、邮件揑件等

(2)Ansible 运行过程;
1.用户请求Ansible程序
2.ansible 查看主机清单针对,某些IP地址进行操作
3.是否使用剧本
4.调用核心模块或自定义模块
5.调用SSH插件,批量下发配置

(3)ansible 命令格式
ansible -i 主机清单 -m 模块 -a 参数

1.4 ansible 特性幂等性
ansible在运行时,如果发现所作的操作已经存在,或者复制的文件已经存在
则不会进行任何操作,相关参数:force ;幂等性校验,默认为no

1.5 ansible 运行模式
ad-hoc模式;单任务模式,每次只能调用一个模块,执行一个任务,基本无自动化概念可言
playbook:任务剧本(任务集),ansible 任务配置序列被成为Play book ,每个剧本中都包含一些任务,playbook模式可以同时调用N个模块,进行N多操作,可谓是自动化运维利器

四、Ansible主机清单
ansible在运行之前,需要先配置主机清单,主机清单存放要被管理运维的客户端的一些信息
包括主机ip地址,系统,ssh账号密码,等,在网络自动化中需要指定更多的参数
不仅如此在主机清单中还可以创建主机组,主机组里面还能嵌套主机组,还可以对主机组设置变量
设置变量后,在主机组的所有成员都可以享用这些变量

举例;

vi /etc/ansible/hosts                          ;编辑主机清单文件
[cisco]                                        ;创建cisco组
[cisco:vars]			                       ;定义cisco组模块变量
ansible_ssh_user="cisco"                       ;ssh用户名为cisco
ansible_ssh_pass="CCIE"		                   ;ssh用户组名为CCIE
ansible_connection=network_cli		           ;连接方式使用cli 
ansible_network_os=ios		                   ;操作系统为cisco ios 
ansible_become=yes			                   ;是否获取高级权限
ansible_become_method=enable	               ;获取enable 的权限
ansible_become_pass=CCIE	                   ;enable的密码为CCIE
[cisco:children]                               ;定义cisco组的孩子
router			                               ;cisco组中有Router 组
switch			                               ;cisco组中有switch组
[router]			                           ;定义router组
R1				                               ;router组中有R1,与R2
R2
[switch]			                           ;定义switch组
sw1	                                           ;switch组中有sw1与sw2
sw2

查看主机清单;

ansible-inventory --list      

三、Ansible 的模块介绍
(1)查看模块

ansible-doc -l   #查看所有模块

ansible-doc -l | grep ^ios_    #查看支持思科IOS系统的相关模块

ansible-doc -s  模块名 可以获取模块的相关参数

(2)ios_command模块
用于查看基础的show 命令等
举例:

ansible R1 -m ios_command -a "commands='show run' "        #查看所有配置
ansible R1 -m ios_command -a "commands='show ip int br "   #查看接口
ansible R1 -m ios_command -a "commands='show version' "    #查看版本

(3)ios_system 模块
用户配置一些简单的参数
举例:

ansible R1 -m ios_system -a "name_servers=8.8.8.8"     #配置DNS服务器地址
ansible R1 -m ios_system -a "domain_name='R1111' "     #修改域名
ansible R1 -m ios_system -a "hostname='R1111' "        #修改主机名
ansible R1 -m ios_system -a "lookup_enabled=yes"       #开启域名解析

(4)ios_static_route
常用参数

  • prefix #路由信息前缀
  • mask #路由信息掩码
  • next_hop #配置路由信息下一跳地址
  • admin_distance #设置路由的AD值
  • aggregate #批量添加或删除路由
  • name #添加路由信息的描述
  • state #缺省为present 表示添加路由,设置absent表示删除路由

举例;

ansible R1 -m ios_static_route -a "prefix=2.2.2.2 mask=255.255.255.255 interface=ethernet0/1 next_hop=12.1.1.2 "  

(5)ios_config
常用参数

  • backup #设备配置备份
  • lines #通过lines参数可以实现几乎所有的配置命令
  • diff_against #通过 ——D 参数结合,实现配置文件对比
  • parents #父命令,是上一条命令执行的前提
ansible cisco -m ios_config -a "backup=True"  ;调用 ios_config模块 执行backup参数备份cisco组中所有配置

查看
在这里插入图片描述

 ansible R1 -m ios_config -a "lines='ip add 12.1.1.1 255.255.255.0' parents='interface looback 0'"
;配置接口ip地址
ansible R2 -m ios_config -a "lines='network 12.1.1.0 0.0.0.255 area 0' parents='router ospf 1' "
;配置ospf 

欢迎观看下一章节关于 Ansible play book实现网络自动化部署案例

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值