ansible是目前最受運維歡迎的自動化運維工具,基於python開發,集合了眾多運維工具(saltstack puppet、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。
ansible是基於 paramiko 開發的,並且基於模組化工作,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。ansible不需要在遠端主機上安裝client/agents,因為它們是基於ssh來和遠端主機通訊的。ansible目前已經已經被紅帽官方收購,是自動化運維工具中大家認可度最高的,並且上手容易,學習簡單。是每位運維工程師必須掌握的技能之一。
ansible 系統由控制主機對被管節點的操作方式可分為兩類,即ad-hoc和playbook:
簡單理解就是ansible在執行時, 首先讀取 ansible.cfg 中的配置, 根據規則獲取 inventory 中的管理主機列表, 並行的在這些主機中執行配置的任務, 最後等待執行返回的結果
載入自己的配置檔案,預設/etc/ansible/ansible.cfg;
查詢對應的主機配置檔案,找到要執行的主機或者組;
載入自己對應的模組檔案,如 command;
通過ansible將模組或命令生成對應的臨時py檔案(python指令碼), 並將該檔案傳輸至遠端伺服器;
對應執行使用者的家目錄的.ansible/tmp/***/***.py檔案;
給檔案 +x 執行許可權;
執行並返回結果;
刪除臨時py檔案, sleep 0 退出;
yum install epel-release -y
yum install ansible –y
ansible 的配置檔案為/etc/ansible/ansible.cfg, ansible 有許多引數,下面我們列出一些常見的引數:
inventory = /etc/ansible/hosts #這個引數表示資源清單inventory檔案的位置
library = /usr/share/ansible #指向存放ansible模組的目錄,支援多個目錄方式,只要用冒號(:)隔開就可以
forks = 5 #併發連線數,預設為5
sudo_user = root #設定預設執行命令的使用者
remote_port = 22 #指定連線被管節點的管理埠,預設為22埠,建議修改,能夠更加安全
host_key_checking = false #設定是否檢查ssh主機的金鑰,值為true/false。關閉後第一次連線不會提示配置例項
timeout = 60 #設定ssh連線的超時時間,單位為秒
log_path = /var/log/ansible.log #指定乙個儲存ansible日誌的檔案(預設不記錄日誌)
在配置檔案中,我們提到了資源清單,這個清單就是我們的主機清單,裡面儲存的是一些 ansible 需要連線管理的主機列表。我們可以來看看他的定義方式:
green.example.com
blue.example.com
192.168.100.1
192.168.100.10
2、 定義乙個主機組[組名]把位址或主機名加進去
[mysql_test]
192.168.253.159
192.168.253.160
192.168.253.153
3、定義組內包含組
[web]
192.168.11.128
192.168.11.129
[db]
192.168.11.130
192.168.11.131
[webs:children]
webdb4、定義主機組的變數
[web:vars]
ansible_ssh_user=root
需要注意的是,這裡的組成員可以使用萬用字元來匹配,這樣對於一些標準化的管理來說就很輕鬆方便了。
我們可以根據實際情況來配置我們的主機列表,具體操作如下:
[root@server ~]# vim /etc/ansible/hosts
[web]
192.168.37.122
192.168.37.133
#1.生成私鑰
[root@server ~]# ssh-keygen
#2.向主機分發私鑰
[root@server ~]# ssh-copy-id [email protected]
[root@server ~]# ssh-copy-id [email protected]
ansible 自動化運維工具
ansible 自動化運維工具 批量管理 python開發 無客戶端 基於ssh服務 22 安裝 1.ansible包在擴充套件源,epel release yum y install epel release yum repolist 2.安裝,ansible yum y install ansi...
自動化運維工具 ansible
ansible ansible 一 簡介和部署 ansible 二 主機清單管理 ansible 三 配置和命令集 ansible 四 常用模組 ansible 五 palybooks劇本 ansible 彙總 ansible 中文權威指南 本部落格 至 小左先森的部落格 ansible ansib...
ansible 自動化運維工具
ansible是新出現的自動化運維工具,基於python開發,集合了眾多運維工具 puppet cfengine chef func fabric 的優點,實現了批量系統配置 批量程式部署 批量執行命令等功能。ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible...