ansible自动化运维-简介(定义和原理)
一:定义
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点 ,实现了批量系统配置、批量程序部署、批量运行命令等功能
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架 。
主要包括:(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务
二:ansible 简介
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块 ,ansible只是提供一种框架。
ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的
ansible 特点:
1.部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
2.默认使用SSH协议对设备进行管理;
3.有大量常规运维操作模块,可实现日常绝大部分操作;
4.配置简单、功能强大、扩展性强;
5.支持API及自定义模块,可通过Python轻松扩展;
6.通过Playbooks来定制强大的配置、状态管理;
7.轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
8.提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
三:ansible 架构图
a: Ansible:Ansible核心程序
b:HostInventory:记录由Ansible管理的主机信息,包括端口、密码、ip等。
c:Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
d:CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
e:CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
f:ConnectionPlugins:连接插件,Ansible和Host通信使用
生成密钥对
上传公钥到管理客户端上
免交互式登录服务器
修改源
安装ansible服务器端
检查ansible版本
配置ansible客户端
测试客户端
加载配置文件方式测试
Ping客户端组测试
交互式使用ansible
使用交换工具
切换管理客户端组
列出组中客户端
Shell模块
使用shell重定向操作
查看客户端服务运行状态
Command模块
Command切换目录
Command创建目录
Copy模块
使用copy模块
Yum模块
使用yum安装apache
检查apache是否安装成功
启动apache服务
Service模块
管理apache服务
User模块
创建用户
查看用户的信息
实验到此结束**