salt 配置管理
salt states说明
1
2States是SaltStack中的配置语言,在日常进行配置管理时需要编写大量的States文件.
比如:我们需要安装一个包,然后管理一个配置文件,最后保证某个服务正常运行.这里就需要我们编写一些states sls文件(描述状态配置的文件)去描述和实现我们的功能.这里需要说明的是编写的states sls文件都是YAML语法.当然states sls文件也支持使用Python语言来编写.查看minion所有states列表
1
[root@salt-master ~]# salt 'salt-minion-187' sys.list_state_modules
查看指定states的所有function
1
[root@salt-master ~]# salt 'salt-minion-187' sys.list_state_functions user
查看指定states用法
1
[root@salt-master ~]# salt 'salt-minion-187' sys.state_doc user.present
了解states
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
781.使用states的流程
* 编写top.sls文件(非必须)
* 编写states.sls文件
top.sls是states系统的入口文件,它在大规模配置管理工作中负责指定哪些设备调用哪些states.sls文件
如果我们只需简单对某台机器进行配置管理工作,我们可以直接使用state.sls命令指定states.sls文件即可
2.查看file_roots位置
[root@salt-master ~]# cat /etc/salt/master
file_roots:
base:
- /mnt/data/salt.repo/salt/base
3.新建一个one.sls state文件
[root@salt-master ~]# vim /mnt/data/salt.repo/salt/base/one.sls
/tmp/foo.conf:
file.managed:
- source: salt://foo.conf
- user: root
- group: root
- mode: 644
- backup: minion
[root@salt-master ~]# echo "SaltStack Books" |tee /mnt/data/salt.repo/salt/base/foo.conf
4.对minion进行配置部署
[root@salt-master ~]# salt 'salt-minion-187' state.sls one
salt-minion-187:
----------
ID: /tmp/foo.conf
Function: file.managed
Result: True
Comment: File /tmp/foo.conf updated
Started: 10:33:26.113398
Duration: 36.989 ms
Changes:
----------
diff:
New file
mode:
0644
Summary for salt-minion-187
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
Total run time: 36.989 ms
5.在states的工作目录下新建top.sls文件
[root@salt-master ~]# vim /mnt/data/salt.repo/salt/base/top.sls
base:
'*':
- one
6.通过top.sls执行
[root@salt-master ~]# salt 'salt-minion-187' state.apply saltenv=base test=True
或者:
[root@salt-master ~]# salt 'salt-minion-187' state.apply saltenv=base
或者:
[root@salt-master ~]# salt 'salt-minion-187' state.apply
salt-minion-187:
----------
ID: /tmp/foo.conf
Function: file.managed
Result: True
Comment: File /tmp/foo.conf is in the correct state
Started: 10:42:49.669735
Duration: 33.76 ms
Changes:
Summary for salt-minion-187
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 33.760 ms