Articles of saltstack

validation之前,盐状态

我将我的盐sls文件存储在一个git仓库中,但是我有一个常年性的问题,我无法validation我的YAML代表一个有效的可应用的状态集(我也很难validation我的YAML – 这是但是更容易)。 理想情况下,我想在validation工作站之前先validation我的状态。 如果不这样做,一些方法来检查预接收钩,以便至less停止命中服务器的代码。

如何检查在后台运行的salt命令的输出?

我有一个由别人执行一堆命令写的盐脚本。 它运行了很长时间。 我与运行它的机器的连接断开了,但它仍在运行。 我如何回到它看到它是什么? 我没有使用screen启动它。 这是命令的样子: $ salt –subset=1 -C 'G@application:foo and G@roles:application and G@vpc:staging' state.sls foo.commands.application.export 有一堆有angular色应用程序的主机,并且这些东西运行良好。 我正在监视它正在做什么(推到队列)的输出。 我相信我正在寻找某种“ 检查正在运行的盐脚本的状态 ”,但在文档中找不到。 我在Ubuntu 14.04.1 LTS上运行salt 2014.1.13 (Hydrogen) 。

我应该将部署设置保存在单独的存储库中吗?

我正在学习Salt Stack,将我的Python应用程序部署到AWS上的各个生产阶段。 现在我把所有的源代码和盐状态放在一个大的仓库中。 在使用我的源代码保留minion状态文件时是否有任何实际或安全考虑? 或者我应该把它们分开,为什么? 如果我将我的状态文件移动到一个单独的盐状态回购,我应该在哪里保留我的master和minionconfiguration文件,或者不属于版本控制?

SaltStack:有没有办法在输出中只显示失败和警告?

在小 王子上运行state.apply或state.highstate可能会导致数百行输出。 有时候只有一个仆从就足够了。 … Summary for my_minion ————– Succeeded: 112 (changed=78) Failed: 6 Warnings: 1 ————– Total states run: 118 Total run time: 4.958 s 有没有办法在输出中只显示失败和警告?

如何使用saltstack从支柱创build盐?

让我们来看看今天的例子: https : //gist.github.com/Natim/6548009 我使用支柱来创build数据库和用户。 它可以在服务器上正常工作,但如果我需要同一台服务器上的两个angular色,则只考虑最后一个支柱。 我如何创造我的支柱和盐,为每个angular色创造一个盐? 我可以这样做: {% for db in pillar['dbs'] %} postgresql_db_{{ db['postgresql_db_name'] }}: postgres_database.present: – name: {{ db['postgresql_db_name'] }} – owner: {{ db['postgresql_db_user'] }} – encoding: UTF8 – lc_ctype: en_US.UTF8 – lc_collate: en_US.UTF8 – template: template0 – runas: postgres – require: – service: postgresql – postgres_user: postgresql_user_{{ db['postgresql_db_user'] }} postgresql_user_{{ db['postgresql_db_user'] […]

如何安装RVM和RUBY到salt-minion的特定用户

我使用的是Ubuntu 12.04,用于salt-master和salt-minion。当我尝试使用盐在salt-minion中安装一个包时,它只安装在系统特定的。 但我需要安装在用户特定的。 如何安装RVM和RUBY到salt-minion的特定用户?

一旦先决条件被下载,你如何执行cmd.script?

我有一个非常简单的用例,我试图去做: 我需要从主站下载并安装几个tar.gz源码包,然后运行一个脚本来编译和安装它们。 我意识到这可能是一个基本的问题,但任何指针将不胜感激。 /usr/local/src/source1.tar.gz: file.managed: – source: salt://sources/source1.tar.gz – user: root – group: root – mode: 644 /usr/local/src/source2.tar.gz: file.managed: – source: salt://sources/source2.tar.gz – user: root – group: root – mode: 644 /usr/local/src/source3.tar.gz: file.managed: – source: salt://sources/source3.tar.gz – user: root – group: root – mode: 644 //I need something like this, but am not sure how […]

如何启用盐堆交换?

我怎样才能创build和启用永久1GB的交换文件盐堆栈将重新启动后工作? salt.states.mount.swap不允许定义交换大小。 此外,我需要定义swappiness。 目前我用echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf来做 echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

盐:仆人没有回来,但盐呼叫正在工作

我正在使用Windows小工具(Linux master)上的SaltStack。 我写了一个简单的.sls文件,它在C:/hello_world.txt处复制了一个hello-world.txt文件。 我也写了我的top.sls并configuration我的file_roots。 小黄人钥匙已被接受(和test.ping正在工作)。 我目前的问题是当我打电话给主人时: salt 'my_minion' state.highstate 我得到一个: Minion did not return. [no response] 而当我尝试(在奴才): salt-call state.highstate 一切工作正常(文件被复制)。 我试图添加-ldebugging选项的主人,但我没有得到一些有趣的东西。 任何提示debugging?

SaltStack:如何只能执行一次状态?

我只能执行一次状态。 我找不到一个简单的方法来做到这一点。 现在,上下文 我通过salt安装了两个MySQL服务器。 我想使自己成为另一个的奴隶。 为了设置从站,我需要在主站安装结束时获取主站状态信息: SHOW MASTER STATUS; 现在,我可以使用执行mysql.query函数的自定义状态来获取它。 mysql_master_status: mystate.query: – query: SHOW MASTER STATUS 但是每次执行服务器的高端状态时都会执行它。 从而每次给出不同的主信息。 我试图用文件存在作为标志: /tmp/only_once: file.missing: [] mysql_master_status: mystate.query: – query: SHOW MASTER STATUS – require: – file: /tmp/only_once 这是工作,但我不高兴,因为我现在每次都有两个失败的状态。 我的定制解决scheme 我结束了一个新的参数mystate , flag创build一个标志文件第一次执行,并返回与成功,如果文件存在: mysql_master_status: mystate.query: – query: SHOW MASTER STATUS – flag: /tmp/only_once 还有问题 不过,我想知道是否以及如何执行一次状态。