8000 GitHub - gluzangi/winansible
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gluzangi/winansible

Repository files navigation

Ansible-On-Windows

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.

REQUIREMENTS

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.

Porting To Windows Environment Preparation

  1. winAnsible will require a preinstallation of MSYS2 to run.

  2. Download and extract the latest pre-built release.

  3. Start the MSYS2 terminal.

Installation Restrictions:
  • 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.

Difference between MSYS2 and MinGW

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.

Ansible On Windows Installation

# 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
Known Ansible Limitation:

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.

For Production Environments

A Windows Installer with automated script to prepare ALL required packages to complete a fully functional Ansible-On-Windows install

TODO

  1. v1.0
  • Complete Ansible install automation as a script ansible-on-win.sh
  • Add Code Comments
  1. 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.

Ansible-On-Windows References

License

MIT or GPL

Free Software, Hell Yeah!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0