模塊 作用
command 執(zhí)行命令
shell 執(zhí)行命令(支持管道符)
yum 安裝軟件模塊
copy 配置模塊
service 啟動服務(wù)模塊
user 用戶管理
file 創(chuàng)建目錄卵史,創(chuàng)建文件砚哆,往文件寫內(nèi)容
cron 定時(shí)任務(wù)
mount 掛載
command命令模塊
默認(rèn)模塊, 執(zhí)行命令
[root@m01 ~]# ansible oldboy -a "hostname"
如果需要一些管道操作租冠,則使用shell
[root@m01 ~]# ansible oldboy -m shell -a "ifconfig|grep eth0" -f 50
-f =forks /etc/ansible/ansible.cfg #結(jié)果返回的數(shù)量
yum安裝模塊
推送腳本文件至遠(yuǎn)程列荔,遠(yuǎn)程執(zhí)行腳本文件
[root@m01 ~]# ansible oldboy -m yum -a "name=httpd state=installed"
name ---指定要安裝的軟件包名稱
state ---指定使用yum的方法
installed主经,present ---安裝軟件包
removed,absent ---移除軟件包
latest ---安裝最新軟件包
copy模塊
推送文件模塊
[root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/tmp/test.txt owner=www group=www mode=0600"
在推送覆蓋遠(yuǎn)程端文件前膊爪,對遠(yuǎn)端已有文件進(jìn)行備份征堪,按照時(shí)間信息備份
[root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/tmp/test.txt backup=yes"
直接向遠(yuǎn)端文件內(nèi)寫入數(shù)據(jù)信息,并且會覆蓋遠(yuǎn)端文件內(nèi)原有數(shù)據(jù)信息
[root@m01 ~]# ansible oldboy -m copy -a "content='bgx' dest=/tmp/oldboy"
copy模塊主要參數(shù)
src — 推送數(shù)據(jù)的源文件信息
dest — 推送數(shù)據(jù)的目標(biāo)路徑
backup — 對推送傳輸過去的文件背桐,進(jìn)行備份
content — 直接批量在被管理端文件中添加內(nèi)容
group — 將本地文件推送到遠(yuǎn)端优烧,指定文件屬組信息
owner — 將本地文件推送到遠(yuǎn)端,指定文件屬主信息
mode — 將本地文件推送到遠(yuǎn)端链峭,指定文件權(quán)限信息
force — 分為force=no或yes畦娄,如果目標(biāo)主機(jī)包含該文件,但內(nèi)容不同弊仪,設(shè)置為yes熙卡,則強(qiáng)制覆蓋,如果為no撼短,則只有當(dāng)目標(biāo)主機(jī)的目標(biāo)位置不存在該文件時(shí)再膳,才復(fù)制。默認(rèn)為yes
service服務(wù)模塊
[root@m01 ~]# ansible oldboy -m service -a "name=crond state=stopped enabled=yes"
主要參數(shù)
name — 定義要啟動服務(wù)的名稱
state — 指定服務(wù)狀態(tài)是停止或是運(yùn)行
started — 啟動
stopped — 停止
restarted — 重啟
reloaded — 重載
enabled — 是否讓服務(wù)開啟自啟動
1.安裝
[root@m01 ~]# ansible web -m yum -a "name=httpd state=installed"
2.配置
[root@m01 ~]# ansible web -m copy -a "content='This is Ansible' dest=/var/www/html/index.html"
3.啟動
[root@m01 ~]# ansible web -m service -a "name=httpd state=started"
script模塊
編寫腳本
[root@m01 ~]# mkdir -p /server/scripts
[root@m01 ~]# cat /server/scripts/yum.sh
#!/usr/bin/bash
yum install -y iftop
在本地運(yùn)行模塊曲横,等同于在遠(yuǎn)程執(zhí)行喂柒,不需要將腳本文件進(jìn)行推送目標(biāo)主機(jī)執(zhí)行
[root@m01 ~]# ansible oldboy -m script -a “/server/scripts/yum.sh”
file配置模塊
創(chuàng)建目錄
[root@m01 ~]# ansible oldboy -m file -a “path=/tmp/oldboy state=diretory”
創(chuàng)建文件
[root@m01 ~]# ansible oldboy -m file -a “path=/tmp/tt state=touch mode=555 owner=root group=root”
[root@m01 ~]# ansible oldboy -m file -a “src=/tmp/tt path=/tmp/tt_link state=link”
path — 指定遠(yuǎn)程主機(jī)目錄或文件信息
recurse — 遞歸授權(quán)
state —
directory — 在遠(yuǎn)端創(chuàng)建目錄
touch — 在遠(yuǎn)端創(chuàng)建文件
link — link或hard表示創(chuàng)建鏈接文件
absent — 表示刪除文件或目錄
mode — 設(shè)置文件或目錄權(quán)限
owner — 設(shè)置文件或目錄屬主信息
group — 設(shè)置文件或目錄屬組信息
group模塊
name — 指定創(chuàng)建的組名
gid — 指定組的gid
state
absent — 移除遠(yuǎn)端主機(jī)的組
present — 創(chuàng)建遠(yuǎn)端主機(jī)的組(默認(rèn))
創(chuàng)建組,指定gid
[root@m01 ~]# ansible oldboy -m group -a “name=oldgirl gid=888”
user模塊
uid — 指定用戶的uid
group — 指定用戶組名稱
groups — 指定附加組名稱
password — 給用戶添加密碼
shell — 指定用戶登錄shell
create_home — 是否創(chuàng)建家目錄
創(chuàng)建oldgirl禾嫉,設(shè)定uid為888灾杰,并加入gid為888
[root@m01 ~]# ansible oldboy -m user -a “name=oldgirl uid=888 group=888 shell=/sbin/nologin create_home=no”
隨機(jī)生成加密字符串(-1使用MD5進(jìn)行加密 -stdin 非交互式 -salt 加密參數(shù))
[root@m01 ~]# echo “bgx” | openssl passwd -1 -stdin
固定加密字符串
[root@m01 ~]# echo “123”| openssl passwd -1 -stdin -salt ‘salt
創(chuàng)建普通用戶,并配置對應(yīng)的用戶密碼
[root@m01 ~]# echo “bgx” | openssl passwd -1 -stdin
$1$1KmeCnsK$HGnBE86F/XkXufL.n6sEb.
[root@m01 ~]# ansible oldboy -m user -a ‘name=xlw password=”$1$765yDGau$diDKPRoCIPMU6KEVEaPTZ0″‘
crond模塊
正常使用crond服務(wù)
[root@m01 ~]# crontab -l
* * * * * /bin/sh /server/scripts/yum.sh
使用ansible添加一條定時(shí)任務(wù)
[root@m01 ~]# ansible oldboy -m cron -a “minute=* hour=* day=* month=* weekday=* job=’/bin/sh /server/scripts/test.sh'”
[root@m01 ~]# ansible oldboy -m cron -a “job=’/bin/sh /server/scripts/test.sh'”
設(shè)置定時(shí)任務(wù)注釋信息熙参,防止重復(fù)艳吠,name設(shè)定
[root@m01 ~]# ansible oldboy -m cron -a “name=’cron01′ job=’/bin/sh /server/scripts/test.sh'”
刪除相應(yīng)定時(shí)任務(wù)
[root@m01 ~]# ansible oldboy -m cron -a “name=’ansible cron02′ minute=0 hour=0 job=’/bin/sh /server/scripts/test.sh’ state=absent”
注釋相應(yīng)定時(shí)任務(wù),使定時(shí)任務(wù)失效
[root@m01 scripts]# ansible oldboy -m cron -a “name=’ansible cron01′ minute=0 hour=0 job=’/bin/sh /server/scripts/test.sh’ disabled=yes”
mount模塊
present —開機(jī)掛載孽椰,僅將掛載配置寫入/etc/fstab
mounted —掛載設(shè)備昭娩,并將配置寫入/etc/fstab
unmounted —卸載設(shè)備,不會清除/etc/fstab寫入的配置
absent —卸載設(shè)備黍匾,會清理/etc/fstab寫入的配置
僅將掛載的配置寫入/etc/fstab栏渺,并不會執(zhí)行掛載操作
[root@m01 ~]# ansible oldboy -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=present"
臨時(shí)掛載設(shè)備,并將掛載信息寫入/etc/fstab
[root@m01 ~]# ansible web -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"
臨時(shí)卸載锐涯,不會清理/etc/fstab
[root@m01 ~]# ansible web -m mount -a “src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=unmounted”
卸載磕诊,不僅臨時(shí)卸載,同時(shí)會清理/etc/fstab
[root@m01 ~]# ansible web -m mount -a “src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=absent”