SaltStack学习:salt_state
1.简单应用建立Salt State树
在Salt中启动一个中心state系统,需要首先确保已经建立了Salt文件服务. 编辑master配置文件(file_roots) 取消如下行的注释:
file_roots:
base:
- /srv/salt
重启Salt master以使更改生效:
pkill salt-master
salt-master -d
准备Top文件
在master上,之前为未注释的目录下(默认为 /srv/salt),创建一个名为 top.sls 的文件并添加如下内容:
base:
'*':
- webserver
Create an sls file
In the same directory as the top file, create a file
named webserver.sls, containing the following:
apache: # ID declaration
pkg: # state declaration
- installed # function declaration
The first line, called the ID declaration, is an arbitrary> The second line, called the State declaration, defines which of the Salt
States we are using. In this example, we are using the pkg state to ensure that a given package is installed.
The third line, called the Function declaration, defines which function
in the pkg state module to call.
装软件包
下面让我们来运行我们创建的状态, 打开命令窗口在master 上运行上面语句。
salt '*' state.highstate
A clean and recommended setup for multiple environments would look like this
# Master file_roots configuration:file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
qa:
- /srv/salt/qa
prod:
- /srv/salt/prod
Then only place state trees in the dev, qa, and prod environments, leaving
the base environment open for generic file transfers. Then the top.sls file
would look something like this:
dev:
'webserver*dev*':
- webserver
'db*dev*':
- db
qa:
'webserver*qa*':
- webserver
'db*qa*':
- db
prod:
'webserver*prod*':
- webserver
'db*prod*':
- db
Other Ways of Targeting Minions
Here is a slightly more complex top file example, showing the different types
of matches you can perform:
base:
'*':
- ldap-client
- networking
- salt.minion
'salt-master*':
- salt.master
'^(memcache|web).(qa|prod).loc$':
- match: pcre
- nagios.mon.web
- apache.server
'os:Ubuntu':
- match: grain
- repos.ubuntu
'os:(RedHat|CentOS)':
- match: grain_pcre
- repos.epel
'foo,bar,baz':
- match: list
- database
'somekey:abc':
- match: pillar
- xyz
'nag1* or G@role:monitoring':
- match: compound
- nagios.server
In this example top.sls, all minions get the ldap-client, networking, and
salt.minion states. Any minion with an> http://docs.saltstack.cn/zh_CN/latest/ref/states/top.html#states-top
页:
[1]