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