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,CentOSScientific 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,[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或程序在執行。

       對比其它流行的配置管理軟件,例如Chef,Puppet,和CFEnine,Ansible使用無狀態的架構?;?/span>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 Hat,Debian,CentOSOS XBSD等等。

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

2.1云集成環境

Ansible可以部署虛擬化環境和公共和私有云環境,.包括VMvare,OpenStack,AWS,Rackspace Cloud Servers,DigitalOcean Droplets, Eucalyptus CloudKVMXenServerSoftLayerMicrosoft Azure  CloudStack

2.2大數據集成

Ansible可以部署大數據,存儲和處理分享環境,包括HadoopRiak, and Aerospike。Ansible處理的問題包括管理每個節點的資源消耗。由其是大數據,存儲和分析環境需要很高的執行效率和盡可能的消耗少量的CPU時間和內存。更深入的說,Ansible還提供監控功能,測量物理量如CPU資源可以幫助管理這些節點

 

3、用戶:

很多公司都在使用。

原創文章,作者:艾賀,如若轉載,請注明出處:http://www.www58058.com/9284

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

相關推薦

  • DNS and Bind

    DNS and Bind ===================================================================================== 概述:    DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使…

    Linux干貨 2016-10-10
  • 文本處理工具和shell腳本基本編程

    文本處理工具 grep 對文本進行搜索獲取我們想要的行(關鍵信息) egrep 支持擴展正則表達式的grep fgrep 快速搜索不支持正則    -v 取反  找出不包含“pattern”的行  -i 忽略字符的大小寫  -n 顯示行號  -c 顯示統計到的行數,等同于wc -l  -o…

    2017-04-09
  • N22第八周作業

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋: 網橋是早期的二層網絡設備,每個端口分別有一條獨立的交換信道,不是共享一條信道,可隔離沖突域。網橋比集線器(Hub)性能更好,集線器上各端口都是共享同一條信道的,工作于數據鏈路層。后被端口更多的交換機替代。 集線器: 多端口中繼器,工作在物理層,本身不具備識別信號的能力,只…

    Linux干貨 2016-10-17
  • Linxux運維基礎小計

    常用cat、ls、touch、mkdir、cp、mv小結 ·cat連續的將文件的內容顯示在銀幕上 用法:cat[OPTION]…[FILE]… 參數 -A顯示所有非正常的所有符號 -E顯示行結束符 -T顯示制表符 -v顯示其他的非打印字符 -n對顯示的行進行編號,與文件內容沒有關系 -b:打印出行號(空白行不標行號) 直接輸入cat命令表示等待用戶的輸入并打…

    2017-02-18
  • 第四周練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 # cp -a /etc/skel /home/tuser1 # chmod -R go= /home/tuser1 2、編輯/etc/group文件,添加組hadoop #vim /etc/group #hadoop:x:5…

    Linux干貨 2017-10-21
  • 正則表達式的如何使用

    簡述:正則表達式主要用于文本的搜索,它表示了搜索文本的過濾條件。根據這些條件,對目標文本朱行進行匹配檢查,最后對輸出匹配到符合過濾條件的行。 使用:正確高效的使用正則表達式,需要掌握以下基本知識點         1:語法 grep [OPTION] PATTERN FILE……

    Linux干貨 2017-06-04
欧美性久久久久