A very similar version of this question is asked here , but it's completely different since the person had their top file in the wrong directory.
I have 3 projects, that I'll call project1, project2, and project3. My goal was to create a master/minion setup where my srv/salt directory looked like this:
/srv/salt |top.sls |/project1 |__/postgresql |__init.sls |__config.sql |__/iptables |__init.sls |__config.sh |/project2 |__/tomcat |__init.sls |__config.sh |__/java |__init.sls |__config.sh |/project3 |__/serverconfig |__init.sls |__config.sql |__/conky |__init.sls |__config.sh
To accomplish this I edited /etc/salt/master to read
#/etc/salt/master file_roots: base: - /srv/salt project1: - /srv/salt/project1 project2: - /srv/salt/project2 project3: - /srv/salt/project3
I also wanted to have nodes set up since I have static servers that will be involved in each project, and that's a very intuitive way for me to organize them.
I started by editing /etc/salt/master to show my nodegroups
#/etc/salt/master nodegroups: project1: 'L@project1_server1,project1_server2,project1_server3' project2: 'L@project2_server1,project2_server2,project2_server3' project3: 'L@project3_server1,project3_server2,project3_server3'
When running the once this was set up, I tried applying the project1 state to its servers by using the following command:
salt -N project1 state.highstate
This completes correctly for project1_server2, project1_server3, but fails on project1_server1.
The error for project1_server1 is "No Top file or external nodes data matches found"
I'm open to suggestions for how this setup could be more easily implemented, but I'd like to know the reason behind this not working. Thanks for any help.
adding my top.sls file
#/srv/salt/top.sls project1: project1: - match: nodegroup - postgresql - iptables project2: project2: - match: nodegroup - tomcat - java project3: project3: - match: nodegroup - serverconfig - conky
Output from salt -N project1 grains.item id
project1_server1: ---------- id: project1_server1 project1_server2: ---------- id: project1_server2: project1_server3: ---------- id: project1_server3:
The correct answer was provided by ChrisV
The syntax errors for the node in /etc/salt/master were the problem. I needed to change that, and then restart salt-master
pkill salt-master salt-master -d