Módulo get_url do Ansible

AnsibleBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará o módulo get_url do Ansible, que permite baixar arquivos da internet e salvá-los em hosts remotos. O módulo get_url oferece várias opções para personalizar o processo de download, incluindo autenticação, cabeçalhos (headers) e verificação de checksum.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Baixar um Arquivo de uma URL

Nesta etapa, você usará o módulo get_url do Ansible para baixar um arquivo de uma URL e salvá-lo em um host remoto.

Primeiro, crie um novo arquivo de playbook do Ansible chamado /home/labex/project/get_url-module-playbook.yaml e abra-o em um editor de texto.
Adicione o seguinte conteúdo ao arquivo do playbook:

- hosts: localhost
  tasks:
    - name: Download a file from a URL
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25.tar.gz"
  • hosts: Isso especifica o host de destino no qual executar o playbook. Neste caso, o playbook será executado no host local porque o host de destino é localhost.
  • tasks: Esta é uma lista de tarefas a serem executadas.
  • name: Este é o nome descritivo para a tarefa que identifica o propósito da tarefa.
  • get_url: Este é um módulo no Ansible usado para baixar arquivos da internet.
  • url: Este parâmetro especifica a URL da qual baixar o arquivo. Neste caso, ele está baixando a versão 2.9.25 do Ansible dos lançamentos oficiais do Ansible.
  • dest: Este parâmetro especifica o caminho de destino no host de destino onde o arquivo baixado será salvo. Neste caso, ele está salvando o arquivo em /tmp/ansible-2.9.25.tar.gz.

Em resumo, este playbook baixa o tarball da versão 2.9.25 do Ansible da URL especificada e o salva em /tmp/ansible-2.9.25.tar.gz no host local.

Em seguida, execute o playbook com o seguinte comando:

ansible-playbook get_url-module-playbook.yaml

Observe a saída para ver se o arquivo foi baixado e salvo com sucesso no host remoto.
Exemplo de saída:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Download a file from a URL] **********************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Verifique se o arquivo foi baixado e salvo com sucesso no host remoto.

ll /tmp/ansible-2.9.25.tar.gz

Exemplo de saída:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:03 /tmp/ansible-2.9.25.tar.gz

Personalizar os Cabeçalhos (Headers) da Requisição HTTP

Nesta etapa, você usará o módulo get_url do Ansible para personalizar os cabeçalhos (headers) da requisição HTTP enviados durante o processo de download do arquivo.

Primeiro, modifique o arquivo de playbook existente removendo todo o conteúdo e adicionando o seguinte conteúdo ao arquivo do playbook:

- hosts: localhost
  tasks:
    - name: Download a file from a URL with custom headers
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25-1.tar.gz"
        headers:
          Custom-Header-1: Value1
          Custom-Header-2: Value2
  • get_url: Este é um módulo no Ansible usado para baixar arquivos da internet.
  • url: Este parâmetro especifica a URL da qual baixar o arquivo. Neste caso, ele está baixando a versão 2.9.25 do Ansible dos lançamentos oficiais do Ansible.
  • dest: Este parâmetro especifica o caminho de destino no host de destino onde o arquivo baixado será salvo. Neste caso, ele está salvando o arquivo em /tmp/ansible-2.9.25-1.tar.gz.
  • headers: Este é um parâmetro opcional que permite especificar cabeçalhos personalizados a serem incluídos na requisição HTTP enviada ao servidor ao baixar o arquivo. Neste caso, ele está configurado para incluir dois cabeçalhos personalizados: Custom-Header-1 com o valor Value1 e Custom-Header-2 com o valor Value2. Esses cabeçalhos podem ser usados para autenticação, autorização ou outros propósitos conforme exigido pelo servidor que hospeda o arquivo.

Em resumo, este playbook baixará o tarball da versão 2.9.25 do Ansible da URL especificada com cabeçalhos personalizados incluídos na requisição HTTP e o salvará como ansible-2.9.25-1.tar.gz no diretório /tmp no host local.

Em seguida, execute o playbook com o seguinte comando:

ansible-playbook get_url-module-playbook.yaml

Observe a saída para ver se o arquivo foi baixado e salvo com sucesso no host remoto e verifique se os cabeçalhos personalizados foram incluídos na requisição HTTP.
Exemplo de saída:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] **************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Download a file from a URL with custom headers] **************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Verifique se o arquivo foi baixado e salvo com sucesso no host remoto.

ll /tmp/ansible-2.9.25-1.tar.gz

Exemplo de saída:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:17 /tmp/ansible-2.9.25-1.tar.gz

Verificar a Integridade do Arquivo com Checksum

Nesta etapa, você usará o módulo get_url do Ansible para verificar a integridade do arquivo baixado usando um checksum.

Primeiro, modifique o arquivo de playbook existente removendo todo o conteúdo e adicionando o seguinte conteúdo ao arquivo do playbook:

- hosts: localhost
  tasks:
    - name: Download a file and verify checksum
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25-2.tar.gz"
        checksum: "sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha"
  • get_url: Este é um módulo no Ansible usado para baixar arquivos da internet.
  • url: Este parâmetro especifica a URL da qual baixar o arquivo. Neste caso, ele está baixando a versão 2.9.25 do Ansible dos lançamentos oficiais do Ansible.
  • dest: Este parâmetro especifica o caminho de destino no host de destino onde o arquivo baixado será salvo. Neste caso, ele está salvando o arquivo em /tmp/ansible-2.9.25-2.tar.gz.
  • checksum: Este parâmetro é usado para especificar o checksum do arquivo a ser baixado, juntamente com seu tipo. Neste caso, ele está configurado como sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha, indicando que o Ansible deve verificar o checksum SHA256 do arquivo baixado em relação ao checksum fornecido na URL especificada. Isso garante a integridade do arquivo baixado.

Em resumo, este playbook baixará o tarball da versão 2.9.25 do Ansible da URL especificada, salvará como ansible-2.9.25-2.tar.gz no diretório /tmp no host local e verificará sua integridade comparando seu checksum SHA256 com o checksum fornecido na URL especificada.

Em seguida, execute o playbook com o seguinte comando:

ansible-playbook get_url-module-playbook.yaml

Observe a saída para ver se o arquivo foi baixado e salvo com sucesso no host remoto e verifique se a verificação do checksum foi aprovada.
Exemplo de saída:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Download a file and verify checksum] *************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Verifique se o arquivo foi baixado e salvo com sucesso no host remoto.

ll /tmp/ansible-2.9.25-2.tar.gz

Exemplo de saída:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:31 /tmp/ansible-2.9.25-2.tar.gz

Resumo

Parabéns! Você concluiu com sucesso o laboratório do módulo get_url do Ansible. Você aprendeu como baixar arquivos de uma URL, salvá-los em hosts remotos, personalizar os cabeçalhos (headers) da requisição HTTP e verificar a integridade do arquivo usando um checksum.

O módulo get_url é uma ferramenta versátil que permite automatizar downloads de arquivos e lidar com vários aspectos do processo de download. Com este conhecimento, você pode aprimorar seus playbooks do Ansible e gerenciar eficientemente a distribuição de arquivos em toda a sua infraestrutura.

Continue explorando a documentação do Ansible e experimentando com diferentes módulos para expandir suas capacidades de automação. Feliz Ansible-ing!