Ansible e Windows: uma amizade possível

Provisionando um laboratório para estudar o Ansible e outras coisas

Por: Adelmo da Silva – consultor de sistemas

Esse será, sem dúvidas, um dos artigos mais interessantes que eu já escrevi sobre o Ansible até hoje. Espero que aproveite ao máximo.

Já falamos muito sobre o poderoso Ansible, as suas vantagens, os seus recursos (muitos artigos ainda virão para falarmos sobre), sobre como é possível controlar dezenas, centenas de servidores em uma infra-estrutura e etc. Contudo, falamos apenas de servidores Linux e Solaris, que são bem parecidos. Mas, para alegria de uns e tristeza de outros, existem servidores Microsoft Windows no nosso parque informático. E, sim, o Ansible conversa bem com Windows, eles têm uma bela amizade! Neste artigo, vou te ensinar como preparar um sistema Microsoft Windows para ser controlado pelo mestre Ansible. Bora lá.

1 – Preparando o Windows com todo carinho…

new_cognito

Com os sistemas operacionais Linux e Solaris, o Ansible se conecta através de uma ligação SSH com de confiança, como eu mostrei neste artigo sobre Envio de Chaves SSH no Ansible. Contudo, no Windows é diferente paras com o Ansible. Nele é utilizado o WinRM (Windows Remote Management – Gerenciamento Remoto do Windows), sendo uma implementação da Microsoft do protocolo WS-Management, que é um protocolo padrão baseado em SOAP (Simple Object Access Protocol) que permite a interoperação entre sistemas operacionais e de hardware de diferentes fornecedores.

Para configurarmos o WinRM e deixar o Windows prontinho para o Ansible, precisamos seguir, à risca, estas 5 etapas:

  1. Definir um usuário com perfil administrador no Windows;
  2. Verificar se a versão do PowerShell é compatível;
  3. Habilitar o uso de recursos remotos via PowerShell;
  4. Executar o script para configuração do Ansible;
  5. Preparando o servidor Ansible;
  6. Testes de conexão.

 

2 – Preparando o Windows para o controle do Ansible

new_cognito

2.1. Crie um usuário com perfil de administrador, para que o Ansible possa executar todos os comandos sem restrições.

2.2.  Verifique se a versão é compatível com este procedimento, que é a versão 5 1 14393 693. Para ver a versão do seu PowerShell, digite: (Get-Host).Version;

Ansible e Windows: uma amizade possível

Figura 1 – Verifica a versão do PowerShell

new_cognito

2.3. É necessário habilitar o acesso remoto através do WINRM. Para isso, no PowerShell, digite ps comandos como administrador:

set-executionpolicy remotesigned

set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Ansible e Windows: uma amizade possível

new_cognito

Figura 2 – Habilitar recursos do WINRM

2.4.  Executar o script para configuração para o controle via Ansible. Para isso, basta executar um script chamado ConfigureRemotingForAnsible.ps1. Este script pode ser baixado diretamente do meu Github: https://github.com/adelmosilva/ansible-windows/blob/main/ConfigureRemotingForAnsible.ps1 .

Este script é executado através do Windows PowerShell ISE.

Ansible e Windows: uma amizade possível

new_cognito

Figura 3 – WindowsPoswerShell ISE

Ansible e Windows: uma amizade possível

Figura 4 – Script Ansible executado

Se for o caso, você pode desabilitar o Firewall do Windows ou criar uma regra para habilitar as duas portas do Ansible: 5985 (http) e 5986 (https).

new_cognito

3 – Preparando o Ansible para receber o Windows

3.1. Instalar os pacotes WinRm Python:

yum install python-winrm ou yum install python2-winrm

3.2. No arquivo de inventário do Ansible, ao criar o grupo referentes às máquinas Windows, devemos criar o grupo e um subgrupo com as variáveis que irão auxiliar na conexão entre o Ansible e o Windows:

new_cognito

[srv-win]

192.168.0.50

192.168.0.51

 

new_cognito

[srv -win:vars]

ansible_user=vagrant

ansible_password=vagrant

ansible_port=5985

new_cognito

ansible_connection=winrm

ansible_winrm_transport=basic

ansible_winrm_server_cert_validation=ignore

Dentro de [srv-win] contém os ip’s dos servidores Windows que se deseja gerenciar. Já na secção [srv-win:vars] possui as variáveis para o grupo srv-win:

new_cognito
  • ansible_user=vagrant: define o usuário que irá ser utilizado na conexão remota
  • ansible_password=vagrant: password do usuário
  • ansible_port=5985: porta de conexão remota
  • ansible_connection=winrm: módulo específico do Ansible para gerenciamento do remoto Windows
  • ansible_winrm_transport=basic: tipo de transporte
  • ansible_winrm_server_cert_validation=ignore: Ignora a solicitação de certificados

Depois destas configurações, basta testar a conectividade entre o Ansible e o Windows:

ansible srv-win -m win_ping

Esse comando irá testar a conexão entre o Ansible e os hosts Windows.

Depois desse trabalho todos, agora você pode gerenciar todos os hosts Windows em seu parque informático. Agora, é só saborear aquele cafezinho e aproveitar ao máximo essa amizade entre Ansible e Microsoft Windows.

new_cognito

Até a próxima.

 

 

Partilhar artigo:

Versao3 - Cópia

Somos um portal de notícias, voltado às tecnologias de informação e inovação tecnológica. Informamos com Rigor, Objectividade e Imparcialidade. Primamos pela qualidade, oferecendo aos nossos leitores, a inclusão tecnológica e a literacia digital

+(244) 930747817

info@pti.ao | redaccao@pti.ao

Mais Lidas

Últimos Artigos

Desenvolvido Por SP Media