Linux運(yùn)維-day44-綜合架構(gòu)-ansible常用模塊整理

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ǔ)充……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容