Ansible自动化运维(一)----Ansible介绍
人工运维时代
运维人员早期需要维护数量众多的机器,因此需要执行反复,重复的劳动力,很多机器需要同时部署相同的服务或是执行相同的命令,还得反复的登录不同的机器,执行重复的动作。
比如说你要在backup服务器配置rsync服务,进行数据同步的操作,那么客户端都得单独的安装一下rsync命令工具才能正确使用。
你可能一台台机器去登录,安装rsync之后,再推出,登录下一个机器,可以使用xshell等工具,快捷的创建ssh登录,但是还是属于人工运维,效率比较低。
自动化运维时代
早期运维人员会结合ssh免密登录以及shell脚本来完成自动化的部署操作。
系统管理员面临的问题主要是,配置管理系统,远程执行命令,批量安装服务,启停服务等等。
后来也就诞生了众多的开源软件,自动化运维软件。
- fabric
- puppet
- saltstack
- chef
- Ansible <<<<<<<<<<
其中有两款软件是基于python语言开发的,saltstack, Ansible都是基于python编写。
自动化运维趋势
人肉运维,人力运维 > 自动化运维 > 数据化运维,可视化运维 > AI智能运维,devops
自动化运维的好处
- 提高工作效率,减少重复性的劳动力操作
- 大大的减少了人为出错的可能性
- Ansible支持数据化管理,数据化追源,找到问题的来源点
Ansible介绍
Ansible是一个同时管理多个远程主机的软件,必须是任意可以通过ssh登录的机器,因此Ansible可以管理的机器如,
- 远程虚拟机
- 物理机
- 也可以直接管理本机机器
Ansible通过shh协议实现了,管理节点(老板,安装了Ansible服务的机器),被管理节点(员工,被管理的机器节点)的通信。
只要是通过ssh协议登录的主机,就可以完成Ansible自动化部署操作。
- 批量文件分发
- 批量数据复制
- 批量数据修改,删除
- 批量自动化安装软件服务
- 批量服务启停.
- 脚本化,自动批量服务部署
Ansible特点
Ansible的编排引擎可以出色的完成各种任务配置管理,Ansible在流程控制, 资源部署等方面很强大,并且Ansible无须安装客户端软件,管理简洁,使用yaml配置文件语法,功能强大,便于维护。
Ansible是基于python语言开发的,主要由python的两个ssh处理模块,paramiko,以及PyYAML模块。
- 安装部署简单
- 管理主机便捷,支持多台主机并行管理
- 无须安装被管理节点的客户端(no agent),且无须占用客户端的其他端口,仅仅使用ssh服务即可
- 不仅仅支持python,还支持其他语言的二次开发
- 不用root用户也可执行,降低系统权限
----根据于超老师视频讲解进行笔记,做了相对更改,如有侵权请联系作者删除。