Ansible(From wikipedia)
Ansible 是一个免费的用于配置和管理计算机的的软件平台。它集成了软件部署,ad hoc任务执行,和管理配置的功能。它依赖Python2.4之后的版本和通过SSH或者PowerShell管理节点。模块工作在JSON格式,输出信息可以被任何编程语言再次编写。系统管理员可以使用YAML来描述系统的可用状态 ( The system uses YAML to express reusable descriptions of systems.)这个平台由Michael DeHaan所创建。Micahael DeHaan是系统提供工具 Cobbler的作者和提供远程管工具理Func框架的合著者。它被包含在Fedora发行版里面,同时也可以被RHEL,CentOS和Scientific Linux和其它操作系统使用。2015年,10-16,Red hat宣布它已经取得了ansible的所有权。
为什么被称作Ansible?
It was named "Ansible" after the fictional instantaneous hyperspace communication system featured in Orson Scott Card'sEnder's Game, and originally invented by Ursula K. Le Guin for her 1966 novel Rocannon's World.
1、架构(Architecture)
就像许多配置管理软件一样,Ansible区分两种不同类型的服务器:控制器和节点。首先,一个控制器作为编排(orchestration)开始的地方,然后节点由控制器通过SSH管理。控制器通过它的清单文件(inventory)描述节点的位置。
为了编排节点,Ansible通过SSH在节点上部署模块(Ansible deploys modules to nodes over SSH)。模块暂时存储在节点然后和通过JSON协议产生标准输出和控制节点通信。当Ansible没有管理节点的时候,它也不会消耗任何资源,因为后台没有Ansible 的daemon或程序在执行。
对比其它流行的配置管理软件,例如Chef,Puppet,和CFEnine,Ansible使用无状态的架构。基于Agent的架构,节点必须在本地安装一个daemon来和控制器通信。而无Agent的架构,节点不需要安装和运行任何后台daemons来连接控制节点。而无Agent的架构减少了节点不断polling控制器时候的网络负载。
1.1设计目标:
Ansible的设计目标包括:
最小化原则(Minimal in nature.)管理系统应尽量减少额外的依赖关系。
一致性(声明需要)
安全. Ansible不部署不安全的Agent。只需要OpenSSH即可,而OpenSSH是被测试过的。
高可靠性 幂等性模型防止重新执行脚本的副作用。
低学习门槛。Playbook使用一个容易的和容易描述的基于YMAL的语言。
1.2模块:
模块被看做Ansible的基本工作单元。每个模块都是独立的,同时可以被任何脚本语言编写,例如Python,Perl,Ruby,bash等等。模块的属性之一是幂等性,这意味着尽管某一操作执行了无数次,但是系统还是停留在相同的状态。
1.3清单配置(Inventory Configurations)
清单用于描述可以被Ansible访问的节点。这个清单默认被一个配置文件描述,位于/etc/ansible/hosts。这个配置文件列出可以被Ansible访问的IP地址或者每个主机的主机名。另外,节点也可以被分配到一个组里面。
下面看一个例子:
192.168.6.1
foo.example.com
bar.example.com
这个配置文件指定了三个节点。第一个通过IP地址指定,后面两个通过主机名指定。另外后面两个节点被划分到webserver组里面了。
Ansible也可以执行自定义的动态清单(Dynamic Inventory)脚本,可以从任何软件系统拉取数据让自己使用。
1.4剧本(Playbook)
Playbook在Ansible中表述配置,部署,和编排。Playbook使用YMAL语法,每个playbook映射一组主机到一些角色上。每个角色都是由Ansible任务调用。
2、平台支持:
控制节点必须有Python2.6. 支持的操作系统包括大部分Linux和Unix发行版,例如Red Hat,Debian,CentOS,OS X和BSD等等。
管理节点必须有Python2.4或后面的版本。被管理的节点使用Python2.5或更早的包,python-simplejson包需要被安装。在Ansible 1.7版本之后,Ansible也可以管理Windows节点了。
2.1云集成环境
Ansible可以部署虚拟化环境和公共和私有云环境,.包括VMvare,OpenStack,AWS,Rackspace Cloud Servers,DigitalOcean Droplets, Eucalyptus Cloud, KVM, XenServer, SoftLayer, Microsoft Azure 和 CloudStack
2.2大数据集成
Ansible可以部署大数据,存储和处理分享环境,包括Hadoop, Riak, and Aerospike。Ansible处理的问题包括管理每个节点的资源消耗。由其是大数据,存储和分析环境需要很高的执行效率和尽可能的消耗少量的CPU时间和内存。更深入的说,Ansible还提供监控功能,测量物理量如CPU资源可以帮助管理这些节点
3、用户:
很多公司都在使用。
页:
[1]