ansible查看幫助方法
ansible-doc copy:查詢指定某個(gè)模塊參數(shù)用法信息
ansible-doc -l:查看所有模塊說(shuō)明信息
官網(wǎng)查詢幫助:https://docs.ansible.com/
注:參數(shù)上帶required表示這個(gè)參數(shù)必須要有
調(diào)試,打印出所有任務(wù):ansible-playbook 劇本名 --list-tasks
從指定任務(wù)執(zhí)行:ansible-playbook 劇本名 --start-at-task=mkdir
1、command(命令模塊)----默認(rèn)模塊,可以省略
[root@m01 ~]# ansible oldboy -m command -a 'hostname'
172.16.1.31 | CHANGED | rc=0 >>
nfs01
172.16.1.7 | CHANGED | rc=0 >>
web01
172.16.1.41 | CHANGED | rc=0 >>
backup
2、shell(命令模塊):支持特殊符號(hào)、支持腳本
\\\批量更新backup、web01、nfs01三臺(tái)主機(jī)的時(shí)間
[root@m01 ~]# ansible all -m shell -a 'ntpdate ntp1.aliyun.com'
172.16.1.41 | CHANGED | rc=0 >>
28 May 20:29:20 ntpdate[10115]: step time server 120.25.115.20 offset 2.786290 sec
172.16.1.31 | CHANGED | rc=0 >>
28 May 20:29:20 ntpdate[9550]: step time server 120.25.115.20 offset 2.787557 sec
172.16.1.7 | CHANGED | rc=0 >>
28 May 20:29:21 ntpdate[9685]: step time server 120.25.115.20 offset 2.787166 sec
[root@m01 ~]#
\\\檢查backup、web01、nfs01三臺(tái)主機(jī)的時(shí)間
[root@m01 ~]# ansible all -m shell -a 'date'
172.16.1.31 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
172.16.1.7 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
172.16.1.41 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
[root@m01 ~]#
3、copy(復(fù)制模塊)
參數(shù):
?src:源,文件從哪里來(lái)
?dest:目標(biāo),復(fù)制到遠(yuǎn)程哪里去
?owner:所有者
?group:用戶組
?mode:權(quán)限
?backup:是否備份,對(duì)遠(yuǎn)端已有的數(shù)據(jù)
?content:向被批量推送的文件中添加內(nèi)容,與src沖突,只能二選一
\\將管理機(jī)/etc/hostname推送到backup、web01、nfs01三臺(tái)主機(jī)的/tmp/下
[root@m01 ~]# ansible all -m copy -a 'src=/etc/hostname dest=/tmp/hostname'
\\檢查是否成功
[root@m01 ~]# ansible all -m shell -a 'cat /tmp/hostname'
172.16.1.41 | CHANGED | rc=0 >>
m01
172.16.1.7 | CHANGED | rc=0 >>
m01
172.16.1.31 | CHANGED | rc=0 >>
m01
[root@m01 ~]#
4、scripts(腳本模塊):先把腳本傳輸?shù)椒?wù)器,然后執(zhí)行
[root@m01 ~]# #ansible all -m script -a "/server/scripts/yum.sh"
[root@m01 ~]# ansible all -a 'rpm -qa ipvsadm'
[WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'. If you need to use command because
yum, dnf or zypper is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in
ansible.cfg to get rid of this message. \\就是告訴你安裝命令yum也可以支持
172.16.1.41 | CHANGED | rc=0 >>
ipvsadm-1.27-7.el7.x86_64
172.16.1.7 | CHANGED | rc=0 >>
ipvsadm-1.27-7.el7.x86_64
5、yum(軟件安裝模塊)
參數(shù)
?name:指定要安裝的軟件包名稱
?state:指定使用yum的方法
???present:安裝
???absent:關(guān)閉或刪除
???latest:更新
\\\批量更新backup、web01、nfs01這三臺(tái)機(jī)器的tree命令
[root@m01 ~]# ansible all -m yum -a "name=tree state=latest"
6、file(文件配置模塊):相當(dāng)于touch、mkdir、ln、rm,不支持通配符
參數(shù):
?path:指定路徑或文件名**
?state:指定文件創(chuàng)建的類(lèi)型
???directory:在遠(yuǎn)端創(chuàng)建目錄
???touch:在遠(yuǎn)端創(chuàng)建文件**
???link:link或hard表示創(chuàng)建鏈接文件
???absent:刪除文件或目錄
?mode:設(shè)置文件或目錄權(quán)限
?owner:設(shè)置文件或目錄屬主信息
?group:設(shè)置文件或目錄屬組信息
\\\批量創(chuàng)建目錄
[root@m01 ~]# ansible all -m file -a 'path=/tmp/a state=directory mode=555 owner=root group=root '
\\\批量創(chuàng)建文件
[root@m01 ~]# ansible all -m file -a "path=/data/a/b/c/oldboy.txt state=touch"
7、serivce(服務(wù)模塊):關(guān)閉、開(kāi)啟、重啟
參數(shù)
name:指定要啟動(dòng)服務(wù)的名稱
state:指定服務(wù)啟動(dòng)狀態(tài)
??started:?jiǎn)?dòng)服務(wù)
??stopped:停止服務(wù)
??restarted:重啟服務(wù)
??reloaded:重載服務(wù)
enabled:開(kāi)機(jī)自啟(yes或no)
ansible all -m service -a 'name=crond state=started enabled=yes'
8、group(組模塊)
name:指定創(chuàng)建的組名
gid:指定組的gid
state
??absent:移除遠(yuǎn)端主機(jī)的組
??present:創(chuàng)建遠(yuǎn)端主機(jī)的組(默認(rèn))
\\\創(chuàng)建oldgirl的用戶組
[root@m01 ~]# ansible all -m group -a 'name=oldgirl gid=888'
9、user(用戶模塊)
參數(shù)
?name
?uid
?group
?shell:指定命令解釋器
?create_home:是否創(chuàng)建家目錄
\\\創(chuàng)建用戶oldgirl指定uid和gid 888,不創(chuàng)建家目錄也不允許登陸
ansible all -m user -a 'name=oldgirl uid=888 group=oldgirl shell=/sbin/nologin create_home=no '
\\\檢查
[root@m01 ~]# ansible all -m shell -a 'grep "oldgirl" /etc/passwd'
172.16.1.41 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
172.16.1.31 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
172.16.1.7 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
[root@m01 ~]#
10、cron(定時(shí)任務(wù)模塊)
參數(shù):
name:指定定時(shí)任務(wù)的注釋
minute:分鐘(0-59,,/2)
month:月份(1-12,,/2)
job:指定定時(shí)任務(wù)的命令或腳本
hour:小時(shí)(0-23,,/2)
day:天(0-31,,/2)
weekday:分鐘(0-6,*)
state:
??present:添加定時(shí)任務(wù)
??absent:刪除定時(shí)任務(wù)
#在backup和nfs01機(jī)器中添加一個(gè)定時(shí)任務(wù)每5分鐘同步系統(tǒng)時(shí)間
\\正常定時(shí)任務(wù)格式:
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1
\\ansible定時(shí)任務(wù)模塊格式:
ansible oldboy -m cron -a 'name="sync time" minute="*/5" job="/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1" state=present'
11、mount(掛載模塊)
注:測(cè)試這個(gè)掛載模塊之前,一定要先在nfs01上配置好nfs
參數(shù):
?fstype:文件系統(tǒng)類(lèi)型
?src:source 源
?path:掛載點(diǎn)
?opts:掛載參數(shù),defaults(默認(rèn))
?state:狀態(tài)(臨時(shí)、永久)
???present:開(kāi)機(jī)掛載,僅將掛載設(shè)備寫(xiě)入/etc/fstab
???mounted:掛載設(shè)備,并將配置寫(xiě)入/etc/fstab
???unmounted:卸載設(shè)備,不會(huì)清除/etc/fstab寫(xiě)入的配置
???absent:卸載設(shè)備,會(huì)清除/etc/fstab寫(xiě)入的配置
#將nfs01機(jī)器上的共享目錄/nfs掛載到web01機(jī)器上的/upload
\\正常mount掛載命令:
mount -t nfs 172.16.1.31:/data /web01
\\ansible中mount模塊命令
ansible 172.16.1.7 -m mount -a 'src=172.16.1.31:/nfs path=/upload fstype=nfs state=mounted'
12、archive(打包壓縮模塊)
參數(shù):
?path:要打包的文件或目錄(絕對(duì)路徑)
?dest:打包到哪里
- name: tar /etc
archive:
path: /etc
dest: "{{ dirs }}/{{ ipaddr.stdout }}/etc-{{ time.stdout }}.tar.gz"
后續(xù)遇到在補(bǔ)充……