Saltar al contenido

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

Siéntete en la libertad de compartir nuestra página y códigos en tus redes, necesitamos tu ayuda para ampliar nuestra comunidad.

Solución:

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 bloques. /dev/mmcblk0 (para la frambuesa pi). Por supuesto, debe reemplazar con los nombres de los dispositivos en su sistema.

Por fin, notify desencadena 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.

Cheque 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 por defecto y ese soporte 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

Reseñas y puntuaciones

Ten en cuenta dar recomendación a este post si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *