我是SaltStack的初学者,但我已经设法在一台机器上设置一些状态并在一个小兵上运行它们。
我现在拥有的是使用salt-master的Debian机器设置以及另一个作为salt-minion的Debian设置。
由于我也使用salt-master作为开发机器,我想知道我是否可以某种方式在master本身上应用状态。如果是这样,怎么样?
我是否可以运行命令来应用主服务器上的状态? (到目前为止我无法找到它)
我是否应该在同一台机器上安装salt-minion以便能够做到这一点,并且只需将同一台机器注册为minion本身?
谢谢!
答案 0 :(得分:21)
由于我也使用salt-master作为开发机器,我想知道我是否可以某种方式在master本身上应用状态。如果是这样,怎么样?
您可以按照以下步骤执行此操作:
我是否可以运行命令在主设备上应用状态?
salt-master并没有真正运行状态文件,salt-minions就是这样。如果您按照上述步骤操作,那么您可以使用以下命令将salt-master定位为运行highstate:
salt 'the_value_of_/etc/salt/minion_id' state.highstate
我是否应该在同一台机器上安装salt-minion以便能够做到这一点,并且只需将同一台机器注册为minion本身?
烨。我想你已经知道你需要做什么,只需要朝着正确的方向努力。
答案 1 :(得分:5)
我称这样的节点 Master Minion 。没有提供任何步骤 - 您已根据问题了解它。
一些概念信息:
有两种方法可以应用状态:
对“推送”状态的主方salt
命令指向多个远程小兵。
rpm -qf $(which salt)
salt-master-2015.5.3-4.fc22.noarch
对单个当地小兵的“拉”状态的小兵方salt-call
命令。
rpm -qf $(which salt-call)
salt-minion-2015.5.3-4.fc22.noarch
直到涉及多个小兵,最好使用salt-call
来达到同样的效果:
salt-call state.highstate
Minion-side salt-call
为测试,隔离和故障排除提供了优势:
它直接在本地终端显示调试输出:
salt-call -l debug test.ping
最后一点,salt-call
--local
也可以使用无网络在masterless setup中使用。
答案 2 :(得分:3)
现在已接近2015年。让我们回顾一下盐主控自我控制的更多可能性:
这个问题已被广泛讨论为以上两个答案。
设置步骤:
第1步:安装salt-ssh
步骤2:修改名册文件(例如CentOS 6中的/ etc / salt / roster)。默认安装已经为您提供了一些示例。既然你可能ssh into salt master,当然用户名/密码/私钥设置对你来说应该不是问题。例如,为了控制盐主流氓箱,这个样本应该做:
localhost:
host: 127.0.0.1
user: vagrant
passwd: vagrant
sudo: True
现在,从official tutorial偷走一点点:
# /srv/salt/orch/cleanfoo.sls
cmd.run:
salt.function:
- tgt: 'localhost'
- ssh: 'true'
- arg:
- touch /tmp/test.txt
运行它:
salt-run state.orchestrate orch.cleanfoo
如果有test.txt文件,请检查salt master vagrant box / tmp目录。
这种方法也适用于国家。无论哪种方式,你需要安装一些东西。我更喜欢第二种方式,因为一般来说,调用salt master自我控制(提供一些工作)只是我实际上调用minion处理其他状态之前的一步。