ansible介紹
ansible是一款的自動化運維工具,基於python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。主要包括:
1、連線外掛程式connection plugins:負責和被監控端實現通訊;
2、host inventory:指定操作的主機,是乙個配置檔案裡面定義監控的主機;
3、各種模組核心模組、command模組、自定義模組;
4、借助於外掛程式完成記錄日誌郵件等功能;
5、playbook:劇本執行多個任務時,非必需可以讓節點一次性執行多個任務。
二、ansible特性
1、no agents:不需要在被管控主機上安裝任何客戶端;
2、no server:無伺服器端,使用時直接執行命令即可;
3、modules in any languages:基於模組工作,可使用任意語言開發模組;
4、yaml,not code:使用yaml語言定製劇本playbook;
5、ssh by default:基於ssh工作;
6、strong multi-tier solution:可實現多級指揮。
三、ansible優點
1、輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;
2、批量任務執行可以寫成指令碼,而且不用分發到遠端就可以執行;
3、使用python編寫,維護更簡單,ruby語法過於複雜;
4、支援sudo。
agentless,去中心化。
模組化部署,可自定義模組。
支援playbook。
冪等性,多次執行結果相同。
服務端主機ip 192.168.124.89
這裡我們控制了兩台主機分別是192.168.124.177和192.168.124.178
**ansibleyum install -y ansible
首先用ssh生成公鑰和私鑰ssh-keygen -t rsa : 預設生成在root家目錄.ssh目錄下
ssh-copy-id -i 公鑰 [email protected]然後輸入密碼下次登入就不需要密碼了
這樣的話,登入就不需要密碼了
exit可以退出
配置檔案[webservers] #加乙個組名192.168.124.177192.168.124.178wq退出並儲存
ansible -m ping "組名" 來檢視是否通,如下圖成功了
我們也可以生成在178主機下的認證的金鑰
上面我們已經在177主機上生成了金鑰,我們現在去root家目錄.ssh目錄下刪除掉金鑰看還可不可以登入
當177主機刪除掉金鑰就不可以登入了,顯示連線失敗
服務就搭建完成了然後就可以對這兩台機器進行操作啦ansible webservers(組名) -u root -a(後面接引數)「reboot」比如說讓這兩台虛擬機器重啟都是可以的啦
使用ansible的cmdb外掛程式收集伺服器的資訊
wget tar zxvf ansible cmdb 1.17.tar.gz cd ansible cmdb 1.17 make install 2 配置好ansible的hosts檔案及金鑰認證等 金鑰之前在其它伺服器上已經完成了認證,這次只是拷過來,只需要在接下來的命令當中引用hosts和id ...
ansible模組的使用
可實現 1 需要ssh和python即可 2 無客戶端 3 功能強大,模組豐富 4 上手太容易,門檻低 5 基於python的開發 6 使用公司比較多,社群活躍 ansible基於ssh協議來管理機器,被管理主機需要開啟ssh服務 ansible執行時配置檔案的查詢順序 1 首先檢測ansible ...
使用ansible批量管理遠端伺服器
本地需要管理遠端的一批伺服器,主要執行以下任務 1 將本地的檔案複製到遠端所有伺服器 2 需要在遠端伺服器中執行乙個個命令 使用copy模組,可以將本地檔案一鍵複製到遠端伺服器 a後跟上引數,引數中指定本地檔案和遠端路徑 ansible通過ssh登入到遠端伺服器後,並不執行.bash profile...