ansible查看幫助方法
ansible-doc copy:查詢指定某個模塊參數(shù)用法信息
ansible-doc -l:查看所有模塊說明信息
官網(wǎng)查詢幫助:https://docs.ansible.com/
注:參數(shù)上帶required表示這個參數(shù)必須要有
調(diào)試,打印出所有任務:ansible-playbook 劇本名 --list-tasks
從指定任務執(zhí)行:ansible-playbook 劇本名 --start-at-task=mkdir
1、command(命令模塊)----默認模塊筛峭,可以省略
[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(命令模塊):支持特殊符號、支持腳本
\\\批量更新backup贰逾、web01荐吵、nfs01三臺主機的時間
[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三臺主機的時間
[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(復制模塊)
參數(shù):
?src:源,文件從哪里來
?dest:目標茅逮,復制到遠程哪里去
?owner:所有者
?group:用戶組
?mode:權限
?backup:是否備份璃赡,對遠端已有的數(shù)據(jù)
?content:向被批量推送的文件中添加內(nèi)容判哥,與src沖突,只能二選一
\\將管理機/etc/hostname推送到backup碉考、web01塌计、nfs01三臺主機的/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ù)椒掌骱钏缓髨?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:關閉或刪除
???latest:更新
\\\批量更新backup、web01墙贱、nfs01這三臺機器的tree命令
[root@m01 ~]# ansible all -m yum -a "name=tree state=latest"
6热芹、file(文件配置模塊):相當于touch、mkdir惨撇、ln伊脓、rm,不支持通配符
參數(shù):
?path:指定路徑或文件名**
?state:指定文件創(chuàng)建的類型
???directory:在遠端創(chuàng)建目錄
???touch:在遠端創(chuàng)建文件**
???link:link或hard表示創(chuàng)建鏈接文件
???absent:刪除文件或目錄
?mode:設置文件或目錄權限
?owner:設置文件或目錄屬主信息
?group:設置文件或目錄屬組信息
\\\批量創(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(服務模塊):關閉报腔、開啟、重啟
參數(shù)
name:指定要啟動服務的名稱
state:指定服務啟動狀態(tài)
??started:啟動服務
??stopped:停止服務
??restarted:重啟服務
??reloaded:重載服務
enabled:開機自啟(yes或no)
ansible all -m service -a 'name=crond state=started enabled=yes'
8剖淀、group(組模塊)
name:指定創(chuàng)建的組名
gid:指定組的gid
state
??absent:移除遠端主機的組
??present:創(chuàng)建遠端主機的組(默認)
\\\創(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ù):
name:指定定時任務的注釋
minute:分鐘(0-59茅撞,,/2)
month:月份(1-12巨朦,米丘,/2)
job:指定定時任務的命令或腳本
hour:小時(0-23,糊啡,/2)
day:天(0-31拄查,,/2)
weekday:分鐘(0-6棚蓄,*)
state:
??present:添加定時任務
??absent:刪除定時任務
#在backup和nfs01機器中添加一個定時任務每5分鐘同步系統(tǒng)時間
\\正常定時任務格式:
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1
\\ansible定時任務模塊格式:
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(掛載模塊)
注:測試這個掛載模塊之前,一定要先在nfs01上配置好nfs
參數(shù):
?fstype:文件系統(tǒng)類型
?src:source 源
?path:掛載點
?opts:掛載參數(shù)梭依,defaults(默認)
?state:狀態(tài)(臨時稍算、永久)
???present:開機掛載,僅將掛載設備寫入/etc/fstab
???mounted:掛載設備役拴,并將配置寫入/etc/fstab
???unmounted:卸載設備糊探,不會清除/etc/fstab寫入的配置
???absent:卸載設備,會清除/etc/fstab寫入的配置
#將nfs01機器上的共享目錄/nfs掛載到web01機器上的/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:要打包的文件或目錄(絕對路徑)
?dest:打包到哪里
- name: tar /etc
archive:
path: /etc
dest: "{{ dirs }}/{{ ipaddr.stdout }}/etc-{{ time.stdout }}.tar.gz"
后續(xù)遇到在補充……