一、grains
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了萊陽(yáng)免費(fèi)建站歡迎大家使用!
grains是在minion啟動(dòng)時(shí)收集到的一些信息,比如操作系統(tǒng)類型、網(wǎng)卡ip、內(nèi)核版本、cpu架構(gòu)等。
#?salt?'yw02'?grains.ls???列出所有的grains項(xiàng)目名字 #?salt?'aming-02'?grains.items???列出所有g(shù)rains項(xiàng)目以及值
grains的信息并不是動(dòng)態(tài)的,并不會(huì)實(shí)時(shí)變更,它是在minion啟動(dòng)時(shí)收集到的。
我們可以根據(jù)grains收集到的一些信息,做配置管理工作。
grains支持自定義信息。
自定義grains
minion上:
#?vim?/etc/salt/grains??//添加,前面是item,后面是value。這都是自定義的。 ?role:?nginx? ?env:?test
重啟minion服務(wù)
#?systemctl?restart?salt-minion
master上:
獲取grains:
?#?salt?'*'?grains.item?role?env???//可以隨便寫一個(gè)item,如果minion端沒(méi)有,就什么都不顯示。
可以借助grains的item去匹配對(duì)應(yīng)的主機(jī)來(lái)執(zhí)行任務(wù)或命令
#?salt?-G?role:nginx?cmd.run?'hostname'
如果想把機(jī)器分組,就可以自定義一個(gè)grains。
二、pillar
pillar和grains不一樣,是在master上定義的,并且是針對(duì)minion定義的一些信息。像一些比較重要的數(shù)據(jù)(密碼)可以存在pillar里,還可以定義變量等。
配置自定義pillar
#?vim??/etc/salt/master???找到如下配置://去掉前面的#號(hào) pillar_roots:?????//可以認(rèn)為是接下來(lái)要配置的項(xiàng)目。 ??base:???#此行前面有兩個(gè)空格,項(xiàng)目里它的value叫base。 ????-?/srv/pillar???#此行前面有4個(gè)空格,value里的值叫/srv/pillar。 ?重啟master????//只有在修改了/etc/salt/master的情況下才需要重啟服務(wù),后面的只要刷新pillar配置即可。 #?systemctl??restart?salt-master???? ???? #?mkdir?/srv/pillar #?vim?/srv/pillar/test.sls??//子配置文件,內(nèi)容如下,saltstack的配置文件通常情況下以sls作為后綴名,方便區(qū)分。 conf:?/etc/123.conf ? #?vi?/srv/pillar/top.sls??//內(nèi)容如下,這個(gè)top.sls文件作為一個(gè)總?cè)肟凇?base:???#base表示這是一個(gè)根 ??'yw02':?#此行前面有兩個(gè)空格,針對(duì)的機(jī)器的主機(jī)名。 ????-?test?#此行前面有4個(gè)空格,意思是要加載哪一個(gè)配置文件。-相當(dāng)于是作為分隔符性質(zhì)的。 ????-?test1???#多個(gè)就寫多行 ??'fuxi01':????#也可以寫多個(gè)機(jī)器 ????-?test2???? 這個(gè)文件的格式一定要注意,機(jī)器前空兩gear,對(duì)應(yīng)的配置文件空四格。
當(dāng)更改完pillar配置文件后,通過(guò)刷新pillar配置來(lái)獲取新的pillar狀態(tài):
#?salt?'*'?saltutil.refresh_pillar 驗(yàn)證:#?salt??'*'?pillar.item?conf
pillar同樣可以用來(lái)匹配對(duì)應(yīng)的主機(jī)。
比如 salt ?-I 'conf:/etc/123.conf' ?test.ping;salt -I 'conf:/etc/123.conf' cmd.run w
三、安裝配置httpd
master上
#?vi?/etc/salt/master?//搜索找到file_roots,打開(kāi)如下內(nèi)容的注釋: file_roots: ??base:?#前面有兩個(gè)空格 ????-?/srv/salt?#前面有4個(gè)空格 #?mkdir?/srv/salt?;?cd?/srv/salt #?vi?/srv/salt/top.sls??//定義總?cè)肟?,加入如下?nèi)容 base: ??'*':??#前面有兩個(gè)空格, ????-?httpd?#前面有4個(gè)空格 ???? #?systemctl?restart?salt-master
'*'的意思是,在所有的minion客戶端上執(zhí)行httpd模塊,也可以寫單獨(dú)的機(jī)器。
master上
#?vi?/srv/salt/httpd.sls??//加入如下內(nèi)容,這個(gè)就是httpd模塊的內(nèi)容 httpd-service:????#定義的服務(wù)名字 ??pkg.installed:???#salt自帶的模塊,類似于cmd.run。 ????-?names:????#后面就是要安裝的包的名字。這里如果只有一個(gè)服務(wù),那么就可以寫成?–name:?httpd?不用再換一行了。 ??????-?httpd ??????-?httpd-devel ??service.running:??#這個(gè)模塊的作用是為了啟動(dòng)服務(wù)的。 ????-?name:?httpd???#啟動(dòng)httpd這個(gè)服務(wù) ????-?enable:?True??#True表示要啟動(dòng),false不啟動(dòng)。
說(shuō)明: httpd-service是id的名字,自定義的。pkg.installed 為包安裝函數(shù),下面是要安裝的包的名字。service.running也是一個(gè)函數(shù),來(lái)保證指定的服務(wù)啟動(dòng),enable表示開(kāi)機(jī)啟動(dòng)。
執(zhí)行: salt 'yw02'state.highstate ? //執(zhí)行過(guò)程會(huì)比較慢,因?yàn)榭蛻舳松显趛um install httpd httpd-devel,只要執(zhí)行了這個(gè)state.highstate的命令,就會(huì)到/srv/salt目錄下去找top.sls,這個(gè)配置文件里提到的相關(guān)的模塊,都會(huì)去執(zhí)行。
# ls /lib/systemd/system/httpd.service ? //安裝完后,就有這個(gè)服務(wù)的包了。
四、配置管理文件
master上
#?vi?/srv/salt/test.sls???//加入如下內(nèi)容 file_test: ??file.managed:???#引用到的模塊 ????-?name:?/tmp/aminglinux.com???#minion端要給到的文件路徑 ????-?source:?salt://test/123/1.txt ????-?user:?root????#文件給過(guò)去以后,它的屬主屬組、權(quán)限。 ????-?group:?root ????-?mode:?600
說(shuō)明:第一行的file_test為自定的名字,表示該配置段的名字,可以在別的配置段中引用它,source指定文件從哪里拷貝,來(lái)源文件,這里的salt://test/123/1.txt相當(dāng)于是/srv/salt/test/123/1.txt,salt://這就表示在/etc/salt/master文件中的file_roots定義的根路徑/srv/salt。
作用:比如,針對(duì)一組機(jī)器,改一個(gè)服務(wù)的配置文件,先把改好后的配置文件的模板搞過(guò)來(lái),然后再告訴minion端,把這個(gè)文件要分發(fā)到機(jī)器上的哪一個(gè)目錄下去,分發(fā)完后,可能還要做一些其他的操作,比如重啟服務(wù)。
#?mkdir?/srv/salt/test/123 #?cp?/etc/passwd?/srv/salt/test/123/1.txt #?vi?/srv/salt/top.sls?//因?yàn)閟alt默認(rèn)找的是top.sls,它是總?cè)肟?,top會(huì)告訴我們接下來(lái)要去找哪一個(gè)子配置文件,所以這里要改成test: base: ??'*': ????-?test ???? #?salt?'yw02'?state.highstate yw02: ---------- ??????????ID:?file_test ????Function:?file.managed ????????Name:?/tmp/aminglinux.com ??????Result:?True ?????Comment:?File?/tmp/aminglinux.com?updated ?????Started:?19:37:17.272462 ????Duration:?591.057?ms ?????Changes:??? ??????????????---------- ??????????????diff: ??????????????????New?file Summary?for?yw02 ------------ Succeeded:?1?(changed=1) Failed:????0 ------------ Total?states?run:?????1 Total?run?time:?591.057?ms
檢查yw02上是否有/tmp/aminglinux.com,檢查內(nèi)容以及權(quán)限。
五、配置管理目錄
master上
#?vi?/srv/salt/test_dir.sls??//加入如下內(nèi)容 file_dir: ??file.recurse:???#模塊 ????-?name:?/tmp/testdir???#對(duì)方機(jī)器的目錄 ????-?source:?salt://test/123???#模板目錄 ????-?user:?root????#給過(guò)去后的目錄、文件屬主及權(quán)限 ????-?file_mode:?640 ????-?dir_mode:?750 ????-?mkdir:?True ????-?clean:?True???##加上它之后,刪除源文件或目錄,目標(biāo)也會(huì)跟著刪除,否則不會(huì)刪除
修改top.sls,
#?vi?/srv/salt/top.sls?//添加test_dir base: ??'*': ????-?test_dir? #?salt?'yw02'?state.highstate
檢查yw02上是否有/tmp/testdir,檢查里面的目錄、文件以及權(quán)限
說(shuō)明:saltstack的一個(gè)特性,如果source對(duì)應(yīng)的目錄里有空目錄的話,客戶端上不會(huì)同步它,它會(huì)認(rèn)為這是無(wú)用的。
網(wǎng)站欄目:二、grains、pillar、安裝配置httpd、配置管理文件、配置管理目錄
文章URL:http://aaarwkj.com/article12/gihdgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、小程序開(kāi)發(fā)、自適應(yīng)網(wǎng)站、網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)