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发行版里面,同时也可以被RHELCentOSScientific Linux和其它操作系统使用。2015年,10-16Red hat宣布它已经取得了ansible的所有权。

为什么被称作Ansible

It was named "Ansible" after the fictional instantaneous hyperspace communication system featured in Orson Scott Card'sEnder's Game,[9] 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或程序在执行。

       对比其它流行的配置管理软件,例如ChefPuppet,和CFEnineAnsible使用无状态的架构。基于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
 
[webservers]
foo.example.com
bar.example.com

这个配置文件指定了三个节点。第一个通过IP地址指定,后面两个通过主机名指定。另外后面两个节点被划分到webserver组里面了。

Ansible也可以执行自定义的动态清单(Dynamic Inventory)脚本,可以从任何软件系统拉取数据让自己使用。

1.4剧本(Playbook)

PlaybookAnsible中表述配置,部署,和编排。Playbook使用YMAL语法,每个playbook映射一组主机到一些角色上。每个角色都是由Ansible任务调用。

 

2、平台支持:

    控制节点必须有Python2.6. 支持的操作系统包括大部分LinuxUnix发行版,例如Red HatDebianCentOSOS XBSD等等。

    管理节点必须有Python2.4或后面的版本。被管理的节点使用Python2.5或更早的包,python-simplejson包需要被安装。在Ansible 1.7版本之后,Ansible也可以管理Windows节点了。

2.1云集成环境

Ansible可以部署虚拟化环境和公共和私有云环境,.包括VMvareOpenStackAWSRackspace Cloud ServersDigitalOcean Droplets, Eucalyptus CloudKVMXenServerSoftLayerMicrosoft Azure  CloudStack

2.2大数据集成

Ansible可以部署大数据,存储和处理分享环境,包括HadoopRiak, and AerospikeAnsible处理的问题包括管理每个节点的资源消耗。由其是大数据,存储和分析环境需要很高的执行效率和尽可能的消耗少量的CPU时间和内存。更深入的说,Ansible还提供监控功能,测量物理量如CPU资源可以帮助管理这些节点

 

3、用户:

很多公司都在使用。

原创文章,作者:艾贺,如若转载,请注明出处:http://www.178linux.com/9284

(0)
艾贺艾贺
上一篇 2015-11-18
下一篇 2015-11-18

相关推荐

  • linux磁盘管理及其磁盘分区工具的使用

    一、 几种分区工具: 1.图形化工具gnome-disks使用简单,在此不在赘述。 2.fdisk使用: fdisk支持MBR,也支持GPT分区,对于一块硬盘最多只能理解15个分区,一般使用fdisk做MBR分区,gdisk做GPT分区。下面为fdisk分区示例: [root@centos7 ~]# fdisk /dev/sde…

    Linux干货 2016-08-29
  • 推荐-btrfs文件系统介绍及操作

    btrfs文件系统支持写时复制功能,对备份很有帮助。在单个硬盘时,btrfs是没有意义的。     核心特性:         多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;       …

    Linux干货 2016-06-01
  • N25-第一周 总结

    linux bassic The first week of blogging 概要 计算机与操作系统、linux发行版及他们之间联系与区别、Linux的哲学思想、linux系统上命令使用格式及基础命令介绍、linux命令帮助说明、FHS 一、计算机与操作系统 什么是计算机? 电子计算机(computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数…

    Linux干货 2016-12-04
  • 采用二进制包安装mysql

    本文是在CentOS7系统平台下安装Mysql5.6.26版本数据库的操作说明,如有错误,请指正。 系统平台:CentOS-7-x86_64    数据库版本:mysql-5.6.26   Mysql镜像文件下载地址:http://dev.mysql.com/downloads/mirrors.html 本次演示的Mysql安装…

    Linux干货 2017-05-04
  • LINUX集群概念

    反向代理服务器:客户端发现请求给反向代理服务器,反向代理服务器与后端真实服务器进行通信,并由反向代理服务器返回信息给客户端 不同的服务,反向代理服务器使用的协议不同(如http、mysql等): 反代服务器后端的真实服务器一般是多台服务器组成的集群 Linux Cluster:          集群:将多台…

    Linux干货 2017-01-10
  • 一起学DNS系列(十四)DNS查询工具之DIG的使用(2)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/240243    上节谈到了利用DIG的+trace参数追踪域名解析的过程,其实除此之外,DIG还有一些其他的参数,这节会涉及到这…

    2015-03-17