博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SaltStack入门(二)Grains、NoteGroup和State
阅读量:6403 次
发布时间:2019-06-23

本文共 3319 字,大约阅读时间需要 11 分钟。

始前须知:

  SLS文件默认使用序列化数据格式-YAML,这个格式风格你要注意的是:不要使用Tab键缩进,通常开头缩进2个空格,字符后缩进1个空格,如冒号、逗号、横杠。

如果执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。

# salt '*' sys.doc disk

如想看执行过程,可加-l debug,如下:

# salt '*' cmd.run 'ls' -l debug

1、执行命令时,查找minion目标(targeting)常用有三种方式:

 salt ‘bash’ command         #根据bash形式匹配主机(如host1、host2)

 例:# salt 'host*' test.ping       

 salt –E ‘RE’ command          #--pcre,使用正则表达式匹配主机  

 例:# salt -E '(web|mysql)' test.ping  

 salt –N group command           #--nodegroup,使用分组匹配,前提已经做好分组

 例:# salt -N web test.ping

 salt –L ‘host1,host2’command     #--list,根据主机名

 例:# salt -L 'host1,host2' test.ping

 salt -G 'os:CentOS' command        #--grains,根据grains获取的信息来查找

Grains是什么?

  grains是minion启动时采集服务器系统信息,运行过程中数据不会发生变化,如操作系统、内核、网卡等一些静态的数据。

Grains相关命令:

列出grains相关模块

# salt '*' grains.ls    

列出minion采集的grains静态数据

# salt '*' grains.items

列出某个grains信息

# salt '*' grains.item os

对grains有了初步了解,现在会用salt –G命令了吧!

# salt -G 'os:Ubuntu' test.ping

2、NodeGroup(minion分组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vi /etc/salt/master       #不用重启salt服务,修改后即生效
nodegroups:
  
web: 
'L@host1'        
#以列表形式写,多个主机以逗点分割
  
db: 
'L@host2'
 
注:也可以使用通配符,如web: 
'host*'
   
#测试分组后效果
# salt -N db test.ping
host2:
   
True
    
# salt -N web test.ping
host1:
True

3、States(配置管理)

要想启用配置管理功能,首先要对受控端进行设置,让minion以root用户接受主空端管理指令:

1
2
# vi /etc/salt/minion
user: root

开启主控端配置管理功能:

1
2
3
4
# vi /etc/salt/master
file_roots:
  
base:
    
/srv/salt/               
#默认存放管理指令和文件位置

手动创建目录和默认入口配置文件(top.sls)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# mkdir /srv/salt
# cd /srv/salt
# vi top.sls          #使用YAML语言格式定义
base:            
#默认的起点配置
 
'*'
:           
#匹配所有在线minion,指定组直接写组名
    
- web.httpd    
#web是默认/srv/salt下目录,http是state文件名字,以sls结尾
 
----------------------------
如果想使用分组定义,如下:
base:
  
web:       
#组名
     
- match: nodegroup
     
- web.httpd
----------------------------
 
# mkdir web
# vi web/httpd.sls      #创建目录或文件名根据自己情况定义
httpd:                  
#说明
 
pkg:                  
#包管理
   
-name: apache2           
#包名称
- installed               
#包的状态,卸载是removed
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    #只执行单个sls文件(/srv/salt/web/httpd.sls)
# salt '*' state.highstate      #给minion永久添加状态,读top关联的sls文件
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已安装完毕并启动,然后将修改后的配置文件推送到minion(apache服务器),配置文件已修改好,位置在/srv/salt/web/httpd.conf,修改内容是添加个虚拟主机,在httpd.sls添加文件分发信息。

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           
#服务脚本名
   
-running              
#运行状态
   
-reload: True           
#如watch监控项发生变化,则重新加载配置
   
-
watch
:               
#监控文件变化
    
file
/etc/apache2/httpd
.conf
/etc/apache2/httpd
.conf:         
#分发到minion位置
 
file
.managed:              
#文件管理操作
   
-
source
: salt:
//web/httpd
.conf  
#修改好的配置文件位置
   
-user: root
   
-group: root
   
-mode: 644

1
# salt '*' state.sls web.httpd         #再执行下

使用下面命令查看minion服务器apache配置文件已经更新完成:

1
# salt '*' cmd.run 'cat /etc/apache2/httpd.conf'
本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1638581
,如需转载请自行联系原作者
你可能感兴趣的文章
MyBatis入门学习
查看>>
ASA防火墙IPSEC
查看>>
djangostart01
查看>>
Ubuntu 12.04无法关机、重启解决办法
查看>>
Tomcat的四种基于HTTP协议的Connector性能比较
查看>>
【后缀数组】
查看>>
图片缩放裁剪
查看>>
jquery ajax 回调函数的值alert出来[object Object] 解决方法
查看>>
JQuery选择器总结
查看>>
MySQL安装详解(V5.5 For Windows)
查看>>
Android单例模式
查看>>
Log4php 使用心得
查看>>
十三香_百度百科
查看>>
paip.网页右键复制菜单限制解除解决方案
查看>>
string.Format 格式化时间,货币
查看>>
Kerberos和NTLM - SQL Server
查看>>
记github上搭建独立域名的免费博客的方法过程
查看>>
Web设计之网页布局CSS技巧
查看>>
iOS key value coding kvc在接收json数据与 model封装中的使用
查看>>
Android 滑动效果入门篇(二)—— Gallery
查看>>