簡體   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