Ansible 介绍
Ansible是一个部署一群远程主机的工具。这里“远程主机”是指任何可以通过SSH登录的主机,所以它既可以是远程虚拟机或物理机,也可以是本地主机。Ansible通过SSH协议实现管理节点与远程节点之间的通信。理论上来说,只要能通过SSH登录到远程主机来完成的操作,都可以通过Ansible实现批量自动化操作。
Ansible 解决了什么运维痛点
Ansible解决了如何大批量,自动化地实现系统配置,应用部署,命令和服务操作的问题。其脚本具有灵活、可重入的特性,极大减少了运维人员的重复劳动,提高了运维效率。
Ansible 架构
Ansible管理节点和远程主机节点之间通过SSH协议进行通信。所以配置Ansible的时候,只需要保证从Ansible管理节点通过SSH协议能够连接到被管理的远程节点即可。认证方式可以是密钥认证也可以是密码认证,但是推荐使用密钥认证的方式。
Ansible连接方式 - SSH:
在管理节点安装Ansible及所依赖的软件。由于管理节点通过SSH连接被管理的主机来执行命令或脚本,因为被管理的节点需要配置并启用SSH服务,此外无需安装其他特殊的软件。管理节点只在执行命令或脚本的时候与远程主机连接,没有特别的同步机制,所以发生断电等异常时一般不会影响Ansbile。
Ansbile支持多种类型的主机:
Ansible可以同时管理Linux 和Windows 主机。Ansible工作原理如图:
Ansible Tower
Ansible Tower 是一款针对企业用户的收费软件。
因为Ansible为了管理远程主机,需要配置密钥认证。密钥的配置和维护对于管理几台虚拟机和远程主机的个人用户不会有什么问题,但是对于拥有大量主机和管理人员的企业用户来说,则可能有以下困扰:
- 维护工作量大:每增加一台主机,都需要手动配置SSH连接,企业级的PC主机成百上千,每个管理员都需要在自己的电脑上配置所有的SSH连接,无疑工作量巨大。
- 安全隐患大:在安全方面如果管理员能够拿到私钥,或者复制给别人,那么对于生产环境来说,无疑是巨大的隐患。
- 协同性弱:每个管理员都有自己的脚本库,有的脚本可能是为了解决同一个问题,但是管理员之间没有一个通用的协作共享脚本的机制。
- 可视性差:基本一般通过SSH终端运行,对于大量主机批量配置的情况,其执行状态的表现能力有限,不利于后期对于结果的统计和分析。
因此,有了Ansible Tower。
那么Ansible Tower能做什么呢?
AnsibleTower则是针对企业用户环境、中心化的Ansible管理节点,它向管理员提供网页接口,来运行Ansible脚本Playbook。
- 管理员在Ansible Tower上使用和分享主机的SSH私钥,但是不能查看和复制私钥文件。
- Ansible网站上的所有管理员都可以共享Playbook脚本,减少重复工作。
- 此外,AnsibleTower还可以收集和展现所有主机的Playbook执行状况,以便统计和分析主机状态。
Ansible Tower 架构图:
未完待续!