stat#
Модуль ansible.builtin.stat получает сведения об объектах файловой системы так же, как это делает утилита stat в ОС Linux и Unix.
Особенности работы#
Для работы с узлами под управлением ОС Windows используйте модуль ansible.windows.win_stat.
Параметры#
Модуль принимает следующие параметры:
- checksum_algorithm, checksum, checksum_algo#
Алгоритм для вычисления контрольной суммы объекта файловой системы.
Важно
Если выбранный алгоритм недоступен на управляющем узле, задача завершится ошибкой.
В системах, работающих в режиме, совместимом со стандартом FIPS, алгоритм MD5 может быть недоступен.
Возможные значения:
md5;sha1;sha224;sha256;sha384;sha512.
Значение по умолчанию:
sha1.
- follow#
Порядок обработки символических ссылок.
Возможные значения:
false– получение данных о самой ссылке;true– получение данных об объекте файловой системы, на который указывает ссылка.
Значение по умолчанию:
false.
- get_attributes, attr, attributes#
Получение атрибутов с помощью утилиты
lsattr, если она доступна.Возможные значения:
false– выключено;true– включено.
Значение по умолчанию:
true.
- get_checksum#
Необходимость расчета контрольной суммы объекта файловой системы.
Возможные значения:
false– не рассчитывать контрольную сумму;true– рассчитать контрольную сумму.
Значение по умолчанию:
true.
- get_mime, mime, mime_type, mime-type#
Получение информации о внутренней структуре файла с помощью утилиты
file.При использовании этого параметра в возвращаемое значение по возможности добавляются поля
stat.mimetypeиstat.charset.Возможные значения:
false– выключено;true– включено.
Значение по умолчанию:
true.
- path, dest, name#
Обязательный параметр.
Полный путь к объекту файловой системы.
Возвращаемые значения#
В этом списке указаны только возвращаемые значения, специфичные для модуля ansible.builtin.stat.
stat.atime– время последнего доступа к объекту файловой системы.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.attributes– список атрибутов.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.charset– кодировка файла.Условия: успешное выполнение, путь существует, пользователь может получить данные об объекте, используемая версия Python моддерживает это и
get_mime=true.stat.checksum– контрольная сумма объекта файловой системы.Условия: успешное выполнение, путь существует, пользователь может получить данные об объекте файловой системы, содержимое объекта может быть хешировано и используемый алгоритм доступен в системе.
stat.ctime– время последнего обновления или создания метаданных.Примечание
Значение определяется ОС.
Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.dev– устройство, на котором находится индексный узел (inode), указывающий на объект файловой системы.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.executable– наличие у текущего пользователя прав на выполнение объекта файловой системы.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.exists– существование объекта файловой системы по указанному пути.Условия: успешное выполнение.
stat.gid– идентификатор группы-владельца (GID) объекта файловой системы.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.gr_name– название группы-владельца объекта файловой системы.Условия: успешное выполнение, указанный путь существует, пользователь может получить данные об объекте, удалось получить название группы-владельца и установленная версия Python поддерживает это.
stat.inode– номер индексного узла (inode) объекта файловой системы.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.isblk– является ли указанный путь блочным устройством.Условия: успешное выполнение, указанный путь существует и пользователь может получить данные об объекте.
stat.ischr– является ли указанный путь символьным устройством.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.isdir– является ли указанный путь каталогом.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.isfifo– является ли указанный путь именованным конвейером (pipe).Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.isgid– совпадает ли идентификатор основной группы пользователя Ansible с идентификатором группы-владельца объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.islnk– является ли указанный путь символической ссылкой.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.isreg– является ли указанный путь обычным (regular) файлом.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.issock– является ли указанный путь сокетом Unix.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.isuid– совпадает ли идентификатор пользователя Ansible с идентификатором пользователя-владельца объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.lnk_source– полный путь к объекту файловой системы, на который указывает символическая ссылка.Условия: успешное выполнение, путь существует и является символической ссылкой, пользователь может получить данные об объекте.
stat.lnk_target– путь символической ссылки.Примечание
Относительные пути не преобразуются в абсолютные.
Условия: успешное выполнение, путь существует и является символической ссылкой, пользователь может получить данные об объекте.
stat.mimetype– сведения о MIME-типе файла.Условия: успешное выполнение, путь существует, пользователь может получить данные об объекте, используемая версия Python поддерживает это и
get_mime=true.stat.mode– режим доступа к объекту файловой системы в виде числа в восьмеричной системе счисления.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.mtime– время последнего изменения объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.nlink– количество ссылок на индексный узел (жестких ссылок).Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.path– полный путь к объекту файловой системы.Условия: успешное выполнение и существование пути.
stat.pw_name– название учетной записи пользователя-владельца объекта файловой системы.Условия: успешное выполнение, путь существует, пользователь может получить данные об объекте, удалось определить название учетной записи и используемая версия Python поддерживает это.
stat.readable– имеется ли у текущего пользователя разрешение на чтение объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.rgrp– имеется ли у группы-владельца разрешение на чтение объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.roth– имеется ли разрешение на чтение объекта файловой системы у пользователей и групп, не являющихся его владельцами.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.rusr– имеется ли у пользователя-владельца разрешение на чтение объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.size– размер объекта файловой системы в байтах.Примечание
Для некоторых специальных файлов возвращается количество данных.
Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.uid– идентификатор пользователя-владельца (UID) объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.version– версия или поколение атрибута.Условия: успешное выполнение, путь существует, пользователь может получить данные об объекте, утилита
lsattrдоступна и файловая система поддерживает нужные свойства.stat.wgrp– имеется ли у группы-владельца разрешение на запись.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.woth– имеется ли разрешение на запись у пользователей и групп, не являющихся владельцами объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.writeable– имеется ли у пользователя разрешение на изменение пути.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.wusr– имеется ли у пользователя-владельца разрешение на запись.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.xgrp– имеется ли у группы-владельца разрешение на выполнение объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.xoth– имеется ли разрешение на выполнение у пользователей и групп, не являющихся владельцами.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
stat.xusr– имеется ли у пользователя-владельца разрешение на выполнение объекта файловой системы.Условия: успешное выполнение, путь существует и пользователь может получить данные об объекте.
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
Атрибут |
Описание |
|---|---|
|
Модуль работает в режиме проверки в полном объеме. |
|
Модель не поддерживает режим сравнения. |
|
Модуль поддерживает только POSIX-совместимые ОС. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Получение информации о файле#
Следующий пример демонстрирует получение сведений о файле:
---
- name: Get /etc/astra_version file info
ansible.builtin.stat:
path: /etc/astra_version
register: astra_version
- name: Show astra_version file stat
ansible.builtin.debug:
msg: astra_version
Результат выполнения сценария:
Проверка разрешений#
Следующий пример демонстрирует проверку владельцев файла /etc/apt/sources.list.d/astra-automation.list:
---
- name: Get /etc/apt/sources.list.d/astra-automation.list file info
ansible.builtin.stat:
path: /etc/apt/sources.list.d/astra-automation.list
register: astra_automation_list
- name: Check owner's user name
ansible.builtin.fail:
msg: "The owner of astra-automation.list file must be a root user!"
when: astra_automation_list.stat.pw_name != 'root'
- name: Check owner's group name
ansible.builtin.fail:
msg: "The owner of astra-automation.list file must be a root group!"
when: astra_automation_list.stat.gr_name != 'root'
Сообщения об ошибках будут выведены только в том случае, когда названия пользователя-владельца и группы-владельца отличаются от root.
Расчет контрольной суммы#
Следующий пример демонстрирует расчет контрольной суммы файла с использованием алгоритма SHA-256:
- name: Calculate kernel checksum
ansible.builtin.stat:
path: /boot/initrd.img-6.1.90-1-generic
checksum_algorithm: sha256
register: data
- name: Print checksum
ansible.builtin.debug:
msg: "Checksum: {{ data.stat.checksum }}"
Результат выполнения сценария:
Получение данных о блочном устройстве#
Следующий пример демонстрирует получение данных о блочном устройстве /dev/sda1:
- name: Get data for /dev/sda1
ansible.builtin.stat:
path: /dev/sda1
register: dev_sda1_data
- name: Print /dev/sda1 info
ansible.builtin.debug:
var: dev_sda1_data
Результат выполнения сценария: