Filesize
Resumo
Este módulo é um wrapper simples dd para criar, estender ou truncar um arquivo, dado seu tamanho. Ele pode ser usado para gerenciar arquivos de troca (que requerem blocos contíguos) ou, alternativamente, grandes arquivos esparsos.
Requisitos
Os requisitos abaixo são necessários no host que executa este módulo.
dd (Duplicador de Dados) em PATH
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
attributes | string | | Os atributos que o objeto de sistema de arquivos resultante deve ter. Para obter os sinalizadores suportados, consulte a página man do chattr no sistema de destino. Essa string deve conter os atributos na mesma ordem que a exibida por lsattr . O operador = é assumido como padrão, caso contrário, os operadores + e - precisam ser incluídos na string. |
blocksize | raw | | Tamanho dos blocos, em bytes se não for seguido por um sufixo multiplicativo. O valor numérico (antes da unidade) MUST deve ser um inteiro (ou a float se for igual a um inteiro). Se não for definido, o tamanho dos blocos é adivinhado a partir do sistema operacional e geralmente resulta em 512 ou 4096 bytes, que é usado internamente pelo módulo ou quando o tamanho não tem unidade. |
force | boolean | Escolhas: - false(default) - true | Se deve ou não sobrescrever o arquivo se ele existir. Quando true ele sempre reporta change=true . force=true e sparse=true são mutuamente exclusivos. |
group | string | | Nome do grupo que deve possuir o objeto do sistema de arquivos, como seria alimentado para chown. |
mode | raw | | As permissões que o objeto do sistema de arquivos resultante deve ter. Para aqueles acostumados a /usr/bin/chmod , lembre-se de que os modos são, na verdade, números octais. Você deve adicionar um zero à esquerda para que o analisador YAML do Atmosphere saiba que é um número octal (como 0644ou 01777) ou aspas (como '644'ou '1777') para que o Atmosphere receba uma string e possa fazer sua própria conversão de string em número. Dar um número ao Atmosphere sem seguir uma dessas regras resultará em um número decimal que terá resultados inesperados. Se mode não for especificado e o objeto do sistema de arquivos de destino não existir, o padrão umask no sistema será usado ao definir o modo para o objeto do sistema de arquivos recém-criado. Se mode não for especificado e o objeto do sistema de arquivos de destino existir, o modo do objeto do sistema de arquivos existente será usado. Especificar mode é a melhor maneira de garantir que os objetos do sistema de arquivos sejam criados com as permissões corretas. Consulte CVE-2020-1736 para obter mais detalhes. |
owner | string | | Nome do usuário que deve possuir o objeto do sistema de arquivos, como seria alimentado para chown. |
path - required | path | | Caminho do arquivo normal a ser criado ou redimensionado. |
selevel | string | | A parte de nível do contexto do objeto do sistema de arquivos SELinux. Este é o atributo MLS/MCS, às vezes conhecido como range. Quando definido como _default, ele usará level a parte da política, se disponível. |
serole | string | | A parte da função do contexto do objeto do sistema de arquivos SELinux. Quando definido como _default, ele usará role a parte da política, se disponível. |
setype | string | | A parte do tipo do contexto do objeto do sistema de arquivos SELinux. Quando definido como _default, ele usará type a parte da política, se disponível. |
seuser | string | | A parte do usuário do contexto do objeto do sistema de arquivos SELinux. Por padrão, ele usa a política system, quando aplicável. Quando definido como _default, ele usará user a parte da política, se disponível. |
size - required | raw | | Tamanho do arquivo solicitado. O valor é um número (ou int ou float) opcionalmente seguido por um sufixo multiplicativo, que pode ser um de B(bytes), KB ou kB(= 1000B), MB ou mB(= 1000kB), GB ou gB(= 1000MB), e assim por diante para T, P, E, Z e Y; ou alternativamente um de K, k ou KiB(= 1024B); M, m ou MiB(= 1024 KiB); G, g ou GiB(= 1024MiB); e assim por diante. Se o sufixo multiplicativo não for fornecido, o valor será tratado como um número inteiro de blocos de bytes de tamanho de bloco cada (valores flutuantes são arredondados para o número inteiro mais próximo). Quando o valor do tamanho é igual ao tamanho do arquivo atual, não faz nada. Quando o valor do tamanho é maior que o tamanho do arquivo atual, os bytes da fonte (se esparso não for false) são anexados ao arquivo sem truncá-lo, ou seja, sem modificar os bytes existentes do arquivo. Quando o valor do tamanho é menor que o tamanho do arquivo atual, ele é truncado para o valor solicitado sem modificar os bytes antes desse valor. Isso significa que um arquivo de qualquer tamanho arbitrário pode ser aumentado para qualquer outro tamanho arbitrário e, em seguida, redimensionado para seu tamanho inicial sem modificar seu conteúdo inicial. |
source | path | Default: - "/dev/zero" | Dispositivo ou arquivo que fornece dados de entrada para provisionar o arquivo. Este parâmetro é ignorado quando sparse=true . |
sparse | boolean | Escolhas: - false(default) - true | Se o arquivo a ser criado deve ou não ser um arquivo esparso. Essa opção é efetiva apenas em arquivos recém-criados ou ao aumentar um arquivo, apenas para os bytes a serem anexados. Esta opção não é suportada no OpenBSD, Solaris e AIX. force=true e sparse=true são mutuamente exclusivos. |
unsafe_writes | boolean | Escolhas: - false(default) - true | Esta opção é ignorada silenciosamente. Este módulo sempre modifica o tamanho do arquivo no local. |
Extende fragmentos da documentação do módulo files.
Notas
- Este módulo suporta check_mode e diff.
Exemplos
- name: Crie um arquivo de 1G preenchido com bytes nulos
community.general.filesize:
path: /var/bigfile
size: 1G
- name: Estenda o arquivo para 2G (2*1024^3)
community.general.filesize:
path: /var/bigfile
size: 2G
- name: Reduza o arquivo para 2 GB (2*1000^3)
community.general.filesize:
path: /var/bigfile
size: 2GB
- name: Preencha um arquivo com bytes aleatórios para fazer backup de um dispositivo LUKS
community.general.filesize:
path: ~/diskimage.luks
size: 512.0 MiB
source: /dev/urandom
- name: Faça um backup do código de inicialização do MBR em um arquivo, substituindo-o se existir
community.general.filesize:
path: /media/sdb1/mbr.bin
size: 440B
source: /dev/sda
force: true
- name: Criar/redimensionar um arquivo esparso de/para 8TB
community.general.filesize:
path: /var/local/sparsefile
size: 8TB
sparse: true
- name: Crie um arquivo com tamanho e atributos específicos, para ser usado como espaço de troca
community.general.filesize:
path: /var/swapfile
size: 2G
blocksize: 512B
mode: u=rw,go=
owner: root
group: root
Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
cmd | string | quando alterado ou falhou | Comando executado para criar ou redimensionar o arquivo. |
filesize | dictionary | Sempre | Dicionário de tamanhos relacionados ao arquivo. |
path | string | Sempre | Realpath do arquivo se for um link simbólico, caso contrário, o mesmo que o parâmetro do módulo. |
size_diff | integer | Sempre | Diferença (positiva ou negativa) entre o tamanho antigo e o novo, em bytes. |
Subcampos da chave de valor filesize
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
blocks | inteiro | Sucesso | Número de blocos no arquivo. |
blocksize | inteiro | Sucesso | Tamanho dos blocos em bytes. |
bytes | inteiro | Sucesso | Tamanho do arquivo, em bytes, como o produto de blockse blocksize. |
iec | string | Sucesso | Tamanho do arquivo, em formato legível, seguindo o padrão IEC. |
si | string | Sucesso | Tamanho do arquivo, em formato legível, seguindo o padrão SI. |