Skip to content

TechDirectArchive

Hands-on IT, Cloud, Security & DevOps Insights

  • Home
  • About
  • Advertise With US
  • Reviews
  • Contact
  • Toggle search form
Home » Configuration Management Tool » Concept of Ansible on Windows using Cygwin

Concept of Ansible on Windows using Cygwin

Posted on 12/02/202020/03/2024 IT Expert By IT Expert 2 Comments on Concept of Ansible on Windows using Cygwin

This is one of the famous configuration management (Orchestration) tools in existence today. Ansible is agentless, powerful automation that enables you to deliver configurations and deployment across your IT environment. In this article, you will learn the “Concept of Ansible on Windows using Cygwin”. Please see How to determine the Cygwin version in Windows, How to install Kerberos packages with Cygwin on Windows, and How to Automate Infrastructure Deployments in the Cloud with Ansible and Azure Pipelines.

Configuration management systems are designed to make controlling large numbers of servers easy for administrator teams.

They allow you to control many different systems in an automated way from one central location. Here are examples of other configuration Tools: Chef, Puppet, Salt and CFEngine, etc. See the following link. Here are some related contents: How to install Ansible on Windows, how to view installed packages in Cygwin in Windows, how to configure Kerberos for Ansible Authentication, and how to determine Cygwin version.

What is Cygwin?

Cygwin is free software that provides a Unix-like environment and software toolset to users of any modern x86 32-bit and 64-bit versions of Microsoft Windows. Cygwin consists of a Unix system call emulation library, cygwin1.dll, together with a vast set of GNU and other free software applications organized into a large number of optional packages.

Among these packages are high-quality compilers and other software development tools, an X11 server, a complete X11 development toolkit, GNU emacs, TeX and LaTeX, OpenSSH (client and server), and much more, including everything needed to compile and use PhysioToolkit software under MS-Windows.

Traditionally, Ansible is more focused on Linux, but with Microsoft’s support of Open Source and adoption lately, Windows Support for Ansible is possible.

Ansible’s native Windows support uses Windows PowerShell remoting to manage Windows in the same way that Ansible manages Linux. Ansible allows the administration of Windows using local or domain users. Here is Ansible’s native Windows support; you can, out of the box.

- Gather facts on Windows hosts
- Manage and install Windows updates
- Fetch files from remote sites
- Push and execute any PowerShell scripts you write
- Install and uninstall MSIs
- Enable and disable Windows Features
- Start, stop, and manage Windows services
- Create and manage local users and groups
- Manage Windows packages via the Chocolatey package manager https://chocolatey.org/

Ansible’s easy extensibility enables you can write your own modules in PowerShell and extend Ansible for whatever other functionality you need for your environment.

Cygwin Host Requirements

For Ansible to manage Windows effectively, the following has to be followed. Windows version: Supports Windows 10, Windows Server 2016, and 2019.

Ansible requires PowerShell 3.0 or newer and at least .NET 4.0 to be installed on the OS. It requires a WinRM listener to be created and activated. Note: If your base image (OS images) does not meet PowerShell 3.0, this can be upgraded.

Please see how to configure a remote server (windows) to Support Ansible, and learn about the “Overview of Azure Cloud Shell“.

What is WinRM

Windows Remote Management (WinRM) is the Microsoft implementation of the WS-Management Protocol, a standard Simple Object Access Protocol (SOAP)-based, firewall-friendly protocol that allows hardware and operating systems, from different vendors, to interoperate.

The WS-Management protocol specification provides a common way for systems to access and exchange management information across an IT infrastructure.

In other terms, WinRM is a management protocol used by Windows to remotely communicate with other servers.

Note: WinRM does everything which can be performed remotely by WMI and RPC. With this distinction that there are no proprietary RPC calls over TCP, but are handled via HTTP port 80 or 443. You can configure additional listeners, which then accept connections by default on ports 5985 HTTPS 5986. For the administration "over the Internet" exactly one port is sufficient and even via a proxy server a connection is usually possible. For more information, see this link. 

When running PowerShell 3.0, ensure you pay attention to the known bug, (that limits the memory available to WinRM that results in Ansible failing to execute certain code on Windows devices) by applying the hot-fix.

Setup the WinRM

When the PowerShell prerequisite is met; ensure to install the WinRM in order to allow Ansible to connect to it. The WinRM service has two components that enable Ansible to interface with Windows, the configuration settings are as follows;

  • Listener and
  • Service

See an example setup script to configure HTTP and HTTPS Listeners. This script as stated by Ansible uses a self-signed certificate and enables basic authentication only. Therefore it is not a good solution for production.

WinRM Listener

This service listens to requests on one or more ports. Note: This one or more ports can have the listener created and configured on them. This is how to view the current listeners that are running on the WinRM service, run the cmd and execute the command without the quotes included. “ winrm enumerate winrm/config/Listener”.

See the documentation on how to create a WinRM listener via PowerShell (ensure to provide the certificate thumbprint).

How does Ansible work?

Ansible works by configuring remote devices from a central device that has Ansible software installed.

It has a simple architecture and communicates over normal SSH channels for Unix systems or WinRM for Windows systems in order to retrieve information from remote machines, to execute automation tasks, and YAML files to define provisioning details (issue commands), etc.

It is worth noting that Ansible is idempotent, meaning changes are only infected once and when to run again, nothing changes. Ansible uses the declarative statement

Ansible Architecture

1: Inventory file:  This is simply a list of hosts (targets)
2: Playbooks: Commands that describe the desired actions (plain text YAML files)  YAML  means Yet Another Markup Language.

  • Playbook contains plays
  • Plays contain tasks
  • Tasks call Modules

3: Tasks run sequentially as configured and defined
4: Handlers are triggered by tasks and run once at the end of each play
5: Uses WinRM for communication( installed by default in Windows System)
6: Modules: This controls system resources, packages, etc. they are automated.
7: Variables: Helps alter how the playbook runs and can be used anywhere in the playbook.

Advanced playbooks capabilities

Ansible Roles: These are unique kinds of playbooks that are fully self-contained with tasks, variables, configuration templates, and other supporting files. To run a playbook, run the command below.

$ansible-playbook –I inventory playbook.yml

Ansible Installation on Windows OS

Installing Ansible generally is pretty straightforward forward but on Windows, it is a little bit complicated. If you wish to install Ansible on Windows, follow these steps here “how to install Ansible on Windows with Cygwin“. Note: On the control, node needs to have Ansible installed.

When updates are already applied (Target stage changed) and Ansible is run, Ansible will report that these updates have been applied already (i.e., no state changes made and target system is in the desired state).

I hope you found this blog post helpful on the “Concept of Ansible on Windows using Cygwin”. If you have any questions, please let me know in the comment session.

Rate this post

Thank you for reading this post. Kindly share it with others.

  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on Facebook (Opens in new window) Facebook
  • Share on Pinterest (Opens in new window) Pinterest
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Telegram (Opens in new window) Telegram
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on Threads (Opens in new window) Threads
  • Share on Nextdoor (Opens in new window) Nextdoor
Configuration Management Tool Tags:Configuration Management Tool, Windows 10

Post navigation

Previous Post: How to use SysInternals Live Tools
Next Post: Windows Editions: Various Operating Systems available for Windows

Related Posts

  • ansible logo600 591x296 1
    Ansible_user=UNREACHABLE {Failed to connect to the host via SSH: SSH: Could not resolve hostname (Name or service not known, unreachable true) Configuration Management Tool
  • image 42
    How to Install and Setup WordPress into a cPanel and Configure Your First WordPress Theme Configuration Management Tool
  • jmeterimage
    Apache JMeter Load Testing: Test Mobile Apps on Windows Configuration Management Tool
  • ansible
    KDC reply did not match expectations while getting initial credential Configuration Management Tool
  • scandium
    How to Test Web Applications Using Scandium Configuration Management Tool
  • 1 ifg3ir3l 8ejus3pueqt0a
    Fix cannot find KDC for realm while getting initial credentials and kinit configuration file does not specify default realm Configuration Management Tool

More Related Articles

ansible logo600 591x296 1 Ansible_user=UNREACHABLE {Failed to connect to the host via SSH: SSH: Could not resolve hostname (Name or service not known, unreachable true) Configuration Management Tool
image 42 How to Install and Setup WordPress into a cPanel and Configure Your First WordPress Theme Configuration Management Tool
jmeterimage Apache JMeter Load Testing: Test Mobile Apps on Windows Configuration Management Tool
ansible KDC reply did not match expectations while getting initial credential Configuration Management Tool
scandium How to Test Web Applications Using Scandium Configuration Management Tool
1 ifg3ir3l 8ejus3pueqt0a Fix cannot find KDC for realm while getting initial credentials and kinit configuration file does not specify default realm Configuration Management Tool

Comments (2) on “Concept of Ansible on Windows using Cygwin”

  1. Avatar photo Terry Odom says:
    18/03/2021 at 2:30 PM

    Near the end of the article it looks incomplete when referencing Ansible installation on Windows and then proceeds to say “If you wish to install Ansible on Windows, follow these steps” but there are no steps. I didn’t think Ansible could be installed on Windows, correct? Otherwise, VERY informing article for anyone starting to use Ansible with Windows. Thanks!

    Log in to Reply
    1. chris Christian says:
      18/03/2021 at 3:25 PM

      Hi Terry, thank you for the feedback! I forgot to reference the article. Here it is https://techdirectarchive.com/2020/03/01/ansible-installation-on-windows/

      Log in to Reply

Leave a Reply Cancel reply

You must be logged in to post a comment.

Microsoft MVP

VEEAMLEGEND

vexpert-badge-stars-5

Virtual Background

GoogleNews

Categories

veeaam100

Veeam Vanguard

  • VBEM Licensing And Backup Server
    How to license Veeam Enterprise Manager and Add VBR Servers Backup
  • feature functionapp
    Deploy a function app from Visual Studio to Azure Platform AWS/Azure/OpenShift
  • slide10
    Add Dynamic Wallpaper controlled by time on Windows 10 and 11 Windows
  • Banner
    How to Scan Your Code by Integrating SonarCloud into Your GitHub Repository Security | Vulnerability Scans and Assessment
  • 1 pUEZd8z  1p 7ICIO1NZFA
    The package python-virtualenv has no installation candidate error Linux
  • windows powershell thumbnail
    Unable to uninstall AppX? How to uninstall builtin programs using PowerShell in Windows 10 Scripts
  • screenshot 2020 02 07 at 20.59.01
    How to use the PsInfo utility from SysInternals Windows Server
  • image 23
    Copy Deployment Share between Servers without using linked Deployment Shares Windows

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,805 other subscribers
  • RSS - Posts
  • RSS - Comments
  • About
  • Authors
  • Write for us
  • Advertise with us
  • General Terms and Conditions
  • Privacy policy
  • Feedly
  • Telegram
  • Youtube
  • Facebook
  • Instagram
  • LinkedIn
  • Tumblr
  • Pinterest
  • Twitter
  • mastodon

Tags

AWS Azure Bitlocker Microsoft Windows PowerShell WDS Windows 10 Windows 11 Windows Deployment Services Windows Server 2016

Copyright © 2025 TechDirectArchive

Loading Comments...

You must be logged in to post a comment.