Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Ansible:可以调整ext4文件系统的大小吗?_Linux_Ansible - Fatal编程技术网

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

Linux Ansible:可以调整ext4文件系统的大小吗?,linux,ansible,Linux,Ansible,如何通过Ansible调整ext4文件系统的大小?我知道这个模块,但我没有看到一个“resize”参数,或者关于它的其他东西…如果您查看当前的源代码,您会发现似乎没有任何东西可以用来调整文件系统的大小 谢天谢地,您可以选择:和 命令模块优于shell模块,因为它不受用户环境的影响,因此我将向您展示如何使用以下方法: - name: "resize my ext4 filesystem, please" command: resize2fs /dev/sda1 sudo: True 其

如何通过Ansible调整ext4文件系统的大小?我知道这个模块,但我没有看到一个“resize”参数,或者关于它的其他东西…

如果您查看当前的源代码,您会发现似乎没有任何东西可以用来调整文件系统的大小

谢天谢地,您可以选择:和

命令模块优于shell模块,因为它不受用户环境的影响,因此我将向您展示如何使用以下方法:

- name: "resize my ext4 filesystem, please"
  command: resize2fs /dev/sda1 
  sudo: True
其中
sda1
是您的文件系统。如果您需要先放大文件系统,请使用相同的方法,但要调用
fdisk
(使用正确的命令行开关)

有关该命令的特定选项,请查看
man resize2fs
,有关包括参数化命令在内的更多信息,请参阅ansible文档。

要执行该任务,请先添加另一个任务以检查是否有未扩展的分区。例如,如果您希望根分区至少为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
上扩展分区2(用于Raspberry Pi)。当然,您应该替换为系统上的设备名称

最后,
notify
触发文件系统扩展:

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

我不知道这是否有帮助。但是,由于Ansible
2.0
文件系统
模块中有一个
resizefs
选项,默认情况下该选项为
false
,并且支持
ext4

如果是,如果块设备和文件系统大小不同,则将文件系统扩展到空间中。 支持ext2、ext3、ext4、ext4dev、f2fs、lvm、xfs、vfat、swap文件系统


我想扩展文件系统。您是如何尝试的?谢谢!我想这就是我需要的!干杯,如果它解决了你的问题,请考虑投票和/或接受其他人知道它的工作。任何好的<代码> < <代码> > <代码>变更>当< /代码>条件使它成为幂等的“@服务器恐怖”,但是您需要一些条件——您可以使用不同的命令将锁定文件放到磁盘上,并且只在文件不在stat上时运行resize,或者您可以说相关设备的
ansible\u mount
事实处于某个
size\u total
integer下。@tristan:我的意思是准备好“偷”了由此可知:)-
命令
模块似乎很明显(对我来说),更有趣的是当时的
,以及当
布局时的
更改,例如,它不会作用于xfs文件系统。再说一次,将其集成到ansible本身的文件系统模块中可能更好:)我对ansible比较陌生;将
扩展文件系统
步骤构造为处理程序并从
扩展分区
通知它有什么好处,与将
扩展文件系统
作为直接在
扩展分区
之后的另一个步骤,并通过
when:expanded | failed
控制它运行的时间不同,就像我们对
扩展分区
步骤本身所做的那样。对我来说,assert函数在ansible_挂载时失败,因为我有5个挂载的驱动器。它找到了正确的一个,但其他的都失败了。我该如何解决这个问题?
- name: 'Extend the FS'
  filesystem:
    fstype: 'ext4'
    dev: '/dev/sda1'
    resizefs: yes