ansible(1)-ansible是什麼

1.什麼是ansible

ansible是新出現的自動化運維工具,基於Python開發,集合了衆多運維工具(puppet、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
  它是基於python語言,由Paramiko和PyYAML兩個關鍵模塊構建,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。ansible不需要在遠程主機上安裝client/agents,因爲它們是基於ssh來和遠程主機通訊的,。集合了衆多運維工具的優點,實現了批量系統配置、批量程序部。

2.ansible架構

在這裏插入圖片描述


    核心: ansible
    Core Modules: ansible自帶的模塊
    Custom Modules: 核心模塊功能不足時,用戶可以添加擴展模塊
    Plugins: 通過插件來實現記錄日誌,發送郵件或其他功能
    Playbooks: 劇本,YAML格式文件,多個任務定義在一個文件中,定義主機需要調用哪些模塊來完成的功能
    Connectior Plugins: ansible基於連接插件連接到各個主機上,默認是使用ssh
    Host Inventory: 記錄由Ansible管理的主機信息,包括端口、密碼、ip等

3.ansible特點

部署簡單, 只需要在控制主機上部署ansible環境,被控制端上只要求安裝ssh和python 2.5以上版本,這個對於類unix系統來說相當與無需配置.

    no angents: 被管控節點無需安裝agent
    no server: 無服務端,使用是直接調用命名
    modules in any languages: 基於模塊工作, 可以使用任意語言開發模塊
    易讀的語法: 基於yaml語法編寫playbook
    基於推送模式: 不同於puppet的拉取模式,直接由調用者控制變更在服務器上發生的時間
    模塊是冪等性的:定義的任務已存在則不會做任何事情,意味着在同一臺服務器上多次執行同一個playbook是安全的

4.ansible配置目錄


    配置文件: /etc/ansible/
    執行文件目錄: /usr/bin/
    lib依賴庫: /usr/lib/python2.7/site-packages/ansible/
    help文件: /usr/lib/python2.7/site-packages/ansible

ansible真正方便之處在於,可以運用playbook通過yml語法,對遠程主機進行操控,期間可以調用各種模塊,寫入yml文件,幫助配置的執行,可以分爲不同的角色,每個角色代表一個需要配置的模塊,對一臺遠程主機可實現多個任務模塊的推送

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章