Spec-Zone.ru › Ansible

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

Примечание

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

Возможно, эта коллекция уже установлена, если вы используете пакет 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

Параметры

Параметр

Комментарии

attributes

псевдонимы: 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 (= 1000 Б), MB или mB (= 1000 кБ), GB или gB (= 1000 МБ) и так далее для T, P, E, Z и Y; либо K, k или KiB (= 1024 Б); M, m или MiB (= 1024 КиБ); G, g или GiB (= 1024 МиБ) и так далее.

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

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

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

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

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

source

путь

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

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

По умолчанию: "/dev/zero"

sparse

логическое значение

Следует ли создавать разреженный файл.

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

Этот параметр не поддерживается ОС или файловыми системами, которые не поддерживают разреженные файлы.

Параметры force=true и sparse=true являются взаимоисключающими.

Варианты:

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

unsafe_writes

логическое значение

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

В режиме diff возвращает сведения об изменениях (или о возможных изменениях в check_mode).

См. также

См. также

Страница руководства dd(1) для Linux

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

Страница руководства dd(1) для IBM AIX

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

Страница руководства dd(1) для Mac OSX

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

Страница руководства dd(1M) для Solaris

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

Страница руководства dd(1) для FreeBSD

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

Страница руководства dd(1) для OpenBSD

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

Страница руководства dd(1) для NetBSD

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

Страница руководства busybox(1) для 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/filesize_module.html

Spec-Zone.ru

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