Проверка успешной передачи файла
После использования модуля copy
для передачи файлов важно проверить, что передача файла прошла успешно. Ansible предоставляет несколько способов для обеспечения целостности и правильности скопированных файлов.
Проверка существования файла
Самый простой способ проверить успешную передачу файла - это проверить, существует ли целевой файл на удаленном хосте. Вы можете использовать модуль stat
в Ansible для получения информации о удаленном файле, в том числе о его существовании.
- hosts: all
tasks:
- name: Copy file to remote host
copy:
src: /path/to/local/file.txt
dest: /path/to/remote/file.txt
- name: Verify file existence
stat:
path: /path/to/remote/file.txt
register: remote_file
- debug:
msg: "File transfer successful"
when: remote_file.stat.exists
В этом примере модуль stat
используется для проверки существования удаленного файла. Если свойство stat.exists
равно true
, то передача файла считается успешной.
Сравнение контрольных сумм файлов
Для обеспечения целостности скопированного файла вы можете сравнить контрольную сумму локального файла с контрольной суммой удаленного файла. Это помогает убедиться, что файл был передан без повреждений.
- hosts: all
tasks:
- name: Copy file to remote host
copy:
src: /path/to/local/file.txt
dest: /path/to/remote/file.txt
- name: Get local file checksum
stat:
path: /path/to/local/file.txt
register: local_file
- name: Get remote file checksum
stat:
path: /path/to/remote/file.txt
register: remote_file
- debug:
msg: "File transfer successful"
when: local_file.stat.checksum == remote_file.stat.checksum
В этом примере модуль stat
используется для получения контрольных сумм как локального, так и удаленного файлов. Если контрольные суммы совпадают, то передача файла считается успешной.
Проверяя существование и целостность скопированных файлов, вы можете убедиться, что процесс передачи файлов был завершен успешно и что на удаленных системах есть правильные файлы.