二 Ansible的Ad hoc介紹篇

2022-07-22 08:06:10 字數 3339 閱讀 7480

稱為臨時命令,簡單說,就是在命令列介面,直接通過一條ansible命令,去指定主機執行指定指令,功能有限

例如:ansible localhost -m command -a "

df -h

"

usage: ansible [options]

#

主機或主機組,被執行的客戶端裝置,必填項

[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.1 命令用法

ansible-doc [options] [module...]
3.2 options選項

--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 -k

此命令,各引數解析

#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 #

回車輸入裝置登入密碼

Ansible 小手冊系列 七(Ad hoc)

ansible提供兩種方式去完成任務,一是 ad hoc 命令,一是寫 ansible playbook。前者可以解決一些簡單的任務,後者解決較複雜的任務。ad hoc 臨時的,在ansible中是指需要快速執行,並且不需要儲存的命令。說白了就是執行簡單的命令 一條命令。定義主機清單 cat etc...

Ansible之四 Ad hoc與命令執行模組

ad hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令會使用playbook。ad hoc的執行依賴於模組,ansible官方提供了大量的模組。如 command raw shell file cron等,具體可以通過ansible doc l 進行檢視 可以使用...

Ansible4 Ad hoc與命令執行模組

目錄命令執行模組 ad hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令會使用playbook。ad hoc的執行依賴於模組,ansible官方提供了大量的模組。如 command raw shell file cron等,具體可以通過ansible doc l ...