GNU/Linux >> Tutoriales Linux >  >> Linux

Ansible:¿es posible cambiar el tamaño del sistema de archivos ext4?

Para hacer que la tarea sea idempotente, agregue otra tarea para verificar primero si hay particiones no expandidas. Por ejemplo, si desea que la partición raíz tenga al menos 10 GB:

  - name: Assert root partition is expanded
    assert: { that: item.mount != '/' or item.size_total > 10737418240 } # 10 GB
    with_items: '{{ ansible_mounts }}'
    ignore_errors: yes
    register: expanded

NOTA: Esta tarea falla si la partición / es menos de 10 GB.

A continuación, haga que la tarea de expansión esté condicionada a expanded|failed :

  - name: Expand partition
    command: parted /dev/mmcblk0 resizepart 2 15.5GB # NOTE: Assumes 16GB card
    when: expanded|failed
    notify: Expand filesystem

En mi caso, estoy expandiendo la partición 2 en el dispositivo de bloque /dev/mmcblk0 (para la frambuesa pi). Por supuesto, debe reemplazar con los nombres de los dispositivos en su sistema.

Finalmente, notify activa la expansión del sistema de archivos:

  handlers:
  - name: Expand filesystem
    command: resize2fs /dev/mmcblk0p2

Si observa la fuente del módulo del sistema de archivos tal como está actualmente, puede ver que no parece haber nada que pueda usar para cambiar el tamaño de un sistema de archivos.

Afortunadamente, tiene opciones:el módulo de comando y el módulo de shell.

Se prefiere el módulo de comando sobre el módulo de shell porque no se ve afectado por el entorno del usuario, así que le mostraré cómo hacerlo usando el enfoque:

- name: "resize my ext4 filesystem, please"
  command: resize2fs /dev/sda1 
  sudo: True

donde sda1 es su sistema de archivos. Si primero necesita ampliar su sistema de archivos, use el mismo enfoque, pero haga una llamada a fdisk (con los interruptores de línea de comando correctos) en su lugar.

Marque man resize2fs para obtener opciones específicas para ese comando y la documentación de ansible para obtener más información, incluida la parametrización de su comando.


No sé si podría ayudar. Pero, desde Ansible 2.0 hay resizefs opción en el filesystem módulo que es false de forma predeterminada y que admiten ext4 .

En caso afirmativo, si el dispositivo de bloque y el tamaño del sistema de archivos difieren, haga crecer el sistema de archivos en el espacio. Compatible con sistemas de archivos ext2, ext3, ext4, ext4dev, f2fs, lvm, xfs, vfat, swap.

https://docs.ansible.com/ansible/latest/modules/filesystem_module.html

- name: 'Extend the FS'
  filesystem:
    fstype: 'ext4'
    dev: '/dev/sda1'
    resizefs: yes

Linux
  1. ¿Cómo cambiar el tamaño de las particiones y los sistemas de archivos en ellas?

  2. mkfs.exfat:comando no encontrado

  3. mkfs.xfs:comando no encontrado

  4. Hacer comando para Windows:¿opciones posibles?

  5. Cómo mencionar comodines en comandos ansible

Comprender los sistemas de archivos de Linux:ext4 y más allá

Guía de Ansible:el comando ad-hoc

Cómo hacer una copia de seguridad del sistema de archivos de Linux usando el comando dump

¿Cómo aumentar el número de inodos en un sistema de archivos Ext4?

¿Qué sistema de archivos para respaldar es el mejor?

¿Convertir el sistema de archivos de arranque de Xfs a Ext4?