天天看點

自動化運維工具ansible的安裝與使用

     一、簡介  :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

自動化運維工具ansible的安裝與使用

(2)配置主機組: cd   /etc/ansible/hosts 找到webservice,這個是主機組的名字,可以自定義,比如test,增加兩台主機進入test組,分别是192.168.50.202和192.168.50.203 如下圖所示

自動化運維工具ansible的安裝與使用

(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的安裝與使用

将本機的檔案發給其他主機的做法 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簡單應用到這裡。

繼續閱讀