Instalando Aplicativos Windows em massa usando ansible

Nesse artigo irei mostrar uma forma de instalar aplicativos Windows msi  de forma massiva em uma rede windows com  Domínio Active Directory.

1 – Vamos baixar o google chrome que será o nosso app exemplo nesse link .

Você deverá instalar o aplicativo manualmente e verificar o ID gerado pelo programa .

Ele deve ficar nesse caminho via regedit:

HKEY_LOCAL_MACHINE:\Software\Microsoft\Windows\CurrentVersion\Uninstall

No nosso caso ficou com esse ID “{6EA4A09D-E0E2-358F-B54C-79106D2D2C95}”

 

 

2 – Você deve fazer o setup do Winrm no servidor ou estação de trabalho , descrito nesse documento:

https://docs.ansible.com/ansible/2.5/user_guide/windows_setup.html

3 – Vamos criar a pasta onde ficará nossos arquivos ansible.

mkdir deploy-windows-package
cd deploy-windows-package

4 – Gerar uma role , que guardará nossa configuração .

mkdir roles
cd roles
ansible-galaxy init windows

5 – Criar dois arquivos : deploy-windows.yml e  hosts.

Lembrando que o Usuário deve ser local admin da máquina.

Você deve altrar de acordo com seu ambiente.

6 – O Arquivo de hosts com o seguinte conteúdo :

[windows]
win10 ansible_host=192.168.250.101    ansible_user=julio3  ansible_password=SuaSenha 
Windows2016 ansible_host=192.168.250.100  ansible_user=julio2 ansible_password=SuaSenha 
[windows:vars]
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=ntlm

Referente ao método de autenticação.

Existem outros métodos de autenticação descritos nesse endereço:

https://docs.ansible.com/ansible/latest/os_guide/windows_winrm.html

No nosso caso vamos usar ntlm .

7 – O arquivo deploy-windows.yml .

- hosts: all
  ignore_errors: yes
  roles:
    - role: windows

8 – Em roles/windows/vars/main.yml vamos inserir nossas tarefas:

---
- name: COPY | Copiando arquivo da sua máquina local para máquina remota
  win_copy:
    #Local onde você salvou deu executavel em maquina local
    src: /home/julio/Downloads/googlechromestandaloneenterprise64.msi
    dest: C:\temp\


- name: Install Google Chrome  from msi with a permanent log
  ansible.windows.win_package:
    path: C:\temp\googlechromestandaloneenterprise64.msi
    product_id: '{6EA4A09D-E0E2-358F-B54C-79106D2D2C95}'
    #caso precise remover o pacote usar o state absent
    state: present
    #state: absent
    log_path: c:\temp\googlechromestandaloneenterprise64-{{lookup('pipe', 'date +%Y%m%dT%H%M%S')}}.log

 

9 – Executando a playbook.

 

ansible-playbook -i hosts deploy-windows.yml

 

Documentação de referência:

https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_package_module.html

Vou deixar o repositório do github a baixo.

https://github.com/xcardoso/deploy-windows-package




Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *