Ansible

Como fazer download de arquivos usando o módulo get_url Ansible

Como fazer download de arquivos usando o módulo get_url Ansible

Como um usuário Linux, você provavelmente está familiarizado com ferramentas que permitem baixar arquivos de servidores remotos usando protocolos HTTP, HTTPS e FTP, como wget e cURL. Ao executar tarefas de automação, você ocasionalmente precisará baixar arquivos e pacotes para hosts remotos. Embora você possa usar wget e cURL nos hosts remotos para executar esta função, você também pode ignorar a instalação necessária para usar essas ferramentas usando o módulo get_url Ansible.

Este tutorial mostra como usar o comando Ansible get_url para baixar arquivos de servidores remotos.

Antes de começar, o comando Ansible get_url requer os seguintes pré-requisitos:

  1. O servidor remoto do qual os arquivos serão baixados deve ter acesso direto ao servidor host.
  2. O servidor host deve suportar os protocolos HTTP e HTTPS.

Sobre o módulo get_url

Antes de aprender sobre como implementar o módulo get_url, primeiro, existem algumas coisas que vale a pena entender sobre este módulo. O módulo get_url oferece suporte aos seguintes recursos:

A seguir, mostraremos como usar o módulo get_url para baixar arquivos com vários protocolos e configurações.

Usando o módulo get_url para obter arquivos

A seguir estão alguns exemplos que você pode implementar usando o módulo get_url ao baixar arquivos de um servidor remoto.

Baixar arquivos do servidor HTTP / HTTPS com URL direto

Considere o seguinte manual que cria um diretório no ~ /.local e usa o módulo get_url para baixar o pacote Debian MySQL.

NOTA: Você pode encontrar pacotes de servidor MYSQL no recurso fornecido abaixo:

https: // linkfy.para / mysql-packages

- hosts: todos
- nome: Faça download do servidor Debian MySQL usando HTTP / HTTPS
tarefas:
- nome: Crie o diretório mysql-server em / home / user /.local
Arquivo:
caminho: ~ /.servidor local / mysql
estado: diretório
modo: 0777
- nome: GET pacotes do servidor MySQL
get_url:
url: “https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão"
dest: ~ /.servidor local / mysql
modo: 0777
checksum: md5: 5568e206a187a3b658392520540f556e

O manual acima começa criando um diretório em $ HOME /.local / mysql-server, onde o pacote baixado deve ser armazenado. Se você estiver criando um diretório em um diretório privilegiado, lembre-se de usar a diretiva 'tornar-se'.

Em seguida, o manual chama o módulo get_url e especifica o URL do qual baixar o pacote, seguido pelo diretório de destino no qual armazenar o arquivo. A seção final do manual especifica a soma de verificação md5 para verificar a validade do arquivo.

NOTA: No manual acima, codificamos a soma de verificação, mas você pode especificar o URL em que a soma de verificação está hospedada.

Depois de executar o manual, você obterá uma saída indicando o sucesso ou o fracasso das tarefas.

$ ansible-playbook download_mysql_server.yml PLAY [Baixe o servidor Debian MySQL usando HTTP / HTTPS] ************************************* ************************************************** ************************************************** ******************
TAREFA [Coleta de fatos] ********************************************** *************************************************** ************************************************** *******************************************
ok: [35.222.210.12]
TAREFA [Crie o diretório mysql-server em / home / user /.local] ************************************************ *************************************************** *************************************************** ***********
35.222.210.12: ok = 3 alterado = 1 inacessível = 0 falhou = 0 ignorado = 0 resgatado = 0 ignorado = 0

Assim que o processo for concluído, você pode fazer login no host e verificar se o arquivo existe.

Baixar arquivos com soma de verificação sha256

Você também pode baixar arquivos e verificá-los usando a soma de verificação sha256, conforme mostrado no manual de exemplo abaixo:

- hosts: todos
- nome: Baixe o servidor Debian MySQL usando HTTP / HTTPS
tarefas:
- nome: Crie o diretório mysql-server em / home / user /.local
Arquivo:
caminho: ~ /.servidor local / mysql
estado: diretório
modo: 0777
- nome: GET pacotes do servidor MySQL
get_url:
url: https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão
dest: ~ /.servidor local / mysql
modo: 0777
checksum: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Para usar um URL em vez de codificar a soma de verificação, considere o seguinte exemplo:

- hosts: todos
- nome: Baixe o servidor Debian MySQL usando HTTP / HTTPS
tarefas:
- nome: Crie o diretório mysql-server em / home / user /.local
Arquivo:
caminho: ~ /.servidor local / mysql
estado: diretório
modo: 0777
- nome: GET pacotes do servidor MySQL
get_url:
url: https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão
dest: ~ /.servidor local / mysql
modo: 0777
checksum: sha256: https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão.sha265

Baixar arquivos com tempo limite em caso de falha de resposta

Em alguns casos, você pode ter um URL de recurso especificado que pode demorar mais para responder ou não está disponível. Isso pode fazer com que a conexão seja fechada antes que o servidor responda, já que o tempo limite padrão é geralmente de 10 segundos. Para especificar explicitamente o valor do tempo limite, use o tempo limite: diretriz.

Considere o seguinte manual:

- hosts: todos
- nome: Baixe o servidor Debian MySQL com tempo limite
tarefas:
- nome: Crie o diretório mysql-server em / home / user /.local
Arquivo:
caminho: ~ /.servidor local / mysql
estado: diretório
modo: 0777
- nome: GET pacotes do servidor MySQL
get_url:
url: https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão
dest: ~ /.servidor local / mysql
modo: 0777
checksum: sha256: https: // downloads.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.alcatrão.sha265
tempo limite: 30

O manual acima especifica o tempo limite como 30 segundos, e a conexão será interrompida se o servidor não responder dentro do tempo definido.

Baixar arquivos com autenticação

Para baixar um arquivo para um servidor que requer autenticação, você precisará especificar os valores de login.

Considere o seguinte manual:

- hosts: todos
- nome: Baixar arquivo com autenticação
tornar-se: sim
get_url:
url: http: // 102.15.192.120 / backups / banco de dados.alcatrão.gz
dest: / backups
nome de usuário: usuário
senha: 'pass'
modo: 0777
tempo limite: 5

Baixar arquivos do caminho do arquivo local

Para baixar um arquivo de um caminho de arquivo local, você pode usar o esquema file: // URI, seguido pelo caminho para o arquivo.

Considere o seguinte manual:

- hosts: servidores da web
- nome: Baixe o arquivo do caminho do arquivo local
tornar-se: sim
get_url:
url: file: /// backups / secure / config.alcatrão.gz
dest: / dev / null

Baixar arquivos FTP

Baixar arquivos FTP é muito semelhante ao processo descrito na seção anterior. Tudo que você precisa fazer é especificar ftp: // como o protocolo para o servidor.

Para baixar um arquivo seguro, você também deve adicionar as informações de login, conforme mostrado anteriormente.

Considere o seguinte manual:

- hosts: todos
tarefas:
- nome: Baixar arquivo do servidor FTP
tornar-se: sim
get_url:
url: ftp: // 192.168.11.101
dest: / backups
modo: 0777

Opções do módulo get_url de Ansible

O módulo get_url também suporta várias opções que você pode usar para especificar e monitorar o download e gerenciamento de arquivos. As opções disponíveis com o módulo get_url incluem o seguinte:

Conclusão

Este artigo discutiu o módulo get_url em Ansible em detalhes e mostrou como usar este módulo para baixar arquivos de várias fontes. Você pode usar este artigo para consultar como baixar arquivos no Ansible usando o módulo get_url.

Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...