轉自
Linux輕量級自動運維工具-Ansible淺析 - ~微風~ - 51CTO技術博客
http://weiweidefeng.blog.51cto.com/1957995/1895261
Ansible是什么?
ansible架構圖
ansible特性
模塊化:調用特定的模塊,完成特定的任務;
基于Python語言研發,由Paramiko, PyYAML和Jinja2三個核心庫實現;
部署簡單:agentless;
支持自定義模塊,使用任意編程語言;
強大的playbook機制;
冪等性;
安裝及程序環境:
程序:
ansible
ansible-playbook
ansible-doc
配置文件:
/etc/ansible/ansible.cfg
主機清單:
/etc/ansible/hosts
插件目錄:
/usr/share/ansible_plugins/
安裝ansible
安裝依賴包
ansible命令的使用:
Usage: ansible <host-pattern> [options]
常用選項:
-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的主機上面可以看見公鑰已經傳送過來了,并且確認文件的權限是否正確
重復以上操作把公鑰發送給69的主機
然后重新執行ansible的ping模塊命令查看該兩臺主機的連通性
可以發現此時已經成功,那么下面就開始介紹ansilbe的其他模塊
最后記得利用ansible同步一下所有主機的時間,以免某主機的時間有錯誤,后面看日志起來會造成混亂
ansible模塊:
獲取模塊列表:ansible-doc -l
獲取指定模塊的使用幫助:ansible-doc -s MOD_NAME
常用模塊:
ping模塊:探測目標主機是否存活;
示例:測試所有的主機的連通性
command模塊:在遠程主機執行命令;
示例1:讓所有主機同步時間
此處沒有給出指定的-m command命令,是因為ansible的模塊默認就是command
新聞熱點
疑難解答