執(zhí)行命令時(shí),忘記語(yǔ)法,可以使用sys.doc模塊查詢salt模塊相關(guān)使用方法。
# salt \'*\' sys.doc disk
1、執(zhí)行命令時(shí),查找minion目標(biāo)(targeting)常用有三種方式:
salt ‘shell 正則’ 命令
例:# salt \'host*\' cmd.run \'df -h\'#我們主機(jī)ID是host加數(shù)字的
salt –E ‘perl 正則’命令 #--pcre,不會(huì)perl語(yǔ)言,也不舉例了
salt –N group 命令 #--nodegroup,前提已經(jīng)做好分組
例:# salt -N web cmd.run \'df -h\'
salt –L ‘host1,host2’ 命令 #--list
例:# salt -L \'host1,host2\' cmd.run \'df -h\'
salt –G ‘os.ubuntu’ 命令 #--grains
Grains是什么?
grains是minion啟動(dòng)時(shí)采集服務(wù)器系統(tǒng)信息,運(yùn)行過(guò)程中數(shù)據(jù)不會(huì)發(fā)生變化,如操作系統(tǒng)、內(nèi)核、網(wǎng)卡等一些靜態(tài)的數(shù)據(jù)。
Grains相關(guān)命令:
列出grains相關(guān)模塊
# salt \'*\' grains.ls
列出minion采集的grains靜態(tài)數(shù)據(jù)
# salt \'*\' grains.items
列出某個(gè)grains信息
# salt \'*\' grains.item os
對(duì)grains有了初步了解,現(xiàn)在會(huì)用salt –G命令了吧!
# salt -G \'os.Ubuntu\' test.ping
2、NodeGroup(minion分組)
1
2
3
4
5
6
7
8
9
10
11
12
13
# vi /etc/salt/master #不用重啟salt服務(wù),修改后即生效
nodegroups:
web: \'host1\' #多個(gè)主機(jī)以逗點(diǎn)分割
db: \'host2\'
#測(cè)試分組后效果
# salt -N db test.ping
host2:
True
# salt -N web test.ping
host1:
True
3、States(配置管理)
要想啟用配置管理功能,首先要對(duì)受控端進(jìn)行設(shè)置,讓minion以root用戶接受主空端管理指令:
1
2
3
4
5
6
7
# vi /etc/salt/minion
user: root
開啟主控端配置管理功能:
# vi /etc/salt/master
file_roots:
base:
- /srv/salt/ #默認(rèn)存放管理指令和文件位置
手動(dòng)創(chuàng)建目錄和默認(rèn)入口配置文件(top.sls)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# mkdir /srv/salt
# vi /srv/salt/top.sls #使用YAML語(yǔ)言格式定義
base: #默認(rèn)的起點(diǎn)配置
\'*\': #匹配所有在線minion,指定組直接寫組名
- web.httpd #web是默認(rèn)/srv/salt下目錄,http是state文件名字,以sls結(jié)尾
----------------------------
如果想使用分組定義,如下:
base:
web:
- match: nodegroup
- web.httpd
----------------------------
# vi /srv/salt/web/httpd.sls #創(chuàng)建目錄或文件名根據(jù)自己情況定義
httpd: #說(shuō)明
pkg: #包管理
-name: apache2 #包名稱
- installed #包的狀態(tài),卸載是removed
注意:縮進(jìn)是2個(gè)空格,冒號(hào)后門一個(gè)空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# salt \'*\' state.sls web.httpd #只執(zhí)行/srv/salt/web/httpd.sls
# salt \'*\' state.highstate #執(zhí)行所有top關(guān)聯(lián)的slsl文件
host1:
----------
ID: httpd
Function: pkg.installed
Name: apache2
Result: True
Comment: The following packages were installed/updated: apache2.
Started: 11:30:40.994840
Duration: 103211.119 ms
Changes:
省略.....
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
host2:
----------
ID: httpd
Function: pkg.installed
Name: apache2
Result: True
Comment: The following packages were installed/updated: apache2.
Started: 11:30:41.458100
Duration: 122426.802 ms
Changes:
省略.....
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
Apache已安裝完畢并啟動(dòng),然后將修改后的配置文件推送到minion(apache服務(wù)器),配置文件已修改好,位置在/srv/salt/web/httpd.conf,修改內(nèi)容是添加個(gè)虛擬主機(jī),在httpd.sls添加文件分發(fā)信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# vi httpd.sls
httpd:
pkg:
-name: apache2
-installed
service:
-name: apache2 #服務(wù)腳本名
-running #運(yùn)行狀態(tài)
-reload: True #如watch監(jiān)控項(xiàng)發(fā)生變化,則重新加載配置
-watch: #監(jiān)控文件變化
- file: /etc/apache2/httpd.conf
/etc/apache2/httpd.conf: #分發(fā)到minion位置
file.managed: #文件管理操作
-source: salt://web/httpd.conf#修改好的配置文件位置
-user: root
-group: root
-mode: 644
1
# salt \'*\' state.sls web.httpd #再執(zhí)行下
使用下面命令查看minion服務(wù)器apache配置文件已經(jīng)更新完成:
1
# salt \'*\' cmd.run \'cat /etc/apache2/httpd.conf\'
文章標(biāo)題:SaltStack入門(二)Grains、NoteGroup和State
URL網(wǎng)址:http://www.rwnh.cn/article14/cgsgge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、云服務(wù)器、定制網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(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)