一、簡介 :ansible是新出現的自動化運維工具,基于Python開發,集合了衆多運維工具(puppet、cfengine、chef、func、fabric)的優點,實作了批量系統配置、批量程式部署、批量運作指令等功能。
ansible是基于子產品工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運作的子產品,ansible隻是提供一種架構。主要包括:
(1)、連接配接插件connection plugins:負責和被監控端實作通信; (2)、host inventory:指定操作的主機,是一個配置檔案裡面定義監控的主機; (3)、各種子產品核心子產品、command子產品、自定義子產品; (4)、借助于插件完成記錄日志郵件等功能; (5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運作多個任務。 二、安裝和使用 (1 ) yum install epel-release -y yum install ansible -y

(2)配置主機組: cd /etc/ansible/hosts 找到webservice,這個是主機組的名字,可以自定義,比如test,增加兩台主機進入test組,分别是192.168.50.202和192.168.50.203 如下圖所示
(3)配置從這個管理節點(安裝了ansible)的節點到其他兩台的面密碼登陸 ssh-keygen //生成這台主機的公鑰
将公鑰發送到要管理的伺服器
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.50.202
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.50.202
,此時已經可以實作從該主機到這兩台主機的面密碼登陸了 (4)使用ansible來操作和管理其他機器
指令格式如下:
ansible + 主機組名稱 + -m + 子產品名稱 + -a + 參數
主機組名稱,即hosts中定義的主機組名稱 ,次數為test
-m 指使用子產品,後加指定的子產品名稱
-a 指傳給子產品的參數
在不指定子產品時,預設調用command子產品,即執行指令的動作,伺候還有copy等等
如我們想看下test組上的伺服器的/root下面有哪些檔案,可以使用如下指令
ansible test -a “ls /root”//運作結果會顯示test下的所有主機組的root下的檔案
将本機的檔案發給其他主機的做法 ansible test -m copy -a “src=/root/install.log dest=/tmp” 這個指令是将本地的/root/install.log發送到test組的/tmp下,執行的效果如下:
[[email protected] ~]# ansible test -m copy -a "src=/root/test.txt dest=/root"
192.168.50.202 | SUCCESS => {
"changed": true,
"checksum": "656f625555335decef0659baf45acc406cc311f5",
"dest": "/root/test.txt",
"failed": false,
"gid": 0,
"group": "root",
"md5sum": "1822a4a658cb424813c8bfc7422d9077",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 14,
"src": "/root/.ansible/tmp/ansible-tmp-1512651368.98-190797399495490/source",
"state": "file",
"uid": 0
}
192.168.50.203 | SUCCESS => {
"changed": true,
此時表明已經發送成功,好了今天下介紹ansible簡單應用到這裡。