初探ansible安裝

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

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 個月發佈一個主版git

Ansible 工做機制 github

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

 

 


由上面的圖能夠看到 Ansible 的組成由 5 個部分組成: 架構

Ansible:核心引擎運維

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

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

                自定義模塊:若是核心模塊不足以完成某種功能,能夠添加自定義模塊。oop

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替換爲組名,如:

相關文章
相關標籤/搜索