
Installing on Windows 10 Professional
The last platform we are going to cover is Windows 10 Professional; well, sort of. There is no supported way of running an Ansible controller on a Windows machine natively. Because of this, we will be using the Windows subsystem for Linux.
This is a feature, which, at the time of writing, is in beta, and is only available to Windows 10 Professional users. To enable it, you first need to enable developer mode. To do this, open the Windows 10 Settings app and then toggle Developer mode, which can be found under UPDATE & SECURITY, and then For Developers.
Once Developer mode has been enabled, you will be able to enable the shell. To do this, open Control Panel, then click on Programs and Features, and then on Turn Windows features on or off. In the list of features, you should see Windows Subsystem for Linux (Beta) listed. Tick the box next to it and then OK. You will be prompted to reboot your machine. Following the reboot, click on the Start menu and type bash. This will trigger the installation process. You should see something like the following screenshot:

Once downloaded, it will extract and install the subsystem. You will be asked a few questions. As needed, the entire process will take between 5 and 10 minutes. Once installed, you should now have a full Ubuntu 16.04 system running on your Windows machine. You can check this by running the following command:
$ cat /etc/*release
The following screenshot shows the output for the preceding command:

From here, you can run the following commands to install Ansible:
$ sudo -H apt-get install python-pip
$ sudo -H pip install ansible
The following screenshot shows the output for the preceding command:

As you can see, everything works as if you were running an Ubuntu machine, allowing you to run and maintain your Ansible installation in exactly the same way.
The Windows Subsystem for Linux (WSL) is not running on a virtual machine. It is a full native Linux experience baked right into Windows 10 Professional. It is targeted at developers who need to run Linux tools as part of their toolchain. While the overall support for Linux commands is excellent, I would recommend reading through the FAQs written and maintained by Microsoft to get an idea of the limits and also any quirks of the subsystem. The FAQs can be found at https://docs.microsoft.com/en-us/windows/wsl/faq/.
As already mentioned, while this is a viable way of running an Ansible control node on a Windows-based machine, some of the other tools we will be covering in future chapters may not work with Windows. So while you may follow along using the Ubuntu instructions, some parts may not work. Where possible, I will add a note saying that it may not work on Windows-based systems.