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