一分鐘了解Ansible
Ansible是一個開源配置管理工具,可以使用它來自動化任務,部署應用程序實現IT基礎架構。Ansible可以用來自動化日常任務,比如,服務器的初始化配置、安全基線配置、更新和打補丁系統,安裝軟件包等。Ansible架構相對比較簡單,僅需通過SSH連接客戶機執行任務即可:
Ansible使用過程中會用到一些概念術語,我們先介紹一下。
Ansible的與節點有關的重要術語包括控制節點,受管節點,清單和主機文件:
控制節點(Control node):指安裝了Ansible的主機,也叫Ansible服務器端,管理機。 Ansible控制節點主要用于發布運行任務,執行控制命令。Ansible的程序都安裝在控制節點上,控制節點需要安裝Python和Ansible所需的各種依賴庫。注意:目前Ansible還不能安裝在Windows下。
受控節點(Managed nodes):也叫客戶機,就是想用Ansible執行任務的客戶服務器。
清單(Inventory):受控節點的列表,就是所有要管理的主機列表。
host文件:清單列表通常保存在一個名為host文件中。在host文件中,可以使用IP地址或者主機名來表示具體的管理主機和認證信息,并可以根據主機的用戶進行分組。缺省文件:/etc/ansible/hosts,可以通過-i指定自定義的host文件。
模塊(Modules):模塊是Ansible執行特定任務的代碼塊。比如:添加用戶,上傳文件和對客戶機執行ping操作等。Ansible現在默認自帶450多個模塊,,Ansible Galaxy公共存儲庫則包含大約1600個模塊。
任務(Task):是Ansible客戶機上執行的操作。可以使用ad-hoc單行命令執行一個任務。
劇本(Playbook):是利用YAML標記語言編寫的可重復執行的任務的列表,playbook實現任務的更便捷的讀寫和貢獻。比如,在Github上有大量的Ansible playbooks共享,你要你有一雙善于發現的眼睛你就能找到大量的寶藏。
角色(roles):角色是Ansible 1.2版本引入的新特性,用于層次性、結構化地組織playbook。roles能夠根據層次型結構自動裝載變量文件、tasks以及handlers等。
Ansible的優勢
Ansible作為最受歡迎的自動化配置工具,主要得益于其設計上的優勢。
無需客戶端
與Chef、Puppet以及Saltstack(現在也支持Agentless方式salt-ssh)不同,Ansible是無客戶端Agent的,所以無需在客戶機上安裝或配置任何程序,就可以運行Ansible任務。由于Ansible不會在客戶機上安裝任何軟件或運行監聽程序,因此消除了許多管理開銷,我們可以在即可上手使用Ansible管理服務器,同時Ansible的更新也不會影響任何客戶機。
使用SSH進行通訊
默認情況下,Ansible使用SSH協議在管理機和客戶機之間進行通信。可以使用SFTP與客戶機進行安全的文件傳輸。
并行執行
Ansible與客戶機并行通信,可以更快地運行自動化任務。默認情況下,forks值為5,可以按需,在配置文件中增大該值。
好啦!今天的分享到這里就結束了!希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!
聲明:文章轉載于網絡,版權歸原作者所有!