Ansible: Como copiar arquivo, diretório ou script do host local para o host remoto?

Publicados: 2019-02-24

Como copiar arquivos do host local para o host remoto usando o Ansible

Como parte do departamento de gerenciamento de TI, as pessoas lidam com lots of scripts linha de comando. Tenho certeza de que você enfrenta situações do dia a dia em que copia arquivos ou scripts para milhares de hosts remotos.

O pessoal do departamento de TI não apenas faz login em cada thousands of hosts e executa scripts manualmente. E é por isso que o Ansible entra em cena. O Ansible é uma solução de gerenciamento de TI muito poderosa disponível gratuitamente para nós.

Neste tutorial, veremos as etapas para copiar arquivos para um host remoto usando o Ansible.

O que nós vamos fazer?

Copie o arquivo crunchify.txt do local /opt/ashah/ para o diretório de destino do host remoto 192.66.129.83 /opt/ashah/ .

Passo 1

Instale o Ansible no Linux Ubuntu ou macOS. Siga os tutoriais para passar por etapas detalhadas.

Passo 2

Vamos entender alguns conceitos básicos e localização de arquivos para este tutorial:

  • Local do arquivo de configuração: /etc/ansible/ansible.cfg
  • Arquivo de script: /opt/ashah/crunchify.yml
  • arquivo hosts: /opt/ashah/hosts
  • arquivo para copiar: /opt/ashah/crunchify.txt (arquivo de teste)

Etapa 3

conteúdo do arquivo crunchify.yml .

Passo 4

hosts o conteúdo do arquivo. Certifique-se de alterar o endereço IP para o seu host remoto.

Passo-5

Crie o arquivo crunchify.txt com o conteúdo abaixo.

Passo-6

Execute este comando para copiar o arquivo para o host remoto:

  • Command : ansible-playbook -b -vvv -u root crunchify.yml -kkkk –extra-vars “crunchify-group” -i hosts

vamos entender todos os parâmetros:

  • -b : executa operações com se tornar (o mesmo que — se tornar).
  • -vvv : modo detalhado (-vvv para mais, -vvvv para habilitar a depuração da conexão).
  • -u : conecta como este usuário (padrão=Nenhum).
  • -kkkk : pede senha de conexão.
  • –extra-vars : defina variáveis ​​adicionais como key=value ou YAML/JSON, se o nome do arquivo for precedido por @.
  • -i : especifica o caminho do host do inventário ou a lista de hosts separada por vírgula.

É isso. Você copiou o arquivo com sucesso.

Como verificar se o arquivo é copiado para o novo host remoto?

Basta fazer login no host remoto e verificar a localização /opt/ashah e você verá o arquivo crunchify.txt

Como copiar um conteúdo de diretório para outro diretório?

Basta alterar o valor src e desc do arquivo crunchify.yml . Aqui está um arquivo crunchify.yml atualizado.

Todos os arquivos na pasta /opt/ashah/ serão copiados para hosts remotos agora.

Deixe-me saber se você tiver alguma dúvida sobre como copiar o arquivo para o local remoto usando o Ansible.