How to Install Windows software with Ansible?
Today I'm going to reveal a secret to installing the software in a Windows-managed host using [Chocolatey Package Manager](https://chocolatey.org/).
I'm Luca Berton and welcome to today's episode of Ansible Pilot
Ansible module win_chocolatey
Chocolatey is the package manager for windows, it has the largest online registry of Windows packages.
At the moment it contains nearly 9000 Community Maintained Packages.
Today we're talking about Ansible module win_chocolatey to automate the software installation process.
The full name is chocolatey.chocolatey.win_chocolatey, which means that is part of the collection distributed by "chocolatey".
It manages packages in Windows using chocolatey. It's the windows correspondent of the ansible package module.
Parameters
name_list_-_string_ - the name of the package
state_string_ - present / latest /absent /downgrade /reinstalled
version_string_ - specific version
pinned_boolean_ - no/yes
source_string_ - URL/path
The parameter list is pretty wide but this four are the most important options.
In the "name" parameter you are going to specify the name of the package or a list of packages.
If you would like to install a specific version you could specify it in the "version" parameter.
The state specifies the action that we would like to perform. In our case for install is "present or latest".
I'd like to mention some additional parameters that might be useful for you.
The "pinned" parameter allows to pin the Chocolatey package or not. Pin a package to suppress upgrades.
During the next upgrade for all packages, Chocolatey will automatically skip the pinned packages.
"source" allows specifying a local repository for packages if available.
## Playbook
Are you ready to make your hands dirty?
Let's jump in a quick live Playbook of a playbook about the win_chocolatey module.
- win_chocolatey.yml
``yaml
---
- name: win_chocolatey module Playbook
hosts: all
become: false
gather_facts: false
vars:
- packages:
- git
- notepadplusplus
tasks:
- name: install packages
chocolatey.chocolatey.win_chocolatey:
name: "{{ packages }}"
state: present
``
[code with ❤️ in GitHub](https://github.com/lucab85/ansible-pilot/tree/master/install%20a%20package%20in%20Windows%20systems)
Conclusion
Now you know better the Ansible module win_chocolatey and how you could use it successfully in your playbook to automate your day-to-day activities.