Como conectar o Ansible no Windows a partir do Ubuntu?

Deixe-me mostrar rapidamente como conectar o servidor Windows a partir do Ansible em execução no Ubuntu.


Para seguir as etapas abaixo, é necessário ter o python 3.xe o Ansible instalados no sistema. Você pode seguir os artigos abaixo se precisar de ajuda.

Como instalar e configurar o Ansible no Ubuntu?

Como instalar o Ansible no Windows?

Abaixo estão os detalhes de ambos os servidores que estou usando:

  • Controlador Ansible – 192.168.0.108
  • Windows Server – 192.168.0.102

Etapa 1: Criar um Usuário Ansible do Windows

Crie um novo usuário para a configuração de conexão do Windows Ansible.

  • Abra o Gerenciamento do Computador no seu sistema Windows e vá para Usuários e Grupos Locais.
  • Clique com o botão direito do mouse em Usuários e crie um novo usuário.
  • Marque a caixa de seleção A senha nunca expira e clique em criar.

usuário ansible

  • Agora, entre os grupos disponíveis, clique com o botão direito do mouse no grupo Administradores e clique em Propriedades.
  • Clique em Adicionar e digite ansible nos nomes dos objetos.
  • Clique na opção verificar nomes e, em seguida, em Ok.

grupos ansible

Agora, um usuário ansible em uma máquina Windows está pronto.

Etapa 2: Configurar bibliotecas e WinRM

Vá para a sua máquina controladora ansible, atualize-a e instale as bibliotecas mencionadas abaixo.

[protegido por email]: ~ $ sudo apt-get update
[protegido por email]: ~ $ sudo apt-get install gcc python-dev
[protegido por email]: ~ $ sudo apt instala o python3-pip

WinRM significa gerenciamento remoto do Windows. Ele permite que você execute tarefas de gerenciamento em sistemas Windows remotos. Vamos instalar python3-winrm, um cliente Python usado para fazer uma conexão com o sistema Windows.

[protegido por email]: ~ $ sudo apt-get install python3-winrm
Lendo listas de pacotes … Concluído
Construindo árvore de dependência
Lendo informações do estado … Concluído
Os seguintes pacotes foram instalados automaticamente e não são mais necessários:
gyp libc-ares2 libhttp-parser2.8 libjs-async libjs-herda libjs-is-typedarray libjs-node-uuid libuv1 libuv1-dev node-abbrev node-ajv
nó-ansi nó-ansi-tabela de cores nó-ansi-regex nó-ansi-estilos nó-ansistyles nó-aproba nó-archy nó-nós-estamos-lá-ainda-nó-assíncrono

nó-validar-npm-pacote-licença nó-wcwidth.js nó-qual nó-qual-módulo-alinhar-nó-alinhar-nó-embrulhar-ansi nó-embrulhar nó-y18n
node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
Use ‘sudo apt autoremove’ para removê-los.
Os seguintes pacotes adicionais serão instalados:
python3-kerberos python3-ntlm-auth python3-solicitações-kerberos python3-solicitações-ntlm python3-xmltodict
Os seguintes NOVOS pacotes serão instalados:
python3-kerberos python3-ntlm-auth python3-solicitações-kerberos python3-solicitações-ntlm python3-winrm python3-xmltodict
0 atualizado, 6 recém-instalado, 0 a remover e 231 não atualizado.
Precisa obter 84,8 kB de arquivos.
Após esta operação, 442 kB de espaço em disco adicional serão usados.
Você quer continuar? [S / n] S
Get: 1 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-kerberos amd64 1.1.14-1build1 [16.8 kB]
Get: 2 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-ntlm-auth all 1.1.0-1 [19.6 kB]
Get: 3 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-orders-kerberos all 0.11.0-2 [10.1 kB]
Get: 4 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-orders-ntlm all 1.1.0-1 [6.004 B]
Get: 5 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-xmltodict all 0.11.0-2 [10.6 kB]
Get: 6 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-winrm all 0.3.0-2 [21.7 kB]
Obtido 84,8 kB em 1s (70,3 kB / s)
Selecionando o pacote anteriormente não selecionado python3-kerberos.
(Lendo arquivos e diretórios do banco de dados 244430 atualmente instalados.)
Preparando para descompactar … / 0-python3-kerberos_1.1.14-1build1_amd64.deb …
Descompactando python3-kerberos (1.1.14-1build1) …
Selecionando o pacote anteriormente não selecionado python3-ntlm-auth.
Selecionando o pacote anteriormente não selecionado python3-xmltodict.
Preparando para descompactar … / 4-python3-xmltodict_0.11.0-2_all.deb …
Descompactando python3-xmltodict (0.11.0-2) …
Selecionando o pacote anteriormente não selecionado python3-winrm.
Preparando para descompactar … / 5-python3-winrm_0.3.0-2_all.deb …
Descompactando python3-winrm (0.3.0-2) …
Configurando python3-kerberos (1.1.14-1build1) …
Configurando python3-winrm (0.3.0-2) …

Etapa 3: Atualizar o arquivo Ansible Inventory

Agora, editarei o arquivo hosts ansible com o endereço IP do sistema Windows. Então agora ansible saberá qual sistema Windows ele precisa conectar.

[protegido por email]: ~ $ sudo gedit / etc / ansible / hosts

[ganhar]
192.168.0.102

Etapa 4: atualizar as variáveis ​​de grupo Ansible

Crie um diretório para colocar variáveis ​​necessárias para se conectar ao sistema Windows.

[protegido por email]: ~ $ mkdir / etc / ansible / group_vars
[protegido por email]: ~ $ sudo chmod -R 777 / etc / ansible /

Crie um arquivo win.yaml e coloque os detalhes do usuário que você criou na 1ª etapa e mais algumas variáveis ​​necessárias para se conectar ao sistema Windows.

[protegido por email]: ~ $ gedit /etc/ansible/group_vars/win.yaml

ansible_user: ansible

ansible_password: ansible

ansible_connection: winrm

ansible_winrm_server_cert_validation: ignore

ansible_winrm_transport: basic

ansible_winrm_port: 5985

ansible_python_interpreter: C: \ Usuários \ geekflare \ AppData \ Local \ Programas \ Python \ Python37 \ python

Etapa 5: configurar servidores Windows para gerenciar

Abra o Windows Power Shell e atualize-o. Você precisa ter o Powershell 3.0 e o .NET Framework 4.0 presentes na máquina Windows.

PS C: \ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1"
PS C: \ WINDOWS \ system32> $ file = "$ env: temp \ Upgrade-PowerShell.ps1"
PS C: \ WINDOWS \ system32> $ nome de usuário = "ansible"
PS C: \ WINDOWS \ system32> $ password = "ansible"
PS C: \ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient) .DownloadFile ($ url, $ arquivo)
PS C: \ WINDOWS \ system32> Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
PS C: \ WINDOWS \ system32> &$ file -Version 5.1 -Username $ username -Password $ password -Verbose

Para configurar o WinRM em um sistema Windows com ansible, um script de configuração remota foi fornecido pela ansible. Execute o script no PowerShell.

PS C: \ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS C: \ WINDOWS \ system32> $ file = "$ env: temp \ ConfigureRemotingForAnsible.ps1"
PS C: \ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient) .DownloadFile ($ url, $ arquivo)
PS C: \ WINDOWS \ system32> powershell.exe -ExecutionPolicy ByPass -file $ arquivo
PS C: \ WINDOWS \ system32> winrm enumera winrm / config / Listener

Ouvinte
Endereço = *
Transporte = HTTP
Port = 5985
nome de anfitrião
Ativado = true
URLPrefix = wsman

CertificateThumbprint
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, :: 1, fe80 :: 3131: c6d7: 9ef5: 8f0% 7, fe80 :: 51b7: 9134: 550d: d7aa% 22, fe80 :: 88f1: 1229: e1dd: 2409% 16, fe80 :: 99cf: 5796: 4f8e: f5c1% 15, fe80 :: fd77: c19d: e0f2: 66d9% 9

Ouvinte
Endereço = *
Transporte = HTTPS
Port = 5986
Nome do host = DESKTOP-2L8QMI6
Ativado = true
URLPrefix = wsman

CertificateThumbprint = C83B3FC8B274D0B650F0FD647DC7AC129BBE3FA0
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, :: 1, fe80 :: 3131: c6d7: 9ef5: 8f0% 7, fe80 :: 51b7: 9134: 550d: d7aa% 22, fe80 :: 88f1: 1229: e1dd: 2409% 16, fe80 :: 99cf: 5796: 4f8e: f5c1% 15, fe80 :: fd77: c19d: e0f2: 66d9% 9

Defina winrm para permitir tráfego HTTP.

PS C: \ WINDOWS \ system32> conjunto de winrm winrm / config / service ‘@ {AllowUnencrypted ="verdade"} ‘
Serviço
RaizSDDL = O: NSG: RU: P (A ;; GA ;;; BA) (A ;; GR ;;; UI) S: P (AU; FA; GA ;;; WD) (AU; SA; GXGW; ;; WD)

MaxConcurrentOperations = 4294967295

MaxConcurrentOperationsPerUser = 1500

EnumerationTimeoutms = 240000
MaxConnections = 300

MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
Auth
Básico = verdadeiro
Kerberos = true
Negociar = verdadeiro
Certificate = false
CredSSP = false

CbtHardeningLevel = Relaxado
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *

EnableCompatibilityHttpListener = false

EnableCompatibilityHttpsListener = false

CertificateThumbprint
AllowRemoteAccess = true

Defina a autenticação como básica em wirm.

PS C: \ WINDOWS \ system32> conjunto winrm winrm / config / service / auth ‘@ {Básico ="verdade"} ‘
Auth
Básico = verdadeiro
Kerberos = true
Negociar = verdadeiro
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxado

Etapa 6: Testar a conectividade com o Windows Server

Agora todas as etapas da máquina estão concluídas. Vá para a máquina controladora ansible e execute ping na máquina do servidor windows usando o módulo ans_ win_ping.

[protegido por email]: ~ $ ansible win -m win_ping
192.168.0.102 | SUCESSO => {

"mudou": false,
"ping": "pong"
}

A mensagem de sucesso mostra que a conexão foi estabelecida. Agora, o sistema Windows está pronto para ser administrado remotamente a partir do Ansible em execução no Ubuntu.

TAG:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map