1. 程式人生 > 實用技巧 >Ansible安裝入門

Ansible安裝入門

Ansible安裝與配置(自動化運維管理工具)
原創 2016年06月02日 18:35:01

    標籤:
    ansible /
    運維管理 /
    python

原文連結:http://blog.csdn.net/xyang81/article/details/51568227

    Ansible是一個簡單高效的自動化運維管理工具,用Python開發,能大批量管理N多臺機器,可以併發的在多臺機器上部署應用、安裝軟體、執行命令、配置和編排任務。

一、Ansible工作機制

ansible架構圖

從圖中可以看出ansible分為以下幾個部份:

1> Control Node:控制機器
2> Inventory:主機清單,配置管理主機列表 3> Playbooks:劇本、任務編排。根據規則定義多個任務,模組組織結構清晰,由ansible自動執行。 4> Modules(Core | Custom):模組,用於執行某個具體的任務 5> connection plugin(連線外掛):Ansible通過不同的協議連線到遠端主機上,執行指定的命令。預設採用ssh協議連線遠端主機。 二、Ansible執行流程 Ansible執行流程 簡單理解就是Ansible在執行時,首先讀取ansible.cfg中的配置,根據規則獲取Inventory中的管理主機列表,並行的在這些主機中執行配置的任務,最後等待執行返回的結果。 三、安裝Ansible 一臺控制主機:
192.168.0.202 三臺管理主機: 192.168.0.200 192.168.0.201 192.168.0.203 安裝要求: 控制伺服器:需要安裝 Python2.6/2.7 管理伺服器:需要安裝 Python2.4 以上版本,若低於 Python2.5 需要安裝 pythonsimplejson; 若啟用了 selinux,則需要安裝 libselinux-python。 本次安裝基於CentOS7系統環境、Python2.7.5、root使用者。 3.1、yum安裝(推薦) yum install epel-release yum install ansible
3.2、pip安裝 pip install ansible 注:pip方式安裝不會在/etc/ansible目錄下生成預設的相關配置檔案 四、配置 控制主機:用於控制其它機器的主機 管理主機:被控制主機管理的主機 4.1、配置管理主機 vim /etc/ansible/hosts 在hosts檔案中新增管理主機的IP地址列表: 配置管理主機 4.2、配置控制主機SSH金鑰 4.2.1、在控制主機中生成ssh金鑰對 ssh-keygen -t rsa 一路回車即可在$HOME/.ssh目錄下生成id_rsa和id_rsa.put私鑰和公鑰兩個檔案。 注: 如果在生成金鑰的時候設定了密碼,ansible每次執行命令的時候,都會提示輸入金鑰密碼,可通過下面的命令記住密碼。 ssh-agent bsh ssh-add ~/.ssh/id_rsa 4.2.2、將公鑰拷貝到管理主機中.ssh/authorized_keys檔案中,實現免密碼登入遠端管理主機 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.200 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.201 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.203 注:ssh-copy-id命令會自動將id_rsa.pub檔案的內容追加到遠端主機root使用者下.ssh/authorized_keys檔案中。 4.2.3、ansible配置 vim /etc/ansible/ansible.cfg 1> 禁用每次執行ansbile命令檢查ssh key host host_key_checking = False 2> 開啟日誌記錄 log_path = /var/log/ansible.log 3> ansible連線加速配置 [accelerate] #accelerate_port = 5099 accelerate_port = 10000 #accelerate_timeout = 30 #accelerate_connect_timeout = 5.0 # If set to yes, accelerate_multi_key will allow multiple # private keys to be uploaded to it, though each user must # have access to the system via SSH to add a new key. The default # is "no". accelerate_multi_key = yes 五、測試 最後測試下在三臺管理機器批量執行一個ping命令 ansible all -m ping 結果如下: ansible all -m ping執行結果 從上圖可以看出,在每臺管理機器上都成功執行了ping命令。 一些Ansible深入功能的學習資料: http://blog.xiaorui.cc/category/ansible/ http://lixcto.blog.51cto.com/4834175/d-4 https://github.com/ansible/ansible-examples http://rfyiamcool.blog.51cto.com/1030776/d-51 http://dl528888.blog.51cto.com/2382721/d-4/p-1 http://edu.51cto.com/course/course_id-2220.html http://edu.51cto.com/course/course_id-2032.html