Although, Chef was not originally designed or tested to run on Windows, it should still be possible to write functional Chef recipes to support Windows Server 2008 and up. Be sure to follow the specific safeguards described below.
Supported Chef Providers
The following list represents the Chef providers that are supported on Windows (may require getting the latest version of RightLink for full support):
- File, Directory, Template, RemoteFile, RemoteDirectory - Avoid using owner and group attributes as these raise exceptions on Windows. Custom providers to handle NTFS security management still need to be developed. RightLink supports remote file management running in Chef solo mode.
- HttpRequest, RubyBlock - No known issues.
- Execute, Script, Ruby, Perl, Python - RightLink now has working versions of these providers. In order to use these providers, you must install your own version of ruby, perl or python and place them on the PATH. The following Execute command arguments are ignored: timeout, user, group, umask.
Unsupported Chef Providers
The following list represents the Chef providers that are not supported on Windows (at this time):
- Cron - Not supported due to the use of Linux commands. Windows' Task Scheduler has a command-line utility called schtasks.exe (for use in PowerShell, etc.).
- Link, Mount - Not supported due to use of Linux commands. It is possible to create hard links, symbolic links and mount points under NTFS but there are no distributed utilities for these ("mklink.exe" is available for Vista and above).
- Service - Not supported due to use of Linux commands. It is possible to stop/start services using "net" commands in Windows and also by using "sc.exe".
- Bash, Csh - Not supported.
- User, Group - Not supported as UIDs / GIDs are not directly portable to Windows. Custom providers will handle Windows user / group management.
- Route, Ifconfig - Not supported due to use of Linux commands. See the DNS WMI Provider reference in MSDN for a WMI solution (in PowerShell, etc.).