GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ansible:Ist es möglich, die Größe des ext4-Dateisystems zu ändern?

Um die Aufgabe idempotent zu machen, fügen Sie eine weitere Aufgabe hinzu, um zuerst nach nicht erweiterten Partitionen zu suchen. Beispiel:Wenn Sie möchten, dass die Root-Partition mindestens 10 GB groß ist:

  - 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

HINWEIS: Diese Aufgabe schlägt fehl, wenn die Partition / ist kleiner als 10 GB.

Als nächstes machen Sie die Erweiterungsaufgabe abhängig von expanded|failed :

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

In meinem Fall erweitere ich Partition 2 auf dem Blockgerät /dev/mmcblk0 (für den Raspberry Pi). Sie sollten natürlich durch die Gerätenamen auf Ihrem System ersetzen.

Zum Schluss notify löst Dateisystemerweiterung aus:

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

Wenn Sie sich den Quellcode des Dateisystemmoduls in seiner derzeitigen Form ansehen, können Sie sehen, dass es nichts zu geben scheint, mit dem Sie die Größe eines Dateisystems ändern könnten.

Zum Glück haben Sie Optionen:das Befehlsmodul und das Shell-Modul.

Das Befehlsmodul wird gegenüber dem Shell-Modul bevorzugt, weil es nicht von der Benutzerumgebung beeinflusst wird, also zeige ich Ihnen, wie es geht, indem ich den Ansatz verwende:

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

wobei sda1 ist dein Dateisystem. Wenn Sie zuerst Ihr Dateisystem vergrößern müssen, verwenden Sie den gleichen Ansatz, aber rufen Sie fdisk auf (mit den richtigen Befehlszeilenschaltern) stattdessen.

Kreuzen Sie man resize2fs an für spezifische Optionen für diesen Befehl und die Ansible-Dokumentation für weitere Informationen, einschließlich der Parametrisierung Ihres Befehls.


Weiß nicht ob es helfen könnte. Aber seit Ansible 2.0 da ist resizefs Option in filesystem Modul, das false ist standardmäßig und die ext4 unterstützen .

Wenn ja, vergrößern Sie das Dateisystem in den Speicherplatz, wenn sich die Größe des Blockgeräts und des Dateisystems unterscheidet. Unterstützt für ext2, ext3, ext4, ext4dev, f2fs, lvm, xfs, vfat, Swap-Dateisysteme.

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

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

Linux
  1. Wie ändert man die Größe von Partitionen und Dateisystemen darauf?

  2. Welches zu sichernde Dateisystem ist das beste?

  3. Linux-mkfs-, mke2fs-Befehlsbeispiele (Ext2-, Ext3-, Ext4-Dateisystem erstellen)

  4. mkfs.xfs:Befehl nicht gefunden

  5. Make-Befehl für Windows - mögliche Optionen?

Linux-Dateisysteme verstehen:ext4 und darüber hinaus

Ansible Guide:Das Ad-hoc-Kommando

So sichern Sie das Linux-Dateisystem mit dem Dump-Befehl

Boot-Dateisystem von Xfs nach Ext4 konvertieren?

Ist es möglich, die Größe eines QEMU-Disk-Images zu ändern?

Ist eine Online-Größenänderung der Festplatte mit KVM möglich?