# Cfg Checker
# Environment file example

# Either open a tunnel from your hosts using 
# 'ssh -L 16969:<cfg-IP>:6969 <user>@<lab-IP>'
# Or run it from within a cloud

# Main log file of the tests
LOGFILE = 'cfg_checker.log'

# SSH is used when environment is not local to get salt password
# in order set options and user for the ssh, 
# please, use ~/.ssh/config
# SSH hostname of salt master node
SSH_KEY=<ssh_keyfile_path>
SSH_USER=<ssh_user>
SSH_HOST=<ssh_hostname>

# Salt master host to connect to
SALT_URL=127.0.0.1

# Salt master port.
# Note that you can safely execute second master (not on production)
# on the same cfg node with diferent port and set logging to ALL
SALT_PORT=6969

# User and password to auth on master. Can be found in /srv/salt/...
SALT_USER=salt

# default timeout for salt calls
SALT_TIMEOUT=30

# Folder where salt points its filesystem: salt://
SALT_FILE_ROOT=/usr/share/salt-formulas/env/

# Subfolder with scripts to be uploaded
SALT_SCRIPTS_FOLDER=test_scripts

# All nodes list file overide
SALT_NODE_LIST_FILE=etc/example._list
