在使用木偶一段时间之后,我正在尝试使用SaltStack,但是我无法理解他们使用“状态”这个词。
我的理解是,例如,一个电灯开关有两种可能的状态--开或关。当我编写我的SLS配置时,我描述的是服务器应该处于什么状态?。当我要求SaltStack提供服务器时,我发出命令salt '*' state.highstate。我知道服务器可以在highstate中(如我的配置中所描述的),也可以不在。目前为止一切都很好。
但是本页描述其他状态。。它将lowstate、highstate和overstate (以及其他)描述为层。这是否意味着一台服务器要经过几个州才能到达一个高级状态?还是所有的状态都作为层同时维护?或者我可以在我的SLS中配置多个可能的状态,并在它们之间进行SaltStack切换?或者它们只是SaltStack的层,它们的名字中有“状态”,而我很困惑?
我可能遗漏了一些显而易见的东西,如果有人能推动我朝着正确的方向前进,我认为很多文档都会对我来说很清楚!
发布于 2016-02-24 09:53:33
在这里,top.sls包含,
# cat top.sls
base:
'*':
- httpd_require和,
# cat httpd_require.sls
install_httpd:
pkg.installed:
- name: httpd
service.running:
- name: httpd
- enable: True
- require:
- file: install_httpd
file.managed:
- name: /var/www/html/index.html
- source: salt://index1.html
- user: root
- group: root
- mode: 644
- require:
- pkg: install_httpd高状态:
我们可以看到高状态系统的所有方面,在处理状态文件( .sls)时,有三个特定的组件。
- Each individual State represents a piece of high data(pkg.installed:'s block), Salt will compile all relevant SLS inside the top.sls, When these files are tied together using includes, and further glued together for use inside an environment using a top.sls file, they form a High State.salt 'remote_minion‘state.show_highstate -out yaml remote_minion: install_httpd:__env__:base __sls__:httpd_require文件:- name: /var/www/html/index.html -来源: salt://index1.html -用户:根-组:根-模式: 644 -要求:- pkg: install_httpd -托管-顺序:10002 pkg:- name: httpd - installed order: 10000 service:- name: httpd - enable: true - require:- install_httpd - running - order: 10001
首先,宣布一项命令,所有被定为第一的国家都将相应地调整其命令。然后,Salt将向最后定义的数字添加10000 (默认情况下为0),并添加任何未显式排序的状态。Salt还将添加它内部使用的一些变量,以了解要在哪个环境(__env__)中执行状态,以及状态声明来自哪个still (__sls__),请记住,该命令仍然只是一个起点;实际的高级状态将首先根据需求执行,然后根据顺序执行。
换句话说,“高”数据通常指用户所看到的数据。
低国家:
“低”数据一般指盐摄入和使用的数据。
一旦生成了最后的高级状态,它将被发送到状态编译器。这将将国家数据重新格式化为Salt内部用于评估每个声明的格式,并将数据输入每个州模块(必要时,后者将调用执行模块)。与高数据一样,低数据也可以分解为单个组件:
所有这一切都包括一个低国家。每个单独的项目都是一个较低的块。这个列表中的第一个低块如下所示:
- __env__: base
__id__: install_httpd
__sls__: httpd_require
fun: installed
name: http
order: 10000
state: pkg每个低块映射到一个状态模块(在本例中是pkg),并映射到该状态模块内的一个函数(在本例中,已安装)。在此级别(__id__)还提供了一个ID。Salt将使用State和__id__的组合来映射国家之间的关系(即必要条件)。如果用户尚未声明名称,则Salt将自动使用__id__作为name.Once --状态模块中的一个函数已被调用,它通常将映射到一个或多个实际执行该工作的执行模块。
发布于 2015-12-21 19:59:24
salt '\*' state.highstate
salt '\*' state.sls apache
若要仅对特定的仆从调用上述salt调用,请使用以下命令。
salt 'minion-name' state.sls apache
发布于 2015-11-19 03:26:34
我不知道每个州的情况,但是当你跑的时候:
salt '*' state.highstate应用您在/srv/salt/top.sls.中提供的状态
如果你在里面什么也不写,你就不能申请一个高级州。
您可以使用以下命令应用其他状态:
salt '*' state.sls state.examplehttps://stackoverflow.com/questions/33779564
复制相似问题