ansible自动化运维工具的初步了解

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作

ansible的四大组件

inventory主机清单 modules模板 plugins插件 playbooks剧本

Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块, 比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等Ansible其中一个比较鲜明的特性是Agentless,即无Agent的存在,它就像普通命令一样,并非C/S软件,也只需在某个作为控制节点的主机上安装一次Ansible即可,通常它基于ssh连接来控制远程主机,远程主机上不需要安装Ansible或其它额外的服务。使用者在使用时,在服务器终端输入命令或者playbooks,会通过预定好的规则将playbook拆解为play,再组织成ansible可以识别的任务,调用模块和插件,根据主机清单通过SSH将临时文件发给远程的客户端执行并返回结果,执行结束后自动删除Ansible的另一个比较鲜明的特性是它的绝大多数模块都具备幂等性(idempotence)。所谓幂等性,指的是多次操作或多次执行对系统资源的影响是一致的。比如执行 systemctl stop xxx 命令来停止服务,当发现要停止的目标服务已经处于停止状态, 它什么也不会做,所以多次停止的结果仍然是停止,不会改变结果,它是幂等的,而 systemctl restart xxx 是非幂等的。
ansible基于模板工作 很多模板具有幂等性 被管控节点无需安装agent 

ansible模块

command在远程主机执行linux命令 shell支持重定向和管道符

corn 定义定时任务 user 管理用户 group 管理用户组 copy 复制本地文件到远程主机

file设置文件属性  hostname 管理主机名 ping 测试远程主机的连通性 yum 在远程主机安装和卸载压缩包 service/systemd 用来管理远程主机上服务的运行状态

script实现远程主机批量执行本地的shell脚本 mount 挂载文件系统 archive 压缩 unrachive 解压缩

replace 类似于sed

你可能感兴趣的:(运维,ansible,自动化)