abs#
Расширение тестирования ansible.builtin.abs проверяет, является ли входной параметр абсолютным путем к файлу или каталогу.
У этого расширения есть также другое название – ansible.builtin.is_abs.
Описание применения расширений тестирования приведено в документе Тестирование.
Особенности работы#
Для проверки, является ли путь абсолютным, используйте конструкцию:
<path> is ansible.builtin.abs
Здесь <path> – путь к файлу или каталогу.
Для инверсии результата проверки добавьте not:
<path> is not ansible.builtin.abs
Входные значения#
Расширение принимает единственный входной параметр Input – путь к файлу или каталогу в виде строки.
Выходные значения#
Расширение возвращает значение True или False в зависимости от результата проверки:
False– путь является относительным;True– путь является абсолютным.
Пример#
Следующий пример демонстрирует использование ansible.builtin.abs для проверки корректности путей, переданных пользователем в переменных.
Путь к каталогу backup_dir/ должен быть абсолютным для корректного копирования файла.
В сценарии используется модуль ansible.builtin.assert, который позволяет прервать выполнение сценария при обнаружении некорректного значения. Такой подход помогает избежать выполнения задач с ошибочными параметрами.
---
# ...
vars:
backup_dir: "{{ user_provided_path }}"
tasks:
- name: Checking that the path is absolute
ansible.builtin.assert:
that:
- backup_dir is ansible.builtin.abs
fail_msg: "The relative path is specified: '{{backup_dir }}'. An absolute path starting with '/' is expected."
- name: Copying the file
ansible.builtin.copy:
src: /etc/myapp/config.yml
dest: "{{ backup_dir }}/config.yml"