How to configure a remote Windows Server to Support Ansible

In this artile, you will learn how to configure a remote Windows Server to Support Ansible. Ansible works against multiple systems in your infrastructure at the same time. It does this by selecting portions of systems listed in the Ansible inventory file. This file can be found in this location /etc/ansible/hosts. You can specify a different inventory file using the -i <path> option on the command line Since Windows Server 2012. Please see how to install and configure Ansible on Ubuntu.
Note: WinRM is enabled by default, but in most cases extra configuration is required to use WinRM with Ansible. Below are the steps to configure Windows hosts to be supported by Ansible.
Also, see how to Install and configure Ansible on Azure Virtual Machine, and how to fix “WinRM cannot complete the operation, verify that the specified computer name is valid“.
Prerequisites for managing Server with Ansible
Ensure you have the right version of PowerShell and .NET Framework.
Here is the Concept of Ansible on Windows using Cygwin, how to automate Infrastructure Deployments in the Cloud with Ansible and Azure Pipelines, and how to fix “WinRM cannot complete the operation, verify that the specified computer name is valid“
Ansible WinRM Connectivity setup for Ansible
The default ports for WinRM 2.x are HTTP port 5985 and HTTPS port 5986.
Method 1
This is my recommended method. Right-click on the content and copy the entire content into Notepad ++
The file type and extension (.ps1) must be appended as shown below. Select the location to want to have the WinRM script saved.
In my case, I have saved the file on the Desktop under the name ConfigureRemotingForAnsible.ps1
Next, Then run the PowerShell script. as shown below. Ensure to launch PowerShell as an Administrator
Navigate to the script location and run it. In this case, we have navigated to the Desktop location where we saved the script. Next, proceed and execute the WinRM script on the Windows host.
The output signifies that WinRM has successfully been installed.
This will set the basic settings. The ConfigureRemotingForAnsible.ps1 script is intended for training and development purposes only and should not be used in a production environment since it enables settings (like Basic authentication) that can be inherently insecure.
When this step is complete and the host inventory file is configured correctly as described in this IP Address UNREACHABLE: HTTP connection pool Max exceeded. Then you should be able to ping the remote host successfully as shown below.

Note: You may need to configure the Execution Policy in PowerShell in order to allow scripts to run. See the following link for more information on setting up a Windows host.
Method 2
Use this method before if you will like to run the script locally without an internet connection. To run this command remotely, use the PSEXEC command to do this
psexec \\myserver -accepteula -nobanner -s -u DOMAIN\Administrator powershell -ExecutionPolicy Bypass -Command "iwr https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -UseBasicParsing | iex"
There is also a free utility on enabling WinRM on Windows Machine locally and remotely
I hope you found this guide on how to configure a remote Windows Server to Support Ansible very useful. Please feel free to leave a comment below.



