ansible-doc -l |grep 模塊名 //模塊搜索
ansible-doc 模塊名 =============> /EXAMPLE //查看幫助
針對於普通用戶在命令行執行ansible命令:
ansible 主機或主機集合 -m 模塊 -u 普通用戶 -a '遠程命令' -become=true
eg:
ansible 10.10.31.100 -m apt -a 'name="safe-rm" state=present' -become=true
在ansible.cfg配置文件的同級目錄下執行
1.command模塊: 遠程執行命令,並返回結果到ansible主機
ansible 主機或主機集合 -m(模塊) command -a(命令) '遠程命令'
“<” ,“>”, “|”(管道), “;", “&”,“ $” 都只能在shell模塊中執行,該模塊不支持|管道命令
- chdir:切換目錄
ansible 主機 -m command -a 'chdir=/opt/test ls' //切換目錄執行命令
- creates:當文件存在則不執行命令,可用於判斷,不會真的創建
ansible 主機 -m command -a 'creates=/opt/test ls' //目錄存在則不執行命令
- removes:當文件不存在則不執行命令,可用於判斷,不會真的刪除
ansible 主機 -m command -a 'removes=/opt/test ls' //目錄如果不存在,則不執行命令
2.shell模塊:同於command模塊 ,但shell模塊是通過調用遠程主機的shell解釋器執行命令的,可以執行shell的各種功能命令
eg:
ansible webs -m shell -a 'echo ${HOSTNAME}' //取消本地的結果輸出,直接在ansible遠程主機上執行echo ${HOSTNAME}
ansible webs -m shell -a "echo ${HOSTNAME}" //在本機事先執行echo ${HOSTNAME},再輸出到遠程的ansible被管理主機上
3.yum模塊
ansible 主機或主機集合 -m yum -a 'name=軟件包名 state=狀態'
installed \removed
4.service模塊
ansible 主機或主機集合 -m service -a 'name=服務名 enabled=yes\no state=狀態’
開機是否自啟 state: started stopped restarted reloaded
5.copy模塊:同於rsync 中的/ //只能拷貝文件,或壓縮包
/opt/test/ /mnt 把/opt/test/下的內容拷貝到/mnt下
/opt/test /mnt 把/opt下的test拷貝到/mnt下
ansible 主機或主機集合 -m copy -a 'src=本地文件 dest=ansible遠程主機文件路徑'
- content:用於替換src,可以直接指定文件的值
ansible 主機集合 -m copy -a 'content="內容信息\n" dest=目標路徑 mode=0644'
6.fetch模塊 從遠程拷貝文件到本機 //只能拷貝文件,或壓縮包
ansible 主機或主機集合 -m fetch -a "src=遠程主機上的文件 dest=本機路徑
force=yes 強制復制文件。YES:覆蓋,NO:遠程主機存在不復制
backup=yes" 備份源文件,備份文件包含時間信息
7.lineinfile模塊 : 類似於sed中的s(替換)
ansible 主機或主機集合 -m lineinfile -a
'path=要修改的文件 "/etc/my.cnf"
regexp="正則表達式 " "^binlog_format"
line="替換的新值 " ' "binlog_format=row"
8.replace模塊 修改匹配的字段
ansible 主機或主機集合 -m replace -a
'path=修改文件 "/etc/my.cnf"
regexp=正則表達式 "row"
replace=替換的新值' "mixed"
9.setup模塊 (用於獲取主機的信息)
ansible 主機或主機集合 -m setup
eg:
ansible webs -m setup -a 'filter= 過濾條件’ filter只能是過濾某個字段的信息,
====ansible webs -m setup|grep 過濾條件
ansible 主機集合 -m setup|grep 過濾條件 --tree /opt/data //將setup的過濾信息保存到文件中,文件名為托管主機IP或域名
ansible主機上自動創建
10.script模塊
幫助我們在遠程主機上執行 ansible 管理主機上的腳本,也就是說,腳本一直存在於 ansible 管理主機本地,不需要手動拷貝到遠程主機后再執行
ansible 主機或主機集合 -m script -a '腳本絕對路徑'
11.file模塊
ansible 主機或主機集合 -m file -a 'path=目錄或文件路徑 state=狀態’
recurse:是否遞歸
state:
directory:目錄,不存在則創建
file:文件,不存在也不創建
link:創建軟鏈接 dest=指定鏈接的路徑
hard:創建硬鏈接
touch:文件不存在的時候,創建一個新的文件
absent:刪除目錄、文件或者是取消鏈接文件
link:創建軟連接 ln -s
ansible 主機集合 -m file -a 'path=目標路徑/連接文件名 src=源鏈接的文件 state=link'
ansible wwe -m file -a 'path=/usr/bin/rm src=/usr/bin/safe-rm state=link force=yes' -become=true
==ln -s /usr/bin/safe-rm /usr/bin/rm
force=yes :強制覆蓋
-become=true :成為root用戶執行