O que o Ansible empurra para o host remoto?

4

Imaginando como o Ansible trabalha em um nível de tijolo. A maioria dos sites diz que um módulo é enviado e o Ansible não precisa de um agente no host remoto - apenas SSH e Python.

Parece que o Ansible precisaria criar um script python localmente e copiá-lo para o host remoto. O que é enviado? É literalmente um arquivo .py ou um arquivo .pyc - ou outro?

Como é possível que o host remoto não precise de nenhum pacote adicional do Python?

    
por jouell 15.09.2018 / 20:29

1 resposta

7

Most sites say a module is pushed and Ansible does not need an agent on the remote host - just SSH and Python.

Está correto.

scp ou WinRM também podem ser usados, bem como algumas outras conexão tipos .

It seems like Ansible would need to create a python script locally and copy it to the remote host. What is sent? Is it literally a .py file or a .pyc file - or other?

Ele cria um script localmente e o copia para o host remoto. .py ou um conjunto desses.

Você pode ver por si mesmo - executar Ansible com ANSIBLE_KEEP_REMOTE_FILES definido como 1 :

ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook playbook.yml

e verifique o diretório temporário na máquina de destino (por padrão, em $HOME/.ansible/tmp/ para o usuário que está se conectando).

Se os arquivos foram compactados, há instruções nos comentários dentro do arquivo sobre como expandir o conjunto.

How is it possible the remote host will not need any additional Python packages?

Esta afirmação está incorreta.

Existem muitos módulos que requerem pacotes Python adicionais, por exemplo, expect module :

The below requirements are needed on the host that executes this module.

  • python >= 2.6
  • pexpect >= 3.3

ou mesmo executáveis, por exemplo, unarchive module :

Requires gtar/unzip command on target host.

    
por 15.09.2018 / 20:58

Tags