第一章 ansible安裝

一.ansible介紹
常用的自動化運維工具

Puppet —基於 Ruby 開發,採用 C/S 架構,擴展性強,基於 SSL,遠程命令執行相對較弱
SaltStack —基於 Python 開發,採用 C/S 架構,相對 puppet 更輕量級,配置語法使用 YMAL,使得配置 腳本更簡單 Ansible —基於 Pythonparamiko 開發,分佈式,無需客戶端,輕量級,配置語法使用 YMAL 及 Jinja2 模板語言,更強的遠程命令執行操作 其他 DevOps 請參看:https://github.com/geekwolf/sa-scripts/blob/master/devops.md
Ansible 是一個簡單的自動化運維管理工具,可以用來自動化部署應用、配置、編排 task(持續 交付、無宕機更新等),採用 paramiko 協議庫(fabric 也使用這個),通過 SSH 或者 ZeroMQ 等連 接主機,大概每 2 個月發佈一個主版

Ansible 工作機制

Ansible 在管理節點將 Ansible 模塊通過 SSH 協議(或者 Kerberos、LDAP)推送到被管理端執 行,執行完之後自動刪除,可以使用 SVN 等來管理自定義模塊及編排

 

 


由上面的圖可以看到 Ansible 的組成由 5 個部分組成:

Ansible:核心引擎

Modules:包括 Ansible 自帶的核心模塊(core modules)及自定義模塊 (custom modules);

                核心模塊:ansible模塊資源分發到遠程節點使其執行特定任務或匹配一個特定的狀態。

                自定義模塊:如果核心模塊不足以完成某種功能,可以添加自定義模塊。

Plugins:完成模塊功能的補充,包括連接插件、郵件插件等

Playbooks:網上很多翻譯爲劇本,個人覺得理解爲編排更爲合理;定義ansible任務的配置文件,可以將多個任務定義在一個劇本中,由ansible自動執行,劇本執行支持多個任務,可以由控制主機運行多個任務,同時對多臺遠程主機進行管理。

Inventory:定義 Ansible 管理主機的清單

 

ansible功能特性

  • 應用代碼自動化部署。
  • 系統管理配置自動化。
  • 支持持續交付自動化。
  • 支持雲計算、大數據平臺(如AWS、OpenStack、VMWare等)環境。
  • 輕量級,無需在客戶端安裝agent,更新時只需在控制機上進行一次更新即可。
  • 批量任務執行可以寫成腳本,不用分發到遠程就可以執行。
  • 使用Python編寫,維護更簡單,Ruby語法過於複雜。
  • 支持非root用戶管理操作,支持sudo。

二.安裝ansible

安裝前準備:

1.因爲ansible是基於python的,所以先檢查是否有python,如果沒有需要安裝(注意版本,版本過低,也可能導致安裝失敗)。

2.安裝ansible前需要安裝依賴包

yum -y install epel-release

......

ansible安裝:

 yum -y install ansible

.......

 安裝完成後需要配置機組:

vim /etc/ansible/hosts

這裏我的機組名爲[ccdoop],以下是我的另外2臺機子的配置(本機爲:test1:192.168.254.130)

test2 192.168.254.131

test3 192.168.254.132

到這裏ansible就安裝完成了。

測試:

ansible all -m ping 

結果:成功!

注:由於本機只有一個組[ccdoop],故用all,如果有多個機組,而你只想測試一個組的話可以把all替換爲組名,如:

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