linux Ansible:可以调整ext4文件系统的大小吗?

kx7yvsdv  于 2023-11-17  发布在  Linux
关注(0)|答案(3)|浏览(164)

如何通过Ansible调整ext4文件系统的大小?我知道filesystem模块,但我没有看到“resize”参数,或其他有关它的内容。

dgtucam1

dgtucam11#

为了使任务具有幂等性,请添加另一个任务,以首先检查是否有未扩展的分区。例如,如果您希望根分区至少为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

字符串

**注意:**如果分区/小于10 GB,则此任务失败。

接下来,使扩展任务以expanded|failed为条件:

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


在我的例子中,我正在扩展块设备/dev/mmcblk0(对于Raspberry Pi)上的分区2。当然,您应该替换为系统上的设备名称。
最后,notify触发文件系统扩展:

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

wrrgggsh

wrrgggsh2#

如果您查看当前filesystem module的源代码,您会发现似乎没有任何东西可以用来调整文件系统的大小。
值得庆幸的是,你有选择:command moduleshell module
命令模块优于shell模块,因为它不受用户环境的影响,所以我将向您展示如何使用这种方法:

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

字符串
其中sda1是你的文件系统。如果你需要先扩大你的文件系统,使用同样的方法,但是调用fdisk(使用正确的命令行开关)。
查看man resize2fs以获取该命令的特定选项,并查看ansible文档以获取更多信息,包括参数化命令。

hvvq6cgz

hvvq6cgz3#

不知道它是否有帮助。但是,由于Ansible 2.0filesystem模块中有resizefs选项,默认情况下为false,支持ext4
如果是,如果块设备和文件系统大小不同,则将文件系统扩展到空间中。支持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

字符串

相关问题