Spec-Zone.ru › Ansible

Модуль community.general.filesize – Создать файл заданного размера или изменить его размер, если он существует

Примечание

Этот модуль является частью коллекции community.general (версия 9.5.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Чтобы использовать его в плейбуке, укажите: community.general.filesize.

Добавлена в community.general 3.0.0

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Этот модуль является простым оболочкой вокруг dd для создания, расширения или обрезки файла заданного размера. Его можно использовать для управления файлами подкачки (требующими смежных блоков) или, как альтернативу, для создания больших разреженных файлов.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • dd (Data Duplicator) в PATH
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

attributes

aliases: attr

строка

Атрибуты, которые должен иметь полученный объект файловой системы.

Для получения поддерживаемых флагов см. страницу руководства для chattr на целевой системе.

Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.

Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.

blocksize

любой

Размер блоков в байтах, если не указан множительный суффикс.

Числовое значение (до единицы измерения) ДОЛЖНО быть целым числом (или float, если оно равно целому числу).

Если не задано, размер блока определяется из ОС и обычно составляет 512 или 4096 байт, который используется модулем внутри или когда size не имеет единицы измерения.

force

булево

Определяет, будет ли файл перезаписан, если он существует, то есть, обнуляется ли он до 0. Когда true, модуль не идемпотентен, то есть он всегда сообщает changed=true.

force=true и sparse=true взаимоисключающие.

Варианты:

  • false ← (по умолчанию)
  • true

group

строка

Имя группы, которая должна владеть объектом файловой системы, как это передаётся в chown.

Если не указано, используется текущая группа текущего пользователя, за исключением случая, когда вы являетесь root, в этом случае может сохраняться предыдущее владение.

mode

любой

Права доступа, которые должен иметь полученный объект файловой системы.

Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вам необходимо предоставить Ansible достаточно информации для её корректного разбора. Для получения согласованных результатов, заключайте восьмеричные числа в кавычки (например, '644' или '1777') так, чтобы Ansible получала строку и могла выполнить своё преобразование из строки в число. Добавление ведущего нуля (например, 0755) иногда работает, но может привести к ошибкам в циклах и некоторых других случаях.

Если Ansible получает число без выполнения ни одного из этих правил, это будет десятичное число, что приведёт к непредсказуемым результатам.

Начиная с Ansible 1.8, режим может быть задан как символьный (например, u+rwx или u=rw,g=r,o=r).

Если mode не указано и целевой объект файловой системы не существует, по умолчанию будет использоваться значение umask в системе при установке режима для вновь созданного объекта файловой системы.

Если mode не указано и целевой объект файловой системы существует, режим существующего объекта файловой системы будет использован.

Указание mode является лучшим способом, чтобы гарантировать создание объектов файловой системы с правильными правами. Смотрите CVE-2020-1736 для получения дополнительной информации.

owner

строка

Имя пользователя, который должен владеть объектом файловой системы, как это передаётся в chown.

Если не указано, используется текущий пользователь, за исключением случая, когда вы являетесь root, в этом случае может сохраняться предыдущее владение.

Указание числового имени пользователя будет интерпретироваться как идентификатор пользователя, а не как имя пользователя. Избегайте числовых имён пользователей, чтобы избежать этой неоднозначности.

path

путь / обязательно

Путь к обычному файлу для создания или изменения размера.

selevel

строка

Часть контекста объекта файловой системы SELinux, относящаяся к уровню.

Это атрибут MLS/MCS, иногда называемый range.

При установке в значение _default, будет использоваться часть политики level, если она доступна.

serole

строка

Часть контекста объекта файловой системы SELinux, относящаяся к роли.

При установке в значение _default, будет использоваться часть политики role, если она доступна.

setype

строка

Часть контекста объекта файловой системы SELinux, относящаяся к типу.

При установке в значение _default, будет использоваться часть политики type, если она доступна.

seuser

строка

Часть контекста объекта файловой системы SELinux, относящаяся к пользователю.

По умолчанию используется политика system, где это применимо.

При установке в значение _default, будет использоваться часть политики user, если она доступна.

size

любой / обязательно

Запрашиваемый размер файла.

Значение — это число (либо int, либо float) необязательно с множительным суффиксом, который может быть одним из B (байты), KB или kB (= 1000B), MB или mB (= 1000kB), GB или gB (= 1000MB) и так далее для T, P, E, Z и Y; или же одним из K, k или KiB (= 1024B); M, m или MiB (= 1024KiB); G, g или GiB (= 1024MiB); и так далее.

Если множительный суффикс не указан, значение обрабатывается как целое число блоков по blocksize байт каждый (вещественные значения округляются до ближайшего целого).

Когда значение size равно текущему размеру файла, ничего не происходит.

Когда значение size больше текущего размера файла, байты из source (если sparse не false) добавляются к файлу без усечения, то есть без изменения существующих байтов файла.

Когда значение size меньше текущего размера файла, файл усекается до запрошенного значения без изменения байтов до этого значения.

Это означает, что файл любого произвольного размера может быть увеличен до любого другого произвольного размера, а затем уменьшен до первоначального размера без изменения его первоначального содержимого.

source

путь

Устройство или файл, предоставляющий входные данные для подготовки файла.

Этот параметр игнорируется, когда sparse=true.

Значение по умолчанию: "/dev/zero"

sparse

boolean

Является ли создаваемый файл разреженным.

Этот параметр эффективен только для вновь созданных файлов или при увеличении размера файла, только для добавляемых байтов.

Этот параметр не поддерживается на операционных системах или файловых системах, не поддерживающих разреженные файлы.

force=true и sparse=true взаимоисключающие.

Вызовы:

  • false ← (по умолчанию)
  • true

unsafe_writes

boolean

Этот параметр игнорируется. Этот модуль всегда изменяет размер файла на месте.

Вызовы:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме проверки и возвращать прогноз статуса изменения без модификации целевого объекта.

diff_mode

Поддержка: полная

При использовании режима diff возвращает подробности о том, что изменилось (или, возможно, необходимо изменить в check_mode).

См. также

См. также

dd(1) manpage для Linux

Руководство по реализации dd в GNU/Linux (из GNU coreutils).

dd(1) manpage для IBM AIX

Руководство по реализации dd в IBM AIX.

dd(1) manpage для Mac OSX

Руководство по реализации dd в Mac OSX.

dd(1M) manpage для Solaris

Руководство по реализации dd в Oracle Solaris.

dd(1) manpage для FreeBSD

Руководство по реализации dd в FreeBSD.

dd(1) manpage для OpenBSD

Руководство по реализации dd в OpenBSD.

dd(1) manpage для NetBSD

Руководство по реализации dd в NetBSD.

busybox(1) manpage для Linux

Руководство по реализации busybox в GNU/Linux, которая предоставляет собственную реализацию dd.

Примеры

- name: Create a file of 1G filled with null bytes
  community.general.filesize:
    path: /var/bigfile
    size: 1G

- name: Extend the file to 2G (2*1024^3)
  community.general.filesize:
    path: /var/bigfile
    size: 2G

- name: Reduce the file to 2GB (2*1000^3)
  community.general.filesize:
    path: /var/bigfile
    size: 2GB

- name: Fill a file with random bytes for backing a LUKS device
  community.general.filesize:
    path: ~/diskimage.luks
    size: 512.0 MiB
    source: /dev/urandom

- name: Take a backup of MBR boot code into a file, overwriting it if it exists
  community.general.filesize:
    path: /media/sdb1/mbr.bin
    size: 440B
    source: /dev/sda
    force: true

- name: Create/resize a sparse file of/to 8TB
  community.general.filesize:
    path: /var/local/sparsefile
    size: 8TB
    sparse: true

- name: Create a file with specific size and attributes, to be used as swap space
  community.general.filesize:
    path: /var/swapfile
    size: 2G
    blocksize: 512B
    mode: u=rw,go=
    owner: root
    group: root

Значения возврата

Общие значения возврата документированы здесь, следующие — поля, уникальные для этого модуля:

Ключ

Описание

cmd

строка

Команда, выполненная для создания или изменения размера файла.

Возвращается: при изменении или ошибке

Пример: "/usr/bin/dd if=/dev/zero of=/var/swapfile bs=1048576 seek=3072 count=1024"

filesize

словарь

Словарь размеров, относящихся к файлу.

Возвращается: всегда

blocks

целое число

Количество блоков в файле.

Возвращается: при успехе

Пример: 500

blocksize

целое число

Размер блоков в байтах.

Возвращается: при успехе

Пример: 1024

bytes

целое число

Размер файла в байтах, как произведение filesize.blocks и filesize.blocksize.

Возвращается: при успехе

Пример: 512000

iec

строка

Размер файла в удобочитаемом формате, следуя стандарту IEC.

Возвращается: при успехе

Пример: "500.0 KiB"

si

строка

Размер файла в удобочитаемом формате, следуя стандарту SI.

Возвращается: при успехе

Пример: "512.0 kB"

path

строка

Абсолютный путь к файлу, если это символическая ссылка, в противном случае — такой же, как параметр модуля.

Возвращается: всегда

Пример: "/var/swap0"

size_diff

целое число

Разница (положительная или отрицательная) между старым и новым размерами в байтах.

Возвращается: всегда

Пример: -1234567890

Авторы

  • quidame (@quidame)

Ссылки на коллекцию

  • Система отслеживания задач
  • Репозиторий (исходные файлы)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/filesize_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API