winAnsible is an attempt to create an automated Ansible on Windows installer to an experimental Ansible implementation on Windows. In the meantime, the entire manual process to natively run Ansible-On-Windows is distilled over the following steps.
To port Ansible and make it run on Windows requires a number of tools to create the appropriate build environment to work with :
- MSYS2 - independent rewrite of MSYS, based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 with the aim of better interoperability with native Windows software.
- git - distributed revision control system aimed at speed,data integrity,and support for distributed, non-linear workflows.
- pacman - ported package management system from Archlinux
- python and python-pip - Python programming language, use pip to install and manage software packages written in Python.
-
winAnsible will require a preinstallation of MSYS2 to run.
-
Download and extract the latest pre-built release.
-
Start the MSYS2 terminal.
- MSYS2 can't be installed on FAT* partitions.
- Current MSYS2 can't be installed on Windows XP anymore.
- To install Ansible atop Git-For-Windows would require Git-For-Windows SDK to expose pacman tool.
MSYS2 refers to the libraries and programs that use the POSIX emulation layer ("msys2 runtime", derived from Cygwin's cygwin1.dll). It is very easy to port libraries and programs from Unix/Linux because most of the POSIX semantics is emulated reasonably well, for example the fork() function. Bash and Perl are examples of MSYS2 programs.
MinGW refers to libraries and programs that are compiled using GNU tools but do not require any POSIX semantics, instead relying on the standard Win32 API and the C runtime library. MinGW stands for "Minimal GNU for Windows". Examples: cURL (a library to talk to remote servers via HTTP(S), (S)FTP, etc), emacs, Inkscape, etc
The POSIX emulation layer of MSYS2 binaries is convenient, but comes at a cost: Typically, MSYS2 programs are noticably slower than their MinGW counterparts (if there are such counterparts). As a consequence, the Git for Windows project tries to provide as many components as possible as MinGW binaries.
# install git on MSYS2 shell
$ pacman -Syu git
# get a fresh copy of Ansible-On-Windows
$ git clone https://gitlab.com/gluzangi/winansible.git $HOME/winAnsible
# install Ansible
$ $HOME/winAnsible/ansible.on.win.sh
Mostly are SSH related features that have been observed to be missing (or need a workaround)
ControlPath
to store the “control socket” for the multiplexed connections.ControlMaster
to activate multiplexing. SSH will try to use a master connection if one exists.ControlPersist
to keep the master connection alive for the specified period of time after it has remained idle (no connections). After that time, the master connection will be closed.ln -s TARGET LINK_NAME
symlinks creation command don't seem to work on MSYS2.
A Windows Installer with automated script to prepare ALL required packages to complete a fully functional Ansible-On-Windows install
- v1.0
Complete Ansible install automation as a script ansible-on-win.shAdd Code Comments
- v1.1
- Add Ansible upgrade automation as a script ansible-on-win.sh
- Reaserch on InstallForge and alternatives for Windows Software Packaging.
- Git-On-Windows Installer Generator
- Rethink Github Repos.
- How MSYS2 Differs From Cygwin
- Running Ansible On Windows
- Babun - A Windows Shell
- Ansible Running On Babun
- Install Python Packages Using PIP
MIT or GPL
Free Software, Hell Yeah!