【问题标题】:Ansible to check for unused disks of certain size and create a volume groupAnsible 检查特定大小的未使用磁盘并创建卷组
【发布时间】:2019-03-27 23:47:41
【问题描述】:

我是 Ansible 的新手,也是 Stackoverflow 的全新成员。

我正在尝试创建一个可查找未使用磁盘(可以是 SAN、Solidfire 或 localdisk)的剧本。根据大小变量过滤它们,并从符合条件的磁盘中创建一个卷组。

例如,服务器有 2 个 50GB 磁盘和 2 个 100GB 磁盘。

我希望即使用户输入51Gb 大小或49 GB 大小,剧本也应该能够考虑到 +-5gb 的误差范围。

我被卡住的部分是如何按大小过滤未使用的磁盘,误差范围为 +- 5gb。

我可以通过

查找未使用的磁盘
set fact:
  disks: "{{ansible_local.unused_disks}}"

这给出了未使用磁盘的列表。但是如何过滤该列表以获取具有上述误差范围的特定大小?

编辑

是的,你是对的。 ansible_local.unused_disks 不存在。

在我使用自定义事实放置之前检查的服务器上。在每台服务器上都不会出现这种情况。因此,我需要找到另一种方法来查找磁盘。

我与另一个 SA 核对并获得了此代码。

 - name: Discover Disks
   set_fact:
     disks: "['/dev/{{item.key}}']"
   when:
     - not item.value.partitions
     - not item.value.holder
     - not item.value.links.ids
     - item.key | search ("sd")
   with_dict: "{{ ansible_devices }}"

但它给了我一个输出,它只显示找到的第一个未使用的设备,而不是列表中所有未使用的设备。所以我也需要这方面的帮助。

【问题讨论】:

    标签: ansible yaml


    【解决方案1】:

    ansible_local 不是常见的 ansible 功能。我用谷歌搜索了它。是流浪的东西吗?

    无论如何,您想要做的就是处理一个列表,跳过其中的一些元素。这很容易做到。

    - name: do something with a disks of a proper size
      command: echo do somewhing with {{ item }}
      with_items:' {{ ansible_local.unused_disks }}'
      when: min_value <= ansible_devices[item].sectors * ansible_devices[item].sectorsize <= max_value 
      vars:
        min_value: '{{ user_input * 1024 * 1024 * 1024 * 1.05 }}'
        max_value: '{{ user_input * 1024 * 1024 * 1024 * 1.05 }}'
    

    【讨论】:

    • 是的,你是对的。 ansible_local.unused_disks 不存在。在服务器上,我在使用自定义事实放置之前检查过它。在每台服务器上都不会出现这种情况。因此,我需要找到另一种方法来查找磁盘。我与另一个 SA 核对并获得了此代码。 ` - name: Discover Disks set_fact: disks: "['/dev/{{item.key}}']" when: - not item.value.partitions - not item.value.holder - not item.value.links。 ids - item.key |搜索 ("sd") with_dict: "{{ ansible_devices }}" `
    • 我已经尝试了多次我不确定为什么我的代码在我实际使用正确的语法编写时会显示在一行中。我必须弄清楚那部分。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2023-04-05
    • 1970-01-01
    • 2014-02-10
    相关资源
    最近更新 更多