美文网首页
2020-03-15 Ansible介绍

2020-03-15 Ansible介绍

作者: 阿丧小威 | 来源:发表于2020-03-15 21:55 被阅读0次

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可以实现批量系统配置、批量软件部署、批量文件复制、批量运行命令等功能。

2.4 Ansible软件基本架构

Ansible软件基本架构图

相关文章

网友评论

      本文标题:2020-03-15 Ansible介绍

      本文链接:https://www.haomeiwen.com/subject/kqljehtx.html