能夠經過 ansible -h
來查看幫助,下面咱們列出一些比較經常使用的選項,並解釋其含義:web
-a MODULE_ARGS
##模塊的參數,若是執行默認COMMAND的模塊,便是命令參數,如: 「date」,「pwd」等等 -k
,--ask-pass
#ask for SSH password。登陸密碼,提示輸入SSH密碼而不是假設基於密鑰的驗證 --ask-su-pass
#ask for su password。su切換密碼 -K
,--ask-sudo-pass
#ask for sudo password。提示密碼使用sudo,sudo表示提權操做 --ask-vault-pass
#ask for vault password。假設咱們設定了加密的密碼,則用該選項進行訪問 -B SECONDS
#後臺運行超時時間 -C
#模擬運行環境並進行預運行,能夠進行查錯測試 -c CONNECTION
#鏈接類型使用 -f FORKS
#並行任務數,默認爲5 -i INVENTORY
#指定主機清單的路徑,默認爲/etc/ansible/hosts
--list-hosts
#查看有哪些主機組 -m MODULE_NAME
#執行模塊的名字,默認使用 command 模塊,因此若是是隻執行單一命令能夠不用 -m參數 -o
#壓縮輸出,嘗試將全部結果在一行輸出,通常針對收集工具使用 -S
#用 su 命令 -R SU_USER
#指定 su 的用戶,默認爲 root 用戶 -s
#用 sudo 命令 -U SUDO_USER
#指定 sudo 到哪一個用戶,默認爲 root 用戶 -T TIMEOUT
#指定 ssh 默認超時時間,默認爲10s,也可在配置文件中修改 -u REMOTE_USER
#遠程用戶,默認爲 root 用戶shell
-v
#查看詳細信息,同時支持-vvv
,-vvvv
可查看更詳細信息ssh
ansible all -m ping工具
這個模塊能夠直接在遠程主機上執行命令,並將結果返回本主機。即 ssh 鏈接了遠程的操控的主機,由於以前配置了免密登陸,所以能夠鏈接。而後登陸到遠程主機以後,在遠程主機上執行後面的操做的命令。測試
ansible web -m command -a 'hostname'fetch
下面來看一看該模塊下經常使用的幾個命令:加密
chdir ##在執行命令以前,先切換到指定的目錄下spa
executable ##切換shell來執行命令,須要使用命令的絕對路徑code
free_form ##要執行的Linux指令,通常使用Ansible的-a參數代替。orm
creates ##一個文件名,當這個文件存在,則該命令不執行,能夠用來作判斷
removes ##一個文件名,這個文件不存在,則該命令不執行
示例:
ansible web -m command -a 'chdir=/data/ ls' ##先切換到 /data/ 目錄下,再執行 ls 命令
ansible web -m command -a 'creates=/data/aaa.jpg ls' ##若是 /data/aaa.jpg 存在,則不執行 ls 命令
ansible web -m command -a 'removes=/data/aaa.jpg cat /data/a' ##若是/data/aaa.jpg存在,則執行 cat 後面的操做
shell模塊能夠在遠程主機上調用shell解釋器運行命令,支持shell的各類功能,例如管道等。只要是shell命令,均可以經過這個模塊在遠程主機上運行。
示例:ansible web -m shell -a ' cat /etc/passwd |grep root '
這個模塊用於將文件複製到遠程主機,同時支持給定內容生成文件和修改權限等。
其相關選項以下:
src
#被複制到遠程主機的本地文件。能夠是絕對路徑,也能夠是相對路徑。若是路徑是一個目錄,則會遞歸複製,用法相似於"rsync" content
#用於替換"src",能夠直接指定文件的值 dest
#必選項,將源文件複製到的遠程主機的絕對路徑
backup
#當文件內容發生改變後,在覆蓋以前把源文件備份,備份文件包含時間信息
directory_mode
#遞歸設定目錄的權限,默認爲系統默認權限 force
#當目標主機包含該文件,但內容不一樣時,設爲"yes",表示強制覆蓋;設爲"no",表示目標主機的目標位置不存在該文件才複製。默認爲"yes" others
#全部的 file 模塊中的選項能夠在這裏使用
示例:
ansible web -m copy -a 'src=/mnt/hello dest=/data/hello' ##將本機的 /mnt/hello 文件複製到遠程主機的 /data/hello 下
ansible web -m copy -a 'content="I am keer\n" dest=/data/name mode=666'
ansible web -m shell -a 'ls -l /data/' ##能夠查看上面的文件的權限是不是設定的 666
ansible web -m copy -a 'content="I am keerya\n" backup=yes dest=/data/name mode=666' ##覆蓋源文件前,backup 備份一下
該模塊主要用於設置文件的屬性,好比建立文件、建立連接文件、刪除文件等。
下面是一些常見的命令:
force
##須要在兩種狀況下強制建立軟連接,一種是源文件不存在,但以後會創建的狀況下;另外一種是目標軟連接已存在,須要先取消以前的軟鏈,而後建立新的軟鏈,有兩個選項:yes|no group
##定義文件/目錄的屬組。後面能夠加上mode
:定義文件/目錄的權限 owner
##定義文件/目錄的屬主。後面必須跟上path
:定義文件/目錄的路徑 recurse
##遞歸設置文件的屬性,只對目錄有效,後面跟上src
:被連接的源文件路徑,只應用於state=link
的狀況 dest
##被連接到的路徑,只應用於state=link
的狀況
state
##狀態,有如下選項:
directory
:若是目錄不存在,就建立目錄 file
:即便文件不存在,也不會被建立 link
:建立軟連接 hard
:建立硬連接 touch
:若是文件不存在,則會建立一個新的文件,若是文件或目錄已存在,則更新其最後修改時間 absent
:刪除目錄、文件或者取消連接文件
示例:
ansible web -m file -a 'path=/data/bbb.jpg src=aaa.jpg state=link'
ansible web -m file -a 'path=/data/a state=absent' ##刪除前面的文件
該模塊用於從遠程某主機獲取(複製)文件到本地。
dest
:用來存放文件的目錄 src
:在遠程拉取的文件,而且必須是一個file,不能是目錄
示例:
ansible web -m fetch -a 'src=/data/hello dest=/data'