Este guia mostra como preparar um host ESXi para que o Ansible possa ser usado com autenticação baseada em chave SSH para automatizar tarefas de administração.
Introdução
O acesso shell a um host ESXi fornece comandos essenciais de manutenção, configuração e solução de problemas. Ele pode ser usado em casos que não podem ser tratados por meio do vSphere Client padrão. Esta caso é ideal se você não possui um vCenter gerenciando seu ESXi, ao mesmo tempo é recomendado que você tenha o SSH ativado e protegido por um firewall :).
Nosso objetivo? Iremos usar o método de autenticação de chave pública , mais seguro do que digitar uma senha manualmente em texto simples no arquivo hosts do ansible. Vamos lá?
Criando um Par de Chaves SSH no Linux
Digite no seu Linux o comando: ssh-keygen -t rsa -b 4096
Pressione enter para toadas etapas, se quiser digitar uma senha, fique a vontade.

Guarde o caminho das chaves, no meu caso:
Your identification has been saved in /home/ffabiosantosgcm/.ssh/id_rsa
Your public key has been saved in /home/ffabiosantosgcm/.ssh/id_rsa.pub
Copiando sua chave pública SSH para o host ESXi
Criamos um par de chaves na etapa anterior, agora vamos executar o comando a seguir em cada host ESXi a partir do seu servidor Ansible para copiar sua chave pública para o local correto. Veja:

A senha do host será solicita, forneça neste primeiro momento.
Criando o arquivo Ansible Hosts
No seu servidor Ansible edite o arquivo executando comando: sudo vi /etc/ansible/hosts
[esxi]
192.168.0.101
[esxi:vars]
#Linha abaixo abaixo força o uso do python3.
ansible_python_interpreter=/usr/bin/python3
ansible_connection=ssh
ansible_user=root
ansible_ssh_private_key_file=~/.ssh/id_rsa
Testando conexão
Execute o comando a seguir:
ansible esxi -m ping
O resultado deve ser igual a saída abaixo:
192.168.0.101 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
Conclusão
As etapas nesta postagem mostraram como habilitar o SSH em um host ESXi 6.7 e como usar a autenticação baseada em chave para se conectar sem uma senha. Meu cenário consistiu em: Um servidor Linux com ansible instalado, o Ubuntu WSL no Windows 10 e u host ESXi 6.7 instalado no VMware Workstation. Até a próxima pessoal!
“Sonhos sem disciplina produzem pessoas frustradas, e disciplina sem sonhos produz pessoas autômatas, que só sabem obedecer a ordens.” Augusto Cury