繁体   English   中英

如何重新收集设备信息以删除任何分区磁盘?

[英]How do I re-gather device facts to remove any partitioned disks?

我正在构建一个角色,我试图为其收集磁盘而不使用任何分区

disks: "{{ ansible_devices | dict2items | selectattr('key', 'match', '^sd.*')  |  selectattr('value.partitions', 'match', '{}' )  | list  }}"

然后挂载到分区上。 但是,当我运行一个循环时,我想在挂载和分区完成时更新列表/磁盘。

例如,如果一开始我的列表看起来像

disks: [sdb,sdc,sdd,sde]

当使用 Ansible 中的mount模块在sdb上分区和挂载完成时,列表应该更新并且看起来像这样

disks: [sdc,sdd,sde]

我怎样才能做到这一点?

您应该能够通过在安装后调用setup模块来刷新事实。

因此,一个简单明了的任务阅读:

- setup:

而 Ansible 将再次收集主机的信息,因此,您的分区列表应该是最新的。


由于您不能在任务本身中执行此操作,因此您可以做的是,在您的角色中有一个include_tasks可以使任务具有唯一性: parted (或您用于分区的任何内容); mountsetup

就像是:

- include_tasks: partition-mount-and-setup.yml
  loop: "{{ mounts }}"

partition-mount-and-setup.yml中,类似

- parted:
    device: "{{ item.mount_point }}"
    number: 1
    state: present
    part_end: "{{ item.size }}"

- mount:
    src: "{{ item.mount_point }}"
    path: "/mnt/{{ item.mount_point }}"
    state: mounted
    fstype: ext2

- setup:

所有这些都未经测试,但您可以遵循一般逻辑

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM