I'm starting a project which uses Salt Stack to coordinate provisioning. But it isn't working now -- the log file (on the minion, at /var/log/salt/minion) isn't showing any errors, but the minion isn't doing what I ask it to.
Basically, I'm building up a SaltStack with a couple of top files and at least two minion configs. In particular, I'm debugging a minion I'm calling bootstrap (because it's supposed to bootstrap a salt master on the minion):
master: localhost
file_client: local
file_roots:
base:
- /srv/salt/base
- /srv/salt/states
master:
- /srv/salt/master
- /srv/salt/master/states
As far as I can tell, Salt is loading up the top files just fine, and is parsing them into valid objects, but Salt is not running any commands in response to the objects. Indeed, the minion log file says:
2014-03-01 23:00:09,644 [salt.utils.jinja ][DEBUG ] Jinja search path: '['/srv/salt/base', '/srv/salt/state
2014-03-01 23:00:09,651 [salt.template ][DEBUG ] Rendered data from file: /srv/salt/base/top.sls:
base:
'*':
- edit.vim
- essential
- users.root
2014-03-01 23:00:09,656 [salt.loaded.int.render.yaml][DEBUG ] Results of YAML rendering:
OrderedDict([('base', OrderedDict([('*', ['edit.vim', 'essential', 'users.root'])]))])
That all looks okay, except that it immediately jumps to:
2014-03-01 23:00:09,661 [salt.utils.jinja ][DEBUG ] Jinja search path: '['/srv/salt/master', '/srv/salt/mas
2014-03-01 23:00:09,662 [salt.template ][DEBUG ] Rendered data from file: /srv/salt/master/top.sls:
master:
'10.47.94.0/24':
- match: ipcidr
- master
- srv.dns.unbound
2014-03-01 23:00:09,665 [salt.loaded.int.render.yaml][DEBUG ] Results of YAML rendering:
OrderedDict([('master', OrderedDict([('10.47.94.0/24', [OrderedDict([('match', 'ipcidr')]), 'master', 'srv.dns.unbound'])]))])
In the entire rest of the log file, base is never mentioned again. And the commands/states associated with base are not getting run. I do see log entries for edit.vim, srv.dns.unbound, etc. But they all follow the same pattern: parse and do nothing.
What am I doing wrong? I get the vague impression that it has to do with having multiple file_roots in my minion config, but I'd rather not make architectural changes until I know what the architecture should be. (I had already tried to use Salt once before, ran into "this" silent error, started over, and now ran into it again)
salt-call --local test.pingto see if it rings a bell. - leonardinius