2、Ansible的Ad-hoc介紹篇

1、什麼是Ad-hoc

稱爲臨時命令,簡單說,就是在命令行界面,直接經過一條ansible命令,去指定主機執行指定指令,功能有限
例如:ansible localhost -m command -a "df -h"

 

2、Ad-hoc用法

  Usage: ansible <host-pattern> [options]python

<host-pattern>  #主機或主機組,被執行的客戶端設備,必填項


[option]:
-m module    #【經常使用】模塊,指定要執行使用的模塊
-a           #【經常使用】代模塊參數,使用-m指定某個模塊,該模塊可能須要跟某些參數,此時參數就放在-a 後面的雙引號內" "。不加-m 模塊,直接使用-a 指默認指定了-m command 模塊
-u USERNAME  #--user=USERNAME:指定遠程主機以USERNAME運行命令
-k          #--ask-pass SSH:認證密碼,回車手動輸入密碼
-c CONNECTION   #--connection=CONNECTION:指定鏈接方式,可用選項paramiko,ssh,local
-f  NUM      #--forks=NUM:併發線程數,默認是5個線程
--list-hosts    #列出符合條件的主機列表,不執行任何命令
-v           #--verbose:輸出更詳細的執行過程信息
-vvv         #可獲得執行過程全部信息
-i  PATH     #--inventory(清單,即主機列表文件路徑)=PATH:指定inventory(清單)信息,默認路徑是/etc/ansible/hosts
--private-key=PRIVATE_KEY_FILE  #指定密鑰文件
-M DIRECTORY #--module-path=DIRECTORY:指定模塊存放路徑,默認/usr/share/ansible/,也可經過ANSIBEL_LIBRARY設定默認路徑
-K          #--ask-sudo-pass sudo:用戶的密碼(--sudo時使用)
-o          #--one-line:標準輸出至一行
-s          #--sudo:至關於linux系統下的sudo命令
-t DIRECTORY #--tree=DIRECTORY:輸出信息至DIRECTORY目錄下,結果文件以遠程主機命名
-T SECONDS  #--timeout=SECONDS:指定鏈接遠程主機的最大超時,單位是秒
-B NUM      #--background=NUM:後臺執行命令,超過NUM秒後停止正在執行的任務
-P NUM      #--poll=NUM:按期返回後臺任務進度
-l SUBSET   #--limit=SUBSET:指定運行主機
-l ~REGEX   #--limit=~REGEX:指定運行主機(正則)

 

3、Ansible的幫助文檔ansible-doc

  3.1 命令用法linux

ansible-doc [options] [module...]

  3.2 options選項ios

--version    #顯示工具版本號
-h               #顯示該help說明
-M  MODULE_PATH    #--module-path=MODULE_PATH指定ansible模塊的默認加載目錄
-l              #--list:列出全部可用模塊
-s               #--sinppet:只顯示playbook說明的代碼段
-v              #等同於--version,顯示工具版本號

例如:ansible-doc -l #列出全部可用模塊

  3.3 module選項網絡

例如:ansible-doc yum    #查看yum模塊的使用說明

  

 

 

四.實例

  實例1:測試遠端網絡設備的ssh服務是否能正常訪問併發

  命令:ansible 192.168.62.41 -m ping -U cisco -c local -kssh

 

#此命令,各參數解析
#192.168.62.41    #此ip已存在/etc/ansible/hosts文件,並開啓了inventory功能(/etc/ansible/ansible.cfg)
-m ping    #使用ping模塊,用於測試遠端服務ssh的可登錄性
-U cisco    #以用戶名cisco登陸遠端主機
-c  local   #local指定從本地執行python腳本,默認是在遠端執行python腳本,所以採用默認鏈接方式,遠端必須是有python環境的
            #所以遠端如果網絡設備,由於不可能還有python環境,所以都須要指定採用本地鏈接方式-c local
-k              #回車,輸入ssh密碼

 

  實例2:獲取遠端網絡設備的設備配置信息工具

  命令:ansible 192.168.62.41 -c local -m ios_facts -a 'auth_pass=cisco gather_subset=all authorize=yes' -u cisco -k測試

-c  local    #使用本地鏈接,默認是遠端連接
-m ios_facts   #ios_facts是思科ios的設備信息模塊
-a        #模塊裏的參數
-a 'auth_pass=cisco gather_subset=all authorize=yes' 
    auth_pass    #enable密碼
    gather_subset    #收集給定子集的範圍,如收集全部all;只收集配置信息config;不僅收集硬件信息!hardware
-u username    #登陸設備用戶名
-k        #回車輸入設備登陸密碼
相關文章
相關標籤/搜索