版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第python開發(fā)的自動化運(yùn)維工具ansible詳解[root@server~]#ansibleweb-mcommand-a'removes=/data/aaa.jpgcat/data/a'#如果/data/aaa.jpg存在,則執(zhí)行“cat/data/a”命令
192.168.37.122|SUCCESS|rc=0
hello
192.168.37.133|SUCCESS|rc=0
hello
3)shell模塊
shell模塊可以在遠(yuǎn)程主機(jī)上調(diào)用shell解釋器運(yùn)行命令,支持shell的各種功能,例如管道等。
[root@server~]#ansibleweb-mshell-a'cat/etc/passwd|grep"keer"'
192.168.37.122|SUCCESS|rc=0
keer:x:10001:1000:keer:/home/keer:/bin/sh
192.168.37.133|SUCCESS|rc=0
keer:x:10001:10001::/home/keer:/bin/sh
只要是我們的shell命令,都可以通過這個模塊在遠(yuǎn)程主機(jī)上運(yùn)行,這里就不一一舉例了。
4)copy模塊
這個模塊用于將文件復(fù)制到遠(yuǎn)程主機(jī),同時支持給定內(nèi)容生成文件和修改權(quán)限等。
其相關(guān)選項(xiàng)如下:
src#被復(fù)制到遠(yuǎn)程主機(jī)的本地文件??梢允墙^對路徑,也可以是相對路徑。如果路徑是一個目錄,則會遞歸復(fù)制,用法類似于"rsync"
content#用于替換"src",可以直接指定文件的值
dest#必選項(xiàng),將源文件復(fù)制到的遠(yuǎn)程主機(jī)的絕對路徑
backup#當(dāng)文件內(nèi)容發(fā)生改變后,在覆蓋之前把源文件備份,備份文件包含時間信息
directory_mode#遞歸設(shè)定目錄的權(quán)限,默認(rèn)為系統(tǒng)默認(rèn)權(quán)限
force#當(dāng)目標(biāo)主機(jī)包含該文件,但內(nèi)容不同時,設(shè)為"yes",表示強(qiáng)制覆蓋;設(shè)為"no",表示目標(biāo)主機(jī)的目標(biāo)位置不存在該文件才復(fù)制。默認(rèn)為"yes"
others#所有的file模塊中的選項(xiàng)可以在這里使用
用法舉例如下:
①復(fù)制文件:
[root@server~]#ansibleweb-mcopy-a'src=~/hellodest=/data/hello'
192.168.37.122|SUCCESS={
"changed":true,
"checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"dest":"/data/hello",
"gid":0,
"group":"root",
"md5sum":"6f5902ac237024bdd0c176cb93063dc4",
"mode":"0644",
"owner":"root",
"size":12,
"src":"/root/.ansible/tmp/ansible-tmp-1512437093.55-228281064292921/source",
"state":"file",
"uid":0
192.168.37.133|SUCCESS={
"changed":true,
"checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"dest":"/data/hello",
"gid":0,
"group":"root",
"md5sum":"6f5902ac237024bdd0c176cb93063dc4",
"mode":"0644",
"owner":"root",
"size":12,
"src":"/root/.ansible/tmp/ansible-tmp-1512437093.74-44694985235189/source",
"state":"file",
"uid":0
}
②給定內(nèi)容生成文件,并制定權(quán)限
[root@server~]#ansibleweb-mcopy-a'content="Iamkeer\n"dest=/data/namemode=666'
192.168.37.122|SUCCESS={
"changed":true,
"checksum":"0421570938940ea784f9d8598dab87f07685b968",
"dest":"/data/name",
"gid":0,
"group":"root",
"md5sum":"497fa8386590a5fc89090725b07f175c",
"mode":"0666",
"owner":"root",
"size":10,
"src":"/root/.ansible/tmp/ansible-tmp-1512437327.37-199512601767687/source",
"state":"file",
"uid":0
192.168.37.133|SUCCESS={
"changed":true,
"checksum":"0421570938940ea784f9d8598dab87f07685b968",
"dest":"/data/name",
"gid":0,
"group":"root",
"md5sum":"497fa8386590a5fc89090725b07f175c",
"mode":"0666",
"owner":"root",
"size":10,
"src":"/root/.ansible/tmp/ansible-tmp-1512437327.55-218104039503110/source",
"state":"file",
"uid":0
}
我們現(xiàn)在可以去查看一下我們生成的文件及其權(quán)限:
[root@server~]#ansibleweb-mshell-a'ls-l/data/'
192.168.37.122|SUCCESS|rc=0
total28
-rw-rw-rw-1rootroot12Dec609:45name
192.168.37.133|SUCCESS|rc=0
total40
-rw-rw-rw-1rootroot12Dec509:45name
可以看出我們的name文件已經(jīng)生成,并且權(quán)限為666。
③關(guān)于覆蓋
我們把文件的內(nèi)容修改一下,然后選擇覆蓋備份:
[root@server~]#ansibleweb-mcopy-a'content="Iamkeerya\n"backup=yesdest=/data/namemode=666'
192.168.37.122|SUCCESS={
"backup_file":"/data/name.4394.2017-12-06@09:46:25~",
"changed":true,
"checksum":"064a68908ab9971ee85dbc08ea038387598e3778",
"dest":"/data/name",
"gid":0,
"group":"root",
"md5sum":"8ca7c11385856155af52e560f608891c",
"mode":"0666",
"owner":"root",
"size":12,
"src":"/root/.ansible/tmp/ansible-tmp-1512438383.78-228128616784888/source",
"state":"file",
"uid":0
192.168.37.133|SUCCESS={
"backup_file":"/data/name.5962.2017-12-05@09:46:24~",
"changed":true,
"checksum":"064a68908ab9971ee85dbc08ea038387598e3778",
"dest":"/data/name",
"gid":0,
"group":"root",
"md5sum":"8ca7c11385856155af52e560f608891c",
"mode":"0666",
"owner":"root",
"size":12,
"src":"/root/.ansible/tmp/ansible-tmp-1512438384.0-170718946740009/source",
"state":"file",
"uid":0
}
現(xiàn)在我們可以去查看一下:
[root@server~]#ansibleweb-mshell-a'ls-l/data/'
192.168.37.122|SUCCESS|rc=0
total28
-rw-rw-rw-1rootroot12Dec609:46name
-rw-rw-rw-1rootroot10Dec609:45name.4394.2017-12-06@09:46:25~
192.168.37.133|SUCCESS|rc=0
total40
-rw-rw-rw-1rootroot12Dec509:46name
-rw-rw-rw-1rootroot10Dec509:45name.5962.2017-12-05@09:46:24~
可以看出,我們的源文件已經(jīng)被備份,我們還可以查看一下name文件的內(nèi)容:
[root@server~]#ansibleweb-mshell-a'cat/data/name'
192.168.37.122|SUCCESS|rc=0
Iamkeerya
192.168.37.133|SUCCESS|rc=0
Iamkeerya
證明,這正是我們新導(dǎo)入的文件的內(nèi)容。
5)file模塊
該模塊主要用于設(shè)置文件的屬性,比如創(chuàng)建文件、創(chuàng)建鏈接文件、刪除文件等。
下面是一些常見的命令:
force#需要在兩種情況下強(qiáng)制創(chuàng)建軟鏈接,一種是源文件不存在,但之后會建立的情況下;另一種是目標(biāo)軟鏈接已存在,需要先取消之前的軟鏈,然后創(chuàng)建新的軟鏈,有兩個選項(xiàng):yes|no
group#定義文件/目錄的屬組。后面可以加上mode:定義文件/目錄的權(quán)限
owner#定義文件/目錄的屬主。后面必須跟上path:定義文件/目錄的路徑
recurse#遞歸設(shè)置文件的屬性,只對目錄有效,后面跟上src:被鏈接的源文件路徑,只應(yīng)用于state=link的情況
dest#被鏈接到的路徑,只應(yīng)用于state=link的情況
state#狀態(tài),有以下選項(xiàng):
directory:如果目錄不存在,就創(chuàng)建目錄
file:即使文件不存在,也不會被創(chuàng)建
link:創(chuàng)建軟鏈接
hard:創(chuàng)建硬鏈接
touch:如果文件不存在,則會創(chuàng)建一個新的文件,如果文件或目錄已存在,則更新其最后修改時間
absent:刪除目錄、文件或者取消鏈接文件
用法舉例如下:
①創(chuàng)建目錄:
[root@server~]#ansibleweb-mfile-a'path=/data/appstate=directory'
192.168.37.122|SUCCESS={
"changed":true,
"gid":0,
"group":"root",
"mode":"0755",
"owner":"root",
"path":"/data/app",
"size":6,
"state":"directory",
"uid":0
192.168.37.133|SUCCESS={
"changed":true,
"gid":0,
"group":"root",
"mode":"0755",
"owner":"root",
"path":"/data/app",
"size":4096,
"state":"directory",
"uid":0
}
我們可以查看一下:
[root@server~]#ansibleweb-mshell-a'ls-l/data'
192.168.37.122|SUCCESS|rc=0
total28
drwxr-xr-x2rootroot6Dec610:21app
192.168.37.133|SUCCESS|rc=0
total44
drwxr-xr-x2rootroot4096Dec510:21app
可以看出,我們的目錄已經(jīng)創(chuàng)建完成。
②創(chuàng)建鏈接文件
[root@server~]#ansibleweb-mfile-a'path=/data/bbb.jpgsrc=aaa.jpgstate=link'
192.168.37.122|SUCCESS={
"changed":true,
"dest":"/data/bbb.jpg",
"gid":0,
"group":"root",
"mode":"0777",
"owner":"root",
"size":7,
"src":"aaa.jpg",
"state":"link",
"uid":0
192.168.37.133|SUCCESS={
"changed":true,
"dest":"/data/bbb.jpg",
"gid":0,
"group":"root",
"mode":"0777",
"owner":"root",
"size":7,
"src":"aaa.jpg",
"state":"link",
"uid":0
}
我們可以去查看一下:
[root@server~]#ansibleweb-mshell-a'ls-l/data'
192.168.37.122|SUCCESS|rc=0
total28
-rw-r--r--1rootroot5649Dec513:49aaa.jpg
lrwxrwxrwx1rootroot7Dec610:25bbb.jpg-aaa.jpg
192.168.37.133|SUCCESS|rc=0
total44
-rw-r--r--1rootroot5649Dec414:44aaa.jpg
lrwxrwxrwx1rootroot7Dec510:25bbb.jpg-aaa.jpg
我們的鏈接文件已經(jīng)創(chuàng)建成功。
③刪除文件
[root@server~]#ansibleweb-mfile-a'path=/data/astate=absent'
192.168.37.122|SUCCESS={
"changed":true,
"path":"/data/a",
"state":"absent"
192.168.37.133|SUCCESS={
"changed":true,
"path":"/data/a",
"state":"absent"
}
我們可以查看一下:
[root@server~]#ansibleweb-mshell-a'ls/data/a'
192.168.37.122|FAILED|rc=2
ls:cannotaccess/data/a:Nosuchfileordirectory
192.168.37.133|FAILED|rc=2
ls:cannotaccess/data/a:Nosuchfileordirectory
發(fā)現(xiàn)已經(jīng)沒有這個文件了。
6)fetch模塊
該模塊用于從遠(yuǎn)程某主機(jī)獲?。◤?fù)制)文件到本地。
有兩個選項(xiàng):
dest:用來存放文件的目錄
src:在遠(yuǎn)程拉取的文件,并且必須是一個file,不能是目錄
具體舉例如下:
[root@server~]#ansibleweb-mfetch-a'src=/data/hellodest=/data'
192.168.37.122|SUCCESS={
"changed":true,
"checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"dest":"/data/192.168.37.122/data/hello",
"md5sum":"6f5902ac237024bdd0c176cb93063dc4",
"remote_checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"remote_md5sum":null
192.168.37.133|SUCCESS={
"changed":true,
"checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"dest":"/data/192.168.37.133/data/hello",
"md5sum":"6f5902ac237024bdd0c176cb93063dc4",
"remote_checksum":"22596363b3de40b06f981fb85d82312e8c0ed511",
"remote_md5sum":null
}
我們可以在本機(jī)上查看一下文件是否復(fù)制成功。要注意,文件保存的路徑是我們設(shè)置的接收目錄下的被管制主機(jī)ip目錄下:
[root@server~]#cd/data/
[root@serverdata]#ls
1192.168.37.122192.168.37.133fastdfsweb
[root@serverdata]#cd192.168.37.122
[root@server192.168.37.122]#ls
[root@server192.168.37.122]#cddata/
[root@serverdata]#ls
hello
[root@serverdata]#pwd
/data/192.168.37.122/data
7)cron模塊
該模塊適用于管理cron計劃任務(wù)的。
其使用的語法跟我們的crontab文件中的語法一致,同時,可以指定以下選項(xiàng):
day=#日應(yīng)該運(yùn)行的工作(1-31,*,*/2,)
hour=#小時(0-23,*,*/2,)
minute=#分鐘(0-59,*,*/2,)
month=#月(1-12,*,/2,)
weekday=#周(0-6forSunday-Saturday,,)
job=#指明運(yùn)行的命令是什么
name=#定時任務(wù)描述
reboot#任務(wù)在重啟時運(yùn)行,不建議使用,建議使用special_time
special_time#特殊的時間范圍,參數(shù):reboot(重啟時),annually(每年),monthly(每月),weekly(每周),daily(每天),hourly(每小時)
state#指定狀態(tài),present表示添加定時任務(wù),也是默認(rèn)設(shè)置,absent表示刪除定時任務(wù)
user#以哪個用戶的身份執(zhí)行
舉例如下:
①添加計劃任務(wù)
[root@server~]#ansibleweb-mcron-a'name="ntpupdateevery5min"minute=*/5job="/sbin/ntpdate172.17.0.1/dev/null"'
192.168.37.122|SUCCESS={
"changed":true,
"envs":[],
"jobs":[
"ntpupdateevery5min"
192.168.37.133|SUCCESS={
"changed":true,
"envs":[],
"jobs":[
"ntpupdateevery5min"
}
我們可以去查看一下:
[root@server~]#ansibleweb-mshell-a'crontab-l'
192.168.37.122|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
192.168.37.133|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
可以看出,我們的計劃任務(wù)已經(jīng)設(shè)置成功了。
②刪除計劃任務(wù)
如果我們的計劃任務(wù)添加錯誤,想要刪除的話,則執(zhí)行以下操作:
首先我們查看一下現(xiàn)有的計劃任務(wù):
[root@server~]#ansibleweb-mshell-a'crontab-l'
192.168.37.122|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
#Ansible:dfeveryday
*15***df-lh/tmp/disk_total/dev/null
192.168.37.133|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
#Ansible:dfeveryday
*15***df-lh/tmp/disk_total/dev/null
然后執(zhí)行刪除操作:
[root@server~]#ansibleweb-mcron-a'name="dfeveryday"hour=15job="df-lh/tmp/disk_total/dev/null"state=absent'
192.168.37.122|SUCCESS={
"changed":true,
"envs":[],
"jobs":[
"ntpupdateevery5min"
192.168.37.133|SUCCESS={
"changed":true,
"envs":[],
"jobs":[
"ntpupdateevery5min"
}
刪除完成后,我們再查看一下現(xiàn)有的計劃任務(wù)確認(rèn)一下:
[root@server~]#ansibleweb-mshell-a'crontab-l'
192.168.37.122|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
192.168.37.133|SUCCESS|rc=0
#Ansible:ntpupdateevery5min
*/5****/sbin/ntpdate172.17.0.1/dev/null
我們的刪除操作已經(jīng)成功。
8)yum模塊
顧名思義,該模塊主要用于軟件的安裝。
其選項(xiàng)如下:
name=#所安裝的包的名稱
state=#present---安裝,latest---安裝最新的,absent---卸載軟件。
update_cache#強(qiáng)制更新yum的緩存
conf_file#指定遠(yuǎn)程yum安裝時所依賴的配置文件(安裝本地已有的包)。
disable_pgp_check#是否禁止GPGchecking,只用于presentorlatest。
disablerepo#臨時禁止使用yum庫。只用于安裝或更新時。
enablerepo#臨時使用的yum庫。只用于安裝或更新時。
下面我們就來安裝一個包試試看:
[root@server~]#ansibleweb-myum-a'name=htopstate=present'
192.168.37.122|SUCCESS={
"changed":true,
"msg":"",
"rc":0,
"results":[
"Loadedplugins:fastestmirror,langpacks\nLoadingmirrorspeedsfromcachedhostfile\nResolvingDependencies\n--Runningtransactioncheck\n---Packagehtop.x86_640:2.0.2-1.el7willbeinstalled\n--FinishedDependencyResolution\n\nDependenciesResolved\n\n================================================================================\nPackageArchVersionRepositorySize\n================================================================================\nInstalling:\nhtopx86_642.0.2-1.el7epel98k\n\nTransactionSummary\n================================================================================\nInstall1Package\n\nTotaldownloadsize:98k\nInstalledsize:207k\nDownloadingpackages:\nRunningtransactioncheck\nRunningtransactiontest\nTransactiontestsucceeded\nRunningtransaction\nInstalling:htop-2.0.2-1.el7.x86_641/1\nVerifying:htop-2.0.2-1.el7.x86_641/1\n\nInstalled:\nhtop.x86_640:2.0.2-1.el7\n\nComplete!\n"
192.168.37.133|SUCCESS={
"changed":true,
"msg":"Warning:RPMDBalteredoutsideofyum.\n**Found3pre-existingrpmdbproblem(s),'yumcheck'outputfollows:\nipa-client-4.4.0-12.el7.centos.x86_64hasinstalledconflictsfreeipa-client:ipa-client-4.4.0-12.el7.centos.x86_64\nipa-client-common-4.4.0-12.el7.centos.noarchhasinstalledconflictsfreeipa-client-common:ipa-client-common-4.4.0-12.el7.centos.noarch\nipa-common-4.4.0-12.el7.centos.noarchhasinstalledconflictsfreeipa-common:ipa-common-4.4.0-12.el7.centos.noarch\n",
"rc":0,
"results":[
"Loadedplugins:fastestmirror,langpacks\nLoadingmirrorspeedsfromcachedhostfile\nResolvingDependencies\n--Runningtransactioncheck\n---Packagehtop.x86_640:2.0.2-1.el7willbeinstalled\n--FinishedDependencyResolution\n\nDependenciesResolved\n\n================================================================================\nPackageArchVersionRepositorySize\n================================================================================\nInstalling:\nhtopx86_642.0.2-1.el7epel98k\n\nTransactionSummary\n================================================================================\nInstall1Package\n\nTotaldownloadsize:98k\nInstalledsize:207k\nDownloadingpackages:\nRunningtransactioncheck\nRunningtransactiontest\nTransactiontestsucceeded\nRunningtransaction\nInstalling:htop-2.0.2-1.el7.x86_641/1\nVerifying:htop-2.0.2-1.el7.x86_641/1\n\nInstalled:\nhtop.x86_640:2.0.2-1.el7\n\nComplete!\n"
}
安裝成功。
9)service模塊
該模塊用于服務(wù)程序的管理。
其主要選項(xiàng)如下:
arguments#命令行提供額外的參數(shù)
enabled#設(shè)置開機(jī)啟動。
name=#服務(wù)名稱
runlevel#開機(jī)啟動的級別,一般不用指定。
sleep#在重啟服務(wù)的過程中,是否等待。如在服務(wù)關(guān)閉以后等待2秒再啟動。(定義在劇本中。)
state#有四種狀態(tài),分別為:started---啟動服務(wù),stopped---停止服務(wù),restarted---重啟服務(wù),reloaded---重載配置
下面是一些例子:
①開啟服務(wù)并設(shè)置自啟動
[root@server~]#ansibleweb-mservice-a'name=nginxstate=startedenabled=true'
192.168.37.122|SUCCESS={
"changed":true,
"enabled":true,
"name":"nginx",
"state":"started",
192.168.37.133|SUCCESS={
"changed":true,
"enabled":true,
"name":"nginx",
"state":"started",
}
我們可以去查看一下端口是否打開:
[root@server~]#ansibleweb-mshell-a'ss-ntl'
192.168.37.122|SUCCESS|rc=0
StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
LISTEN0128*:80*:*
192.168.37.133|SUCCESS|rc=0
StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
LISTEN0128*:80*:*
可以看出我們的80端口已經(jīng)打開。
②關(guān)閉服務(wù)
我們也可以通過該模塊來關(guān)閉我們的服務(wù):
[root@server~]#ansibleweb-mservice-a'name=nginxstate=stopped'
192.168.37.122|SUCCESS={
"changed":true,
"name":"nginx",
"state":"stopped",
192.168.37.133|SUCCESS={
"changed":true,
"name":"nginx",
"state":"stopped",
}
一樣的,我們來查看一下端口:
[root@server~]#ansibleweb-mshell-a'ss-ntl|grep80'
192.168.37.122|FAILED|rc=1
192.168.37.133|FAILED|rc=1
可以看出,我們已經(jīng)沒有80端口了,說明我們的nginx服務(wù)已經(jīng)關(guān)閉了。
10)user模塊
該模塊主要是用來管理用戶賬號。
其主要選項(xiàng)如下:
comment#用戶的描述信息
createhome#是否創(chuàng)建家目錄
force#在使用state=absent時,行為與userdel–force一致.
group#指定基本組
groups#指定附加組,如果指定為(groups=)表示刪除所有組
home#指定用戶家目錄
move_home#如果設(shè)置為home=時,試圖將用戶主目錄移動到指定的目錄
name#指定用戶名
non_unique#該選項(xiàng)允許改變非唯一的用戶ID值
password#指定用戶密碼
remove#在使用state=absent時,行為是與userdel–remove一致
shell#指定默認(rèn)shell
state#設(shè)置帳號狀態(tài),不指定為創(chuàng)建,指定值為absent表示刪除
system#當(dāng)創(chuàng)建一個用戶,設(shè)置這個用戶是系統(tǒng)用戶。這個設(shè)置不能更改現(xiàn)有用戶
uid#指定用戶的uid
舉例如下:
①添加一個用戶并指定其uid
[root@server~]#ansibleweb-muser-a'name=keeruid=11111'
192.168.37.122|SUCCESS={
"changed":true,
"comment":"",
"createhome":true,
"group":11111,
"home":"/home/keer",
"name":"keer",
"shell":"/bin/bash",
"state":"present",
"stderr":"useradd:warning:thehomedirectoryalreadyexists.\nNotcopyinganyfilefromskeldirectoryintoit.\nCreatingmailboxfile:Fileexists\n",
"system":false,
"uid":11111
192.168.37.133|SUCCESS={
"changed":true,
"comment":"",
"createhome":true,
"group":11111,
"home":"/home/keer",
"name":"keer",
"shell":"/bin/bash",
"state":"present",
"stderr":"useradd:warning:thehomedirectoryalreadyexists.\nNotcopyinganyfilefromskeldirectoryintoit.\nCreatingmailboxfile:Fileexists\n",
"system":false,
"uid":11111
}
添加完成,我們可以去查看一下:
[root@server~]#ansibleweb-mshell-a'cat/etc/passwd|grepkeer'
192.168.37.122|SUCCESS|rc=0
keer:x:11111:11111::/home/keer:/bin/bash
192.168.37.133|SUCCESS|rc=0
keer:x:11111:11111::/home/keer:/bin/bash
②刪除用戶
[root@server~]#ansibleweb-muser-a'name=keerstate=absent'
192.168.37.122|SUCCESS={
"changed":true,
"force":false,
"name":"keer",
"remove":false,
"state":"absent"
192.168.37.133|SUCCESS={
"changed":true,
"force":false,
"name":"keer",
"remove":false,
"state":"absent"
}
一樣的,刪除之后,我們?nèi)タ匆幌拢?/p>
[root@server~]#ansibleweb-mshell-a'cat/etc/passwd|grepkeer'
192.168.37.122|FAILED|rc=1
192.168.37.133|FAILED|rc=1
發(fā)現(xiàn)已經(jīng)沒有這個用戶了。
11)group模塊
該模塊主要用于添加或刪除組。
常用的選項(xiàng)如下:
gid=#設(shè)置組的GID號
name=#指定組的名稱
state=#指定組的狀態(tài),默認(rèn)為創(chuàng)建,設(shè)置值為absent為刪除
system=#設(shè)置值為yes,表示創(chuàng)建為系統(tǒng)組
舉例如下:
①創(chuàng)建組
[root@server~]#ansibleweb-mgroup-a'name=sanguogid=12222'
192.168.37.122|SUCCESS={
"changed":true,
"gid":12222,
"name":"sanguo",
"state":"present",
"system":false
192.168.37.133|SUCCESS={
"changed":true,
"gid":12222,
"name":"sanguo",
"state":"present",
"system":false
}
創(chuàng)建過后,我們來查看一下:
[root@server~]#ansibleweb-mshell-a'cat/etc/group|grep12222'
192.168.37.122|SUCCESS|rc=0
sanguo:x:12222:
192.168.37.133|SUCCESS|rc=0
sanguo:x:12222:
可以看出,我們的組已經(jīng)創(chuàng)建成功了。
②刪除組
[root@server~]#ansibleweb-mgroup-a'name=sanguostate=absent'
192.168.37.122|SUCCESS={
"changed":true,
"name":"sanguo",
"state":"absent"
192.168.37.133|SUCCESS={
"changed":true,
"name":"sanguo",
"state":"absent"
}
照例查看一下:
[root@server~]#ansibleweb-mshell-a'cat/etc/group|grep12222'
192.168.37.122|FAILED|rc=1
192.168.37.133|FAILED|rc=1
已經(jīng)沒有這個組的相關(guān)信息了。
12)script模塊
該模塊用于將本機(jī)的腳本在被管理端的機(jī)器上運(yùn)行。
該模塊直接指定腳本的路徑即可,我們通過例子來看一看到底如何使用的:
首先,我們寫一個腳本,并給其加上執(zhí)行權(quán)限:
[root@server~]#vim/tmp/df.sh
#!/bin/bash
date/tmp/disk_total.log
df-lh/tmp/disk_total.log
[root@server~]#chmod+x/tmp/df.sh
然后,我們直接運(yùn)行命令來實(shí)現(xiàn)在被管理端執(zhí)行該腳本:
[root@server~]#ansibleweb-mscript-a'/tmp/df.sh'
192.168.37.122|SUCCESS={
"changed":true,
"rc":0,
"stderr":"Sharedconnectionto192.168.37.122closed.\r\n",
"stdout":"",
"stdout_lines":[]
192.168.37.133|SUCCESS={
"changed":true,
"rc":0,
"stderr":"Sharedconnectionto192.168.37.133closed.\r\n",
"stdout":"",
"stdout_lines":[]
}
照例查看一下文件內(nèi)容:
[root@server~]#ansibleweb-mshell-a'cat/tmp/disk_total.log'
192.168.37.122|SUCCESS|rc=0
TueDec515:58:21CST2017
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda247G4.4G43G10%/
devtmpfs978M0978M0%/dev
tmpfs993M84K993M1%/dev/shm
tmpfs993M9.1M984M1%/run
tmpfs993M0993M0%/sys/fs/cgroup
/dev/sda347G33M47G1%/app
/dev/sda1950M153M798M17%/boot
tmpfs199M16K199M1%/run/user/42
tmpfs199M0199M0%/run/user/0
192.168.37.133|SUCCESS|rc=0
TueDec515:58:21CST2017
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda246G4.1G40G10%/
devtmpfs898M0898M0%/dev
tmpfs912M84K912M1%/dev/shm
tmpfs912M9.0M903M1%/run
tmpfs912M0912M0%/sys/fs/cgroup
/dev/sda33.7G15M3.4G1%/app
/dev/sda11.9G141M1.6G9%/boot
tmpfs183M16K183M1%/run/user/42
tmpfs183M0183M0%/run/user/0
可以看出已經(jīng)執(zhí)行成功了。
13)setup模塊
該模塊主要用于收集信息,是通過調(diào)用facts組件來實(shí)現(xiàn)的。
facts組件是Ansible用于采集被管機(jī)器設(shè)備信息的一個功能,我們可以使用setup模塊查機(jī)器的所有facts信息,可以使用filter來查看指定信息。整個facts信息被包裝在一個JSON格式的數(shù)據(jù)結(jié)構(gòu)中,ansible_facts是最上層的值。
facts就是變量,內(nèi)建變量。每個主機(jī)的各種信息,cpu顆數(shù)、內(nèi)存大小等。會存在facts中的某個變量中。調(diào)用后返回很多對應(yīng)主機(jī)的信息,在后面的操作中可以根據(jù)不同的信息來做不同的操作。如redhat系列用yum安裝,而debian系列用apt來安裝軟件。
①查看信息
我們可以直接用命令獲取到變量的值,具體我們來看看例子:
[root@server~]#ansibleweb-msetup-a'filter="*mem*"'#查看內(nèi)存
192.168.37.122|SUCCESS={
"ansible_facts":{
"ansible_m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026四川雅安市老干部活動中心招聘1人筆試備考題庫及答案解析
- 2026浙江金華市武義縣城鄉(xiāng)環(huán)境服務(wù)有限公司招聘1人筆試備考題庫及答案解析
- 2026湖南永州市廉潔征兵筆試參考題庫及答案解析
- 2025年多媒體應(yīng)用設(shè)計師筆試及答案
- 2025年大學(xué)高校財務(wù)管理崗筆試及答案
- 2025年boss心理測試筆試及答案
- 2025年達(dá)州鋼鐵集團(tuán)筆試及答案
- 2025年建筑集團(tuán)招聘筆試題庫及答案
- 2025年內(nèi)蒙古教招英語筆試及答案
- 2025年醫(yī)院會計事業(yè)編考試真題及答案
- 殘疾人服務(wù)與權(quán)益保護(hù)手冊(標(biāo)準(zhǔn)版)
- 車隊春節(jié)前安全培訓(xùn)內(nèi)容課件
- 2025年溫州肯恩三位一體筆試英語真題及答案
- 云南師大附中2026屆高三高考適應(yīng)性月考卷(六)歷史試卷(含答案及解析)
- PCR技術(shù)在食品中的應(yīng)用
- 輸液滲漏處理課件
- 教育培訓(xùn)行業(yè)發(fā)展趨勢與機(jī)遇分析
- 2025醫(yī)療器械經(jīng)營質(zhì)量管理體系文件(全套)(可編輯?。?/a>
- 物業(yè)與商戶裝修協(xié)議書
- 湖南鐵道職業(yè)技術(shù)學(xué)院2025年單招職業(yè)技能測試題
- GB/T 46318-2025塑料酚醛樹脂分類和試驗(yàn)方法
評論
0/150
提交評論