Automatize o Windows com Ansible Winrm

Automatize o Windows com Ansible Winrm

Muitas pessoas têm conceitos errôneos sobre Ansible e as plataformas que ele suporta, acreditando que é acessível apenas para o Ubuntu. No entanto, Ansible também pode ser usado para controlar PCs Windows, dispositivos conectados, dispositivos de segurança da Internet, serviços da Web, aplicativos e outras coisas. Vamos falar sobre o uso do Windows com Ansible neste tutorial.

A ferramenta Ansible Configuration pode administrar e realizar tarefas essenciais nas instalações do Windows, como gerentes remotos com alertas de WinRM e proteção. Apesar de exigir que o Ubuntu opere em Ansible, os controladores da Microsoft podem administrar e gerenciar seus dispositivos usando Ansible, apesar de ter qualquer experiência anterior com os terminais do Ubuntu. Os controladores da Microsoft poderão administrar o Microsoft Windows usando Ansible de alguma maneira relevante para eles devido à funcionalidade nativa do Windows que emprega o Microsoft Windows PowerShell Remote. Soluções avançadas para controlar e gerenciar as plataformas do Microsoft Windows estão incluídas na plataforma de software Ansible para gerenciamento organizacional. Você pode automatizar a implantação, a ativação do software e a integração do sistema para um ambiente multivendor com o auxílio da plataforma de software Ansible.

Na Ansible, a maioria das terminologia e diretrizes usadas para gerenciar hosts remotos do Linux, bem como essas terminologias se aplicam igualmente aos hosts do Microsoft Windows. Mas ainda existem certas peculiaridades sempre que diz respeito a variáveis ​​de Ansible, como separadores de caminho ou atividades específicas do OS. O WinRM deve ser configurado para permitir o acesso aos sistemas Windows do Ansible Controller. Você pode ser iniciado utilizando Ansible para o Microsoft Windows em suas configurações de desenvolvimento ou monitoramento executando o script PowerShell. Todo host autorizado do Microsoft Windows é configurado pelo script para WinRM.

Pré -requisitos:

Por favor, certifique -se de sempre ter esses requisitos:

Versão: Vamos utilizar o Ansible Controller versão 2.9. Para fazer alterações, precisamos de um servidor de controle para Ansible e, neste caso, estamos usando Ansible como um controlador com o endereço IP 192.168.5.220.

Host Windows: Exigimos que eles interajam com os hosts locais. Além disso, estamos usando o host do Windows neste caso como um servidor remoto de destino durante a operação.

Pitão: Seu dispositivo host Ansible Controller será configurado para executar o Python. O Python utilizará a versão 2, enquanto a versão 3 também é uma opção.

Pacote: O servidor host do Windows será configurado para instalar o pacote "pip".

Windows Workstation: Você precisará gastar tempo em um console do Windows à medida que pré-configurar o host que a Microsoft usará para lidar.

Concha de potência: O servidor Windows terá a capacidade de controlar o acesso remoto do PowerShell.

Exemplo: estabelecendo um host do Microsoft Windows para permitir conexões com o Ansible Controller

Neste exemplo, primeiro, trabalharemos para o host remoto de destino que é Windows_host. Então, trabalharemos com Ansible para que não haja confusão para o usuário.

Target window_host

Não há servidores necessários para Ansible. Portanto, o gerenciador remoto SSH e Windows são compatíveis com o Windows Winrm. Winrm significa Windows Remote Manager e é frequentemente usado em SSH por causa da estreita integração do WinRM.

PS C: \ Windows \ System32> Winrm Get Winrm/Config/Service

Configure o winrm

Depois disso, vamos atualizar o WinRM no Microsoft Windows. O software Ansible criou comandos disponíveis para avaliar o WinRM e executar os ajustes necessários para que o Ansible possa acessar esses comandos. Embora queremos utilizar apenas credenciais básicas, preferimos empregar algo mais seguro para acessá -lo. A seguir, estão as etapas para a atualização do WinRM:

Salvando o caminho dos comandos

Usaremos os comandos, por isso, primeiro lançamos a janela Microsoft PowerShell Terminal para que possamos salvar o caminho dos comandos.

PS C: \> $ url = "https: // RAW.GithubUserContent.com/Ansible/Ansible/Devel/Exemplos/Scripts/
ConfigureRemotingForAnsible.ps1 "
Endereço do armazenamento do comando

Usaremos o URL abaixo para que possamos armazenar facilmente os comandos lá:

PS C: \> $ file = "$ Env: Temp \ ConfigureRemotingForansible.ps1 "

Baixe os comandos e mostre -os localmente

Agora, baixaremos os comandos e exibiremos esses comandos em um documento local.

PS C: \>.Líquido.Cliente da web).Downloadfile ($ url, $ arquivo)

Execute os comandos

Para executar, o comando é o caminho que mostrará a execução do documento.

PS C: \> PowerShell.Exe -executionPolicy Bypass -File $ arquivo

Depois de escrever o caminho acima, obteremos a saída abaixo no PowerShell no Windows.

Verifique a conectividade WinRM

Isso é para verificar se a conexão do WinRM é construída com Ansible ou não.

Ps c: \> winrm enumerar winrm/config/ouvinte

Como mostrado, Ansible e WinRM são compatíveis entre si.

Controlador Ansible

Este é o funcionamento da ferramenta Ansible e os comandos são usados ​​pelo controlador para que possa configurar as informações e criar a conexão entre o Windows e Ansible. Primeiro, vamos criar o manual.

Criando o manual

Agora, gerenciaremos a implantação e a atualização de pacotes. Para isso, vamos criar um manual no Ansible First:

[root@master Ansible]# nano win_ping.yml

Aqui está a declaração do manual Ansible. Quando o manual Win_Ping.YML é criado, então será lançado no novo terminal de Ansible. Aqui, escreveremos os hosts e a tarefa que queremos executar. Em win_ping.YML, primeiro nomeamos o manual que queremos fazer no manual.

Em seguida, escreveremos o nome dos hosts, pois estamos configurando os dados do host do Microsoft Windows. Então, o nome do host de destino é "Windows_host". Em seguida, passamos o "falso" para a opção Gather_fact do manual para que não recupere as informações do host de destino do alvo no manual. Em seguida, listamos as tarefas no manual. Queremos verificar a conexão entre o Ansible Playbook Controller e o host de destino do destino, para que passemos o nome do manual na tarefa.

- Nome: Teste do módulo Win_ping
Hosts: Windows_host
Torne -se: Falso
Gather_Facts: False
tarefas:
- Nome: conexão de teste
win_ping:

Criando o arquivo de inventário

Após a criação e rescisão do manual, criaremos o arquivo de inventário para fornecer as informações sobre o host do Windows aqui. Escreveremos o endereço IP, nome do usuário, senha, nome da conexão, número da porta e validação do WinRM. Esta é a declaração que escreveremos para construir o arquivo de inventário em Ansible.

[root@master Ansible]# nano win_ping.yml tudo:
anfitriões:
Windows_host:
Ansible_host: 192.168.5.220
Ansible_user: Ansible
Ansible_password: ********
Ansible_Connection: WinRM
Ansible_port: 5986
Ansible_winrm_server_cert_validation: ignore

Depois de fornecer as informações necessárias sobre o host do Windows de destino, executaremos o manual junto com o arquivo de inventário. Para fazer isso, escreva o comando abaixo:

[root@master Ansible]# Ansible-playbook win_ping.yml -i host.yml

Como mostrado, a conexão entre o controlador Ansible e o host do Windows foi feita com sucesso.

Conclusão

Usando o pacote WinRM em Ansible, aprendemos a automatizar o Microsoft Windows nesta palestra. Descrevemos em detalhes como configurar um host do Microsoft Windows para Ansible. Ansible é uma ferramenta que tem sido historicamente associada ao Linux, embora também possa ser utilizada no Microsoft Windows com facilidade.