您的位置:首页 > 其它

SaltStack学习:salt_state

2015-03-28 10:21 246 查看
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 identifier.
In this case it defines the name of the package to be installed.

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 id matching the salt-master* glob
will get the salt.master state. Any minion with ids matching the regular
expression ^(memcache|web).(qa|prod).loc$ will get the nagios.mon.web and
apache.server states. All Ubuntu minions will receive the repos.ubuntu state,
while all RHEL and CentOS minions will receive the repos.epel state. The
minions foo, bar, and baz will receive the database state. Anyminion(奴才) with a pillar named somekey, having a value of abc will receive
the xyz state. Finally, minions with ids matching the nag1* glob(一滴) or with a
grain named role equal to monitoring will receive the nagios.server
state. http://docs.saltstack.cn/zh_CN/latest/ref/states/top.html#states-top 本文出自 “Linux革命” 博客,请务必保留此出处http://kaibinyuan.blog.51cto.com/7304008/1625907
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: