Como baixar arquivos usando o módulo Ansible get_url

Como baixar arquivos usando o módulo Ansible get_url

Como usuário do Linux, você provavelmente está familiarizado com as 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 WGE e Curl nos hosts remotos para executar essa função, você também pode ignorar a instalação necessária para usar essas ferramentas usando o módulo Ansible get_url.

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

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

  1. O servidor remoto do qual o (s) arquivo (s) deve ser baixado deve ter acesso direto ao servidor host.
  2. O servidor host deve suportar protocolos HTTP e HTTPS.

Sobre o módulo get_url

Antes de aprender sobre como implementar o módulo get_url, primeiro, há algumas coisas que vale a pena entender sobre este módulo. O módulo get_url suporta os seguintes recursos:

  • Soma de verificação e validação do servidor
  • Servidores HTTP, HTTPS e FTP
  • Servidores proxy, que podem ser especificados pela diretiva _proxy
  • Definindo um tempo limite para obter solicitações
  • Rastreamento da web
  • Autorização Básica da Web

Em seguida, 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, alguns exemplos que você pode implementar usando o módulo get_url ao baixar arquivos de um servidor remoto.

Faça o download de arquivos do servidor HTTP/HTTPS com URL direto

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

OBSERVAÇÃO: Você pode encontrar pacotes de servidor MySQL no recurso fornecido abaixo:

https: // linkfy.para/mysql-packages

- Hosts: todos
- Nome: Baixe o Debian MySQL Server usando HTTP/HTTPS
tarefas:
- Nome: Faça do diretório MySQL-Server in/home/user/user/.local
arquivo:
Caminho: ~///.Local/MySQL-Server
Estado: Diretório
Modo: 0777
- Nome: Get MySQL-Server Pacotes
get_url:
URL: “https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão"
dest: ~////.Local/MySQL-Server
Modo: 0777
Soma de verificação: 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 'se tornar'.

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

OBSERVAÇÃO: No manual acima, codificamos a soma de verificação, mas você pode especificar o URL no qual a soma de verificação está hospedada.

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

$ Ansible-playbook Download_mysql_server.YML Play [Baixe o Debian MySQL Server usando HTTP/HTTPS] *********************************** **************************************************** **************************************************** ********************
Tarefa [coleta de fatos] *********************************************** **************************************************** **************************************************** *******************************************
OK: [35.222.210.12]
Tarefa [Faça do diretório MySQL-Server em/home/user/user/.local] ************************************************ **************************************************** **************************************************** *************
35.222.210.12: ok = 3 alterado = 1 inacessível = 0 falhou = 0 pulado = 0 resgatado = 0 ignorado = 0

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

Baixe arquivos com sha256 verificação

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 Debian MySQL Server usando HTTP/HTTPS
tarefas:
- Nome: Faça do diretório MySQL-Server in/home/user/user/.local
arquivo:
Caminho: ~///.Local/MySQL-Server
Estado: Diretório
Modo: 0777
- Nome: Get MySQL-Server Pacotes
get_url:
URL: https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão
dest: ~////.Local/MySQL-Server
Modo: 0777
Verificação: SHA256: B5BB9D8014A0F9B1D61E21E796D78EEFDF1352F23CD32812F4850B878AE494C

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

- Hosts: todos
- Nome: Baixe o Debian MySQL Server usando HTTP/HTTPS
tarefas:
- Nome: Faça do diretório MySQL-Server in/home/user/user/.local
arquivo:
Caminho: ~///.Local/MySQL-Server
Estado: Diretório
Modo: 0777
- Nome: Get MySQL-Server Pacotes
get_url:
URL: https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão
dest: ~////.Local/MySQL-Server
Modo: 0777
Soma de verificação: sha256: https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão.SHA265

Baixar arquivos com tempo limite por não responder

Em alguns casos, você pode ter um URL de recurso especificado que pode levar mais tempo para responder ou não está disponível. Isso pode causar o fechamento da conexão antes que o servidor responda, pois o tempo limite padrão é geralmente de 10 segundos. Para especificar explicitamente o valor do tempo limite, use o tempo limite: diretiva.

Considere o seguinte manual:

- Hosts: todos
- Nome: Baixe o Debian MySQL Server com Timeout
tarefas:
- Nome: Faça do diretório MySQL-Server in/home/user/user/.local
arquivo:
Caminho: ~///.Local/MySQL-Server
Estado: Diretório
Modo: 0777
- Nome: Get MySQL-Server Pacotes
get_url:
URL: https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão
dest: ~////.Local/MySQL-Server
Modo: 0777
Soma de verificação: sha256: https: // downloads.mysql.com/arquivos/get/p/23/arquivo/mysql-server_8.0.22-1Debian10_amd64.Deb-Bundle.alcatrão.SHA265
Tempo limite: 30

O manual acima especifica o tempo limite em 30 segundos, e a conexão será descartada 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
Torne -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 de arquivo local

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

Considere o seguinte manual:

- Hosts: Web Servers
- Nome: Download Arquivo do caminho do arquivo local
Torne -se: sim
get_url:
URL: arquivo: /// backups/seguro/config.alcatrão.gz
dest: /dev /null

Faça o download de arquivos FTP

O download de arquivos FTP é muito semelhante ao processo descrito na seção anterior. Tudo o 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, como mostrado anteriormente.

Considere o seguinte manual:

- Hosts: todos
tarefas:
- Nome: Download Arquivo do FTP Server
Torne -se: sim
get_url:
URL: ftp: // 192.168.11.101
dest: /backups
Modo: 0777

Opções de módulo get_url Ansible

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

  • Cópia de segurança: A opção de backup, um booleano de sim e não, permite especificar se deve criar uma cópia de backup do arquivo a ser baixada.
  • Grupo: A opção de grupo especifica o grupo que possui a propriedade do arquivo baixado; Esta opção é como o comando chown no Unix.
  • Cabeçalhos: A opção Cabeçalhos é usada para especificar cabeçalhos HTTP personalizados em um dicionário em formato de hash.
  • http_agent: A opção HTTP_AGENT especifica o agente HTTP.
  • Proprietário: A opção proprietária especifica o proprietário dos arquivos de download.
  • Seuser: A opção Seuser define o usuário no contexto do arquivo Selinux.
  • use_proxy: A opção use_proxy define se um proxy deve ser usado. Se esta opção estiver definida como falsa, todos os proxies serão ignorados, mesmo se você tiver um especificado no host de destino.

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 referenciar como baixar arquivos em Ansible usando o módulo get_url.