无法运行 salt.highstate

无法运行 salt.highstate

我正在配置一组 40 台服务器,由 SaltStack 进行管理。我目前只使用一台 minion 进行测试,我已将其成功添加到 master。为简单起见,我在各自的机器上使用来自 Ubuntu 14.04.1 软件包存储库的最新版本的 salt 和 salt-minion。

我拥有看似合理的配置和目录结构,但是每当我尝试运行时salt '*' state.highstate,我都会收到错误消息,提示顶级文件与节点不匹配。如果我尝试使用手动运行状态文件salt '*' state.sls worker.users,它会出错,提示不存在这样的文件。目录结构和文件如下。

知道为什么这不起作用吗?

root@salt-master:/srv/salt# tree /srv/salt
/srv/salt
├── worker
│   └── users.sls
└── top.sls

1 directory, 4 files

root@master:/srv/salt# salt '*' state.highstate
worker-2:
----------
    State: - no
    Name:      states
    Function:  None
        Result:    False
        Comment:   No Top file or external nodes data matches found
        Changes:

Summary
------------
Succeeded: 0
Failed:    1
------------
Total:     1

相关文件内容:

root@master:/srv/salt# cat top.sls
base:
  '*':
    - worker.users
root@master:/srv/salt# cat worker/users.sls
    worker:
      user.present:
        - fullname: Service Account
        - shell: /bin/bash
        - home: /home/worker

    admin:
      user.present:
        - fullname: Search Admin Account
        - shell: /bin/bash
        - home: /home/admin

文件根在主服务器上定义如下,并且我已经重新启动了所有机器:

file_roots:
  base:
    - /srv/salt

答案1

一般情况下,在调试的时候州.highstate你应该试试:

salt(来自 master)
salt-call(来自 minion)

Minion 已可联系到

版本匹配(推荐)

  • 确保 minion/master 软件包的版本匹配。以 Ubuntu 为例(dpkg -l salt-minion在 minion 和dpkg -l salt-mastermaster 上)。

Minion 处于正确状态

  • 彻底清除 minion 上的缓存rm -rm /var/cache/salt/minion/files/base/*
  • 检查以确保 Minion 具有正确的 Grainsalt-call grains.items

检查日志

  • salt-call -l debug state.highstate-- 检查是否可以使用“调试”模式捕获有关错误的更多信息
  • 查看/var/log/salt/minion

相关内容