Pepper is a small CLI tool written in Go to run Salt commands against the HTTP API. It's very thin and there's almost no logic to the script.
Both PAM and LDAP auth methods are supported.
go get github.com/iamseth/pepper
go install github.com/iamseth/pepper
NAME:
pepper - pepper <target> <function> [ARGUMENTS ...]
USAGE:
pepper [global options] command [command options] [arguments...]
VERSION:
0.1.0
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--hostname, -H Salt API hostname. Should include http[s]//. [$SALT_HOST]
--username, -u Salt API username. [$SALT_USER]
--password, -p Salt API password. [$SALT_PASSWORD]
--auth, -a "ldap" Salt authentication method. [$SALT_AUTH]
--help, -h show help
--version, -v print the version
pepper -H https://saltmaster -u salt_user -p password -a ldap '*' test.ping
Or, if you set the following environment variables:
$SALT_USER
$SALT_HOST
$SALT_AUTH
$SALT_PASSWORD
you can just do the following:
# Ping all your hosts
pepper '*' test.ping
# Restart Apache on your web servers
pepper 'web*' cmd.run 'service httpd restart'
# Run a highstate on your Redis boxes
pepper 'redis*' state.highstate