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

2021-09-20 23:54:45 字數 1788 閱讀 1253

ad-hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令會使用playbook。ad-hoc的執行依賴於模組,ansible官方提供了大量的模組。 如:command、raw、shell、file、cron等,具體可以通過ansible-doc -l 進行檢視 。可以使用ansible-doc -s module來檢視某個模組的引數,也可以使用ansible-doc help module來檢視該模組更詳細的資訊。

1、命令說明

乙個ad-hoc命令的執行,需要按以下格式進行執行:

ansible 主機或組-m 模組名-a '模組引數'  ansible引數

2、後台執行

當命令執行時間比較長時,也可以放到後台執行,使用-b、-p引數,如下:

ansible all -b 3600-a "/usr/bin/long_running_operation --do-stuff" #後台執行命令3600s,-b 表示後台執行的時間

ansible all -m async_status -a "jid=123456789"  #檢查任務的狀態

ansible all -b 1800-p 60-a "/usr/bin/long_running_operation --do-stuff" #後台執行命令最大時間是1800s即30分鐘,-p 每60s檢查下狀態,預設15s

命令執行模組包含如下 四個模組:

注:raw模組和comand、shell 模組不同的是其沒有chdir、creates、removes引數,chdir引數的作用就是先切到chdir指定的目錄後,再執行後面的命令,這在後面很多模組裡都會有該引數 。

command模組包含如下選項: 

使用chdir的示例:

ansible 192.168.1.1 -m command -a 'chdir=/tmp/test.txt touch test.file'

ansible 192.168.1.1 -m shell -a 'chdir=/tmp/test.txt touch test2.file'

ansible 192.168.1.1 -m raw -a 'chdir=/tmp/text.txt touch test3.file'

三個命令都會返回執行成功的狀態。不過實際上只有前兩個檔案會被建立成功。

使用raw模組的執行的結果檔案事實上也被正常建立了,不過不是在chdir指定的目錄,而是在當前執行使用者的家目錄。

creates與removes示例:

ansible 192.168.1.1 -a 'creates=/tmp/server.txt uptime' #當/tmp/server.txt檔案存在時,則不執行uptime指令

ansible 192.168.1.1 -a 'removes=/tmp/server.txt uptime' #當/tmp/server.txt檔案不存在時,則不執行uptime指令

script模組示例:

要執行的指令碼檔案script.sh內容如下:

#/bin/bash

ifconfig

df -ht

執行ansible指令:ansible 10.212.52.252 -m script -a 'script.sh' |egrep '>>|stdout'

本文出自 「

無名小卒

」 部落格,請務必保留此出處

Ansible4 Ad hoc與命令執行模組

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

Ansible 小手冊系列 七(Ad hoc)

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

二 Ansible的Ad hoc介紹篇

稱為臨時命令,簡單說,就是在命令列介面,直接通過一條ansible命令,去指定主機執行指定指令,功能有限 例如 ansible localhost m command a df h usage ansible options 主機或主機組,被執行的客戶端裝置,必填項 option m module ...