轉自
創(chuàng)新互聯(lián)制作網站網頁找三站合一網站制作公司,專注于網頁設計,成都網站制作、成都做網站、外貿營銷網站建設,網站設計,企業(yè)網站搭建,網站開發(fā),建網站業(yè)務,680元做網站,已為上千家服務,創(chuàng)新互聯(lián)網站建設將一如既往的為我們的客戶提供最優(yōu)質的網站建設、網絡營銷推廣服務!Linux輕量級自動運維工具-Ansible淺析 - ~微風~ - 51CTO技術博客
http://weiweidefeng.blog.51cto.com/1957995/1895261
Ansible是什么?
ansible架構圖
ansible特性
模塊化:調用特定的模塊,完成特定的任務;
基于Python語言研發(fā),由Paramiko, PyYAML和Jinja2三個核心庫實現;
部署簡單:agentless;
支持自定義模塊,使用任意編程語言;
強大的playbook機制;
冪等性;
安裝及程序環(huán)境:
程序:
ansible
ansible-playbook
ansible-doc
配置文件:
/etc/ansible/ansible.cfg
主機清單:
/etc/ansible/hosts
插件目錄:
/usr/share/ansible_plugins/
安裝ansible
安裝依賴包
ansible命令的使用:
Usage: ansible
常用選項:
-m MOD_NAME
-a MOD_ARGS
配置Host Inventory:
/etc/ansible/hosts
[group_id]
HOST_PATTERN1
HOST_PATTERN2
示例:
首先對此文件進行備份操作,以防后面需要用到默認配置文件
進入到/etc/ansible/hosts文件,此處綠色光標以下的內容是沒有用的,都是示例,可以刪除掉,然后添加我們下面實驗操作用到的主機。
添加一組websrvs服務器,以用于下面的測試
測試主機連通性
這里報錯是因為實驗用的主機交換其他兩臺主機的公鑰/私鑰的原因導致的
實驗SSH免密碼登陸設置
生成私鑰和公鑰ssh-keygen -t rsa -P ''
復制公鑰文件問authorized_keys
把公鑰傳送到其他主機
在68的主機上面可以看見公鑰已經傳送過來了,并且確認文件的權限是否正確
重復以上操作把公鑰發(fā)送給69的主機
然后重新執(zhí)行ansible的ping模塊命令查看該兩臺主機的連通性
可以發(fā)現此時已經成功,那么下面就開始介紹ansilbe的其他模塊
最后記得利用ansible同步一下所有主機的時間,以免某主機的時間有錯誤,后面看日志起來會造成混亂
ansible模塊:
獲取模塊列表:ansible-doc -l
獲取指定模塊的使用幫助:ansible-doc -s MOD_NAME
常用模塊:
ping模塊:探測目標主機是否存活;
示例:測試所有的主機的連通性
command模塊:在遠程主機執(zhí)行命令;
示例1:讓所有主機同步時間
此處沒有給出指定的-m command命令,是因為ansible的模塊默認就是command
示例2:讓每一臺主機都執(zhí)行uname -r命令
示例3:在主機上面都創(chuàng)建一個用戶
查看兩臺主機是否已經創(chuàng)建該用戶
查看用戶信息:
幫這兩個用戶改密碼,此處需要注意的是,雖然用下面的命令看似執(zhí)行成功,但是當我們驗證的時候,就會發(fā)現密碼錯誤了,這是因為ansible的command模塊并不支持管道等輸出,所以下面介紹另外一個ansible的模塊shell
shell模塊:在遠程主機上調用shell解釋器運行命令,支持shell的各種功能,例如管道等
注意:command和shell模塊的核心參數直接為命令本身;而其它模塊的參數通常為“key=value”格式;
示例:批量修改其他主機的特定用戶的密碼
此時可以發(fā)現已經可以登陸成功
copy模塊:復制文件到遠程主機
用法:
(1) 復制文件
-a "src=\'#\'" "
(2) 給定內容生成文件
-a "content= dest= "
其它參數:mode, owner, group, ...
示例:復制文件到其他主機
此處創(chuàng)建一個測試文件
復制文件到其他主機
下面紅色的報錯信息是,如果要傳送文件,該主機的指定目錄需要存在,如果不存在,就是提示錯誤
創(chuàng)建對應的目錄
重新傳送文件,已經沒有錯誤提示,但是此處也可以看見,如果文件已經存在,則原文件會被覆蓋掉,并且此處也沒有任何提示覆蓋文件的信息,所以操作的時候就需要注意了,以免覆蓋掉重要的文件
驗證文件
file模塊:設置文件的屬性
用法:
(1) 創(chuàng)建目錄:
-a "path= state=directory"
(2) 創(chuàng)建鏈接文件:
-a "path= src=\'#\'" /p>
(3) 刪除文件:
-a "path= state=absent“
示例:修改文件的權限和屬主
驗證文件
示例:創(chuàng)建文件的軟連接
驗證文件
設置文件的狀態(tài)為absent(即刪除文件)
驗證
fetch模塊:從遠程主機拿文件
示例:從10.1.156.69主機拿一個文件
當抓去一堆文件的時候,也會創(chuàng)建對應的ip地址的目錄,以區(qū)分文件
cron模塊:管理計劃任務條目
用法:
-a "" minute= hour= day= month= weekday= job= name= user= state={present|absent}
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。