83

Sometimes my saltmaster hangs for a while on salt '*' test.ping waiting for downed minions to reply. Is there a way so see a list of connected minions, regardless of whether they respond to test.ping?

Petrus Theron
  • 1,541
  • 5
  • 16
  • 24

6 Answers6

99

The official answer:

salt-run manage.up

Also useful are:

salt-run manage.status

salt-run manage.down
Dan Garthwaite
  • 2,922
  • 18
  • 29
  • 2
    "salt-run -d" Gives a full list of all the modules you can run with salt-run, well worth a read – Chris Huang-Leaver Oct 23 '15 at 06:12
  • 6
    `salt-run manage.versions` is also quite useful (reports minions' running versions and compares them to the master's) – sxc731 Nov 07 '16 at 14:29
  • 1
    Note that salt-run `manage.up` and `manage.status` appears to do a `test.ping` under the hood. At least, when I ran `manage.up`, it showed on the minions logs as `test.ping`..... If you want to ensure it doesn't need to send anything, use `alived` or one of the other manage functions – sdfgeoff Apr 26 '19 at 08:04
13

From the master type:

ls -1 /var/cache/salt/master/minions

or:

ls -1 /etc/salt/pki/master/minions

Entering a faulty salt query (ex. salt '*' -) will also return a list of all the minions each followed by a message stating that the command is not available. You can grep/cut away the extraneous characters. Neither of these options are particularly elegant and the later doesn't address the timeout but it works while I'm looking for an answer to a similar question; "How to list all associated minions via the saltstack python api?".

Will
  • 301
  • 1
  • 3
  • I think something must have changed /var/cache/salt/master/minions appears to be a non-existent location now, /etc/salt/pki/master/minions is still good to go. – Oly Dungey Nov 30 '15 at 16:46
  • @OlyDungey Maybe it is distribution dependent. What Linux distribution were you using at that time ? – SebMa Sep 02 '22 at 08:52
9

There are few new commands that makes it much more easier,

salt-run manage.alived Print a list of all minions that are up according to Salt's presence detection (no commands will be sent to minions)

salt-run manage.allowed Print a list of all minions that are up according to Salt's presence detection (no commands will be sent to minions)

salt-run manage.not_alived Print a list of all minions that are NOT up according to Salt's presence detection (no commands will be sent)

salt-run manage.not_allowed Print a list of all minions that are NOT up according to Salt's presence detection (no commands will be sent)

salt-run manage.not_joined Print a list of all minions that are NOT up according to Salt's presence detection (no commands will be sent)

Sufiyan Ghori
  • 661
  • 7
  • 6
7

"salt-key -L" will list all minions that whose public keys you've accepted on your master.

Utah_Dave
  • 532
  • 2
  • 6
5

I think one can use the grains module to achieve this:

salt '*' grains.get id
Kurt Zhong
  • 269
  • 3
  • 3
-6

To make ping to all minions, try on salt master node:

salt '*' test.ping 
  • 5
    Have you read the question? It specifically is about alternatives to your method because this doesn't work in some cases. – Sven Jul 22 '16 at 12:58