Проверка целостности файла с использованием контрольной суммы
В этом шаге вы будете использовать модуль Ansible get_url для проверки целостности загруженного файла с использованием контрольной суммы.
Сначала измените существующий файл playbook, удалив все содержимое и добавив следующее содержимое в файл 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
: Это модуль в Ansible, используемый для загрузки файлов из интернета.
url
: Этот параметр задает URL-адрес, из которого будет загружен файл. В данном случае он загружает версию Ansible
2.9.25 из официальных выпусков Ansible.
dest
: Этот параметр задает путь назначения на целевом узле, где будет сохранен загруженный файл. В данном случае файл сохраняется в /tmp/ansible-2.9.25-2.tar.gz
.
checksum
: Этот параметр используется для указания контрольной суммы загружаемого файла, а также его типа. В данном случае он установлен на sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha
, что означает, что Ansible должен проверить контрольную сумму SHA256
загруженного файла с контрольной суммой, предоставленной по указанному URL-адресу. Это обеспечивает целостность загруженного файла.
Кратко говоря, этот playbook загрузит архив версии Ansible 2.9.25 из указанного URL-адреса, сохранит его в виде ansible-2.9.25-2.tar.gz
в директории /tmp
на локальном узле и проверит его целостность, сравнив его контрольную сумму SHA256
с контрольной суммой, предоставленной по указанному URL-адресу.
Затем запустите playbook с помощью следующей команды:
ansible-playbook get_url-module-playbook.yaml
Просмотрите вывод, чтобы убедиться, что файл был успешно загружен и сохранен на удаленном узле, и проверьте, пройдена ли проверка контрольной суммы.
Пример вывода:
[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
Проверьте, что файл был успешно загружен и сохранен на удаленном узле.
ll /tmp/ansible-2.9.25-2.tar.gz
Пример вывода:
-rw-rw-r-- 1 labex labex 14M Mar 15 13:31 /tmp/ansible-2.9.25-2.tar.gz