Ansible 介紹

目錄

一、Ansible 發展和起源

Ansible 是一款開源的 IT 配置管理工具,常被 IT 界的小夥伴們用於服務部署、配置管理等工作。配置文件採用最常見的 yaml 格式,學習起來也是比較容易,並且不像 SaltStack,Ansible 並不需要也沒有 agent,只有一個控制端。該工具使用簡單但功能非常強大,可以解決衆多工作中繁瑣的服務安裝、配置等問題。

Ansible 的第一個版本是 0.0.1,發佈於 2012 年 3 月 9 日,其作者兼創始人是 Michael DeHaan。迄今爲止已經發展到了 2.9 版本。並且它的關注度、Star 數以及 Fork 的次數都位居榜首。就連強大的 SaltStack 也只能排到第二。

Michael DeHaan 在配置管理和架構設計方面有豐富的經驗,曾就職於 RedHat 公司,在 RedHat 任職期間主要開發了 Cobble。在他嘗試了各種自動化工具 Puppet、Chef 之後,決定自己打造一款能夠結合衆多有點的自動化工具。由此,便有了 Ansible 這款易理解、易上手、受衆人喜愛的自動化工具。

二、爲什麼需要 Ansible

前面說過,ansible 通常用於自動化的場景,多用在服務部署、配置管理方面。隨着時間推移和公司發展,項目越來越多,團隊日益壯大,各種公司內部開發的應用、第三方開源的中間件等服務越來越多,那麼管理起來就相對比較困難,人肉操作已經完全滿足不了傳統的運維工作,需要消耗相當多的時間來進行變更,進而阻礙了開發人員的速度,極大的降低了工作效率。顯然可考又高效的部署和管理成爲了公司的一大難點與挑戰。那麼一款高效且可靠的服務部署和管理工具就顯得尤爲重要。而在很長一段時間裏,Docker 容器與 kubernetes 容器編排系統沒有被廣泛的普及之前,有很大一部分人在使用 Jenkins + Ansible 進行 CICD。

三、Ansible 的主要功能

四、Ansible 的相關特性

Ansible 是基於每個模塊進行工作,自身並沒有批量部署的能力,ansible 自身只是提供了一種框架。

五、Ansible 的優點

但是任何事物都具有兩面性。SSH 雖好,但如果被管理的機器數量衆多的話,執行的速度就會比較慢,就需要進行一定的優化和分批任務來緩解速度問題。

六、Ansible 的架構

Ansible 由以下幾個核心工具組成:

在日常工作中,我們大多數用到的且使用比較頻繁的主要是:Inventory 和 Modules。通常我們會根據項目的需求來定製化我們的 Inventory,不會將它放在默認的/etc/anaible/hosts文件中。

需要提醒大家的是:

Ansible 更新後,很多之前的方法在一段時間後或者說在某個版本後就會完全廢棄掉,這點和目前 Kubernetes 的 API 廢棄有點像。但是當你在某個高版本去使用低版本提供的方法時,它會在你執行 playbook 的時候給出 warning 警告,可以根據警告再去查詢官方文檔上對應版本的使用方法

Ansible 官網:https://docs.ansible.com/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/6eM-eYxNyo6ztk8t7IA8Ig