python開發(fā)的自動化運(yùn)維工具ansible詳解_第1頁
python開發(fā)的自動化運(yùn)維工具ansible詳解_第2頁
python開發(fā)的自動化運(yùn)維工具ansible詳解_第3頁
python開發(fā)的自動化運(yùn)維工具ansible詳解_第4頁
python開發(fā)的自動化運(yùn)維工具ansible詳解_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論