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:
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:
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:
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.