1. 自动化运维发展史
1.1 靠人运维的时代
靠人工运维的时代大约是指2003年之前,有很多台机器需要同时部署相同的服务或者执行命令,就需要登录不同的主机一台台运行。例如:在BACKUP服务器上部署好了Rsync备份服务,需要在所有其他的服务器上部署Rsync客户端配置,配置命令如下:
echo "oldboy" >/etc/rsync.password ---这里oldboy密码必须和服务器端相同
chmod 600 /etc/rsync.password ---必须为600
cat /etc/rsync.password ---验证认证文件配置信息是否正确
ll /etc/rsync.password ---验证认证文件权限信息是否正确
rsync -avzP /etc rsync_backup@192.168.9.5::backup --password-file=/etc/rsync.password ---测试推送结果
需要一台台登录所有的机器执行上述命令也是一件烦琐的事情。
1.2 自动化运维发展历史
1.2.1 SSH自动化运维时代
SSH自动化运维时代大约是指2003——2012年间,当时SSH自动化运维识很流行的,通过在管理机创建统一的密钥对,然后把私钥留在管理机上,公钥发送到所有被管理的机器上,然后开发脚本实现批量管理。
1.2.2 CFEngine自动化运维时代
CFEngine自动化运维时代大概是在2007-2008年,sina网大面积地使用该款软件进行批量管理。
1.2.3 Puppet自动化运维时代
大概从2011年开始,至今一些传统的银行还在使用。
1.2.4 Saltstack和Ansible自动化运维时代
大概从2012年开始。这两款软件都是用Python语言编写的。这两款软件各有优劣,Ansible上手要简单一些。
1.3 自动化运维的未来趋势
如今的自动化运维时代,不是一个批量自动化管理软件就能满足得了的。运维管理正在高速发展,从人肉运维到自动化运维,再到平台化(数据化)运维、可视化(操作可视,数据图表)运维,最后到智能化(AI)运维,运维业界同时倡导DevOps,AIOps运维。运维的发展前景可谓十分广阔,会带给用户更加广阔的施展空间的舞台。
1.4 自动化运维的好处
1)提高工作效率,减少重复性工作。
2)大大减少人为操作出错的问题。
3)数据化管理、数据化汇报、所有问题可追溯。
4)自动智能化管理,大大减少企业运维人力成本。
2. Ansible软件介绍
Ansible是一个可以同时管理多个远程主机的软件。这里的“远程主机”是指任何可以通过SSH协议登录的主机,所以它既可以是远程虚拟机或物理机,也可以是本地主机。
Ansible通过SSH协议实现管理节点与远程节点之间的通信。理论上来说,只要是能通过SSH登录到远程主机来完成的操作,都可以通过Ansible实现批量自动化操作。
Ansible可以管理的操作有批量复制、批量删除、批量修改、批量查看文件和目录、批量安装软件、批量启动服务等。
2.1 Ansible软件应用领域
Ansible的编排引擎可以出色地完成配置管理、流程控制、资源部署等多方面的工作。与其他IT自动化产品相比较,Ansible可提供一种不需要安装客户端软件、管理简便、功能强大的基础架构配置、维护工具。
Ansible基于Python语言实现,由Paramiko和PyYAML两个关键模块构成。Ansible具有独特的设计理念。
2.2 Ansible软件特点
- 安装部署过程特别简单,学习曲线很平坦。
- 管理主机便捷,支持多台主机并行管理。
- 无须在被管理主机上安装客户端代理和额外的端口,仅利用现有的SSH服务工作。
- 关注安全,可轻松对执行的内容进行审计、评估、重写。
- 能够立即管理远程被管理主机,不需要预先安装任何软件。
- 不仅仅支持Python,还可运行使用任何动态语言开发模块。
- 非root账户也可以使用。
- 是目前最简单、易用、高效的IT自动化系统。
在云计算时代的浪潮中,基础架构必须满足按需自动伸缩、按使用量计费的基本特性,IT自动化运维软件就是最重要的必备工具之一。
2.3 Ansible核心特性小结
- Ansible是一个基于Python开发的自动化运维工具。
- 不需要服务端(no servers),不需要守护进程服务。
- 不需要单独安装客户端(no agents),基于系统自带的SSHD服务,SSHD就相当于Ansible的客户端agent。
- 依靠大量的模块实现批量管理,当然也可以使用Shell/Python写成脚本或程序来批量管理。
- Ansible可以实现批量系统配置、批量软件部署、批量文件复制、批量运行命令等功能。
网友评论