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"