Windows

Salt has full support for running the Salt Minion on Windows.

There are no plans for the foreseeable future to develop a Salt Master on Windows. For now you must run your Salt Master on a supported operating system to control your Salt Minions on Windows.

Many of the standard Salt modules have been ported to work on Windows and many of the Salt States currently work on Windows, as well.

Windows Installer

A Salt Minion Windows installer can be found here:

The 64bit installer has been tested on Windows 7 64bit and Windows Server 2008R2 64bit. The 32bit installer has been tested on Windows 2003 Server 32bit. Please file a bug report on our github repo if issues for other platforms are found.

The installer asks for 2 bits of information; the master hostname and the minion name. The installer will update the minion config with these options and then start the minion.

The salt-minion service will appear in the Windows Service Manager and can be started and stopped there or with the command line program sc like any other Windows service.

If the minion won't start, try installing the Microsoft Visual C++ 2008 x64 redistributable.

Make sure that the minion config file has the line ipc_mode: tcp

Silent Installer option

The installer can be run silently by providing the /S option at the command line. The options /master and /minion-name allow for configuring the master hostname and minion name, respectively. Here's an example of using the silent installer:

Salt-Minion-0.11.1-Setup-amd64.exe /S /master=yoursaltmaster /minion-name=yourminionname

Installer Source

The Salt Windows installer is built with the open-source NSIS compiler. The source for the installer is found in the pkg directory of the Salt repo here: https://github.com/saltstack/salt/blob/develop/pkg/windows/installer/Salt-Minion-Setup.nsi. To create the installer run python setup.py bdist_esky, extract the frozen archive from dist/ into pkg/windows/buildenv/ and run NSIS.

The NSIS installer can be found here: http://nsis.sourceforge.net/Main_Page

Installation from source

To install Salt from source one must install each dependency separately and configure Salt to run on your Windows host.

Rather than send you on a wild goose chase across the Internet, we've collected some of the more difficult to find installers in our github repo for you.

Install on Windows XP 32bit

  1. Install msysgit
    1. Clone the Salt git repository from github
git clone git://github.com/saltstack/salt.git
  1. Install Microsoft Visual Studio 2008 Express. You must use Visual Studio 2008 Express, not Visual Studio 2010 Express.
  2. Install Python 2.7.x
  3. Add c:\Python27 to your system path
  4. Install the Microsoft Visual C++ 2008 SP1 Redistributable, vcredist_x86.
  5. Install Win32OpenSSL-1_0_0e.exe
    1. Choose first option to install in Windows system directory
  6. Install pyzmq-2.1.11.win32-py2.7.msi
  7. Install pycrypto-2.3.win32-py2.7.msi
  8. Install PyYAML-3.10.win32-py2.7.msi
  9. Install Cython-0.15.1.win32-py2.79.exe
  10. Download and run distribute_setup.py
python distribute_setup.py
  1. Download and run pip
python get-pip.py
  1. Add c:\python27\scripts to your path
  2. Close terminal window and open a new terminal window (cmd)
  3. Install jinja2
pip install jinja2
  1. Install Messagepack
pip install msgpack-python
  1. Install Salt
cd ./salt
python setup.py install
  1. Edit c:\etc\salt\minion
master: ipaddress or hostname of your salt-master
master_port: 4506
ipc_mode: tcp
root_dir: c:\
pki_dir: /etc/salt/pki
cachedir: /var/cache/salt
renderer: yaml_jinja
open_mode: False
multiprocessing: False
  1. Start the salt-minion
cd c:\python27\scripts
python salt-minion
  1. On the salt-master accept the new minion's key
sudo salt-key -A

(This accepts all unaccepted keys. If you're concerned about security just accept the key for this specific minion)
  1. Test that your minion is responding

    1. On the salt-master run:
sudo salt '*' test.ping

You should get the following response: {'your minion hostname': True}

Single command bootstrap script

On a 64 bit Windows host the following script makes an unattended install of salt, including all dependencies:

"PowerShell (New-Object System.Net.WebClient).DownloadFile('http://csa-net.dk/salt/bootstrap64.bat','C:\bootstrap.bat');(New-Object -com Shell.Application).ShellExecute('C:\bootstrap.bat');"

(All in one line.)

You can execute the above command remotely from a Linux host using winexe:

winexe -U "administrator" //fqdn "PowerShell (New-Object ......);"

For more info check http://csa-net.dk/salt