Ansible查找卷磁盘名

Ansible查找卷磁盘名,ansible,ansible-playbook,Ansible,Ansible Playbook,我正试图写一本剧本来格式化某个卷,但我无法决定选择正确的驱动器 这是我正在做的 --- - hosts: all gather_facts: no remote_user: root tasks: - name: create file system on storage lun filesystem: fstype=xfs dev=/dev/mapper/mpath* 我试图匹配mpath之后的任何单个字符,但是*似乎不起作用 通配符在那里不起作用。您需要在附加任

我正试图写一本剧本来格式化某个卷,但我无法决定选择正确的驱动器

这是我正在做的

---
- hosts: all
  gather_facts: no
  remote_user: root
  tasks:
  - name: create file system on storage lun
    filesystem: fstype=xfs  dev=/dev/mapper/mpath* 

我试图匹配mpath之后的任何单个字符,但是*似乎不起作用

通配符在那里不起作用。您需要在附加任务中或从设置模块中获取此信息

例如:

- command: ls /dev/mapper/mpath*
  register: mapper
- filesystem: fstype=xfs dev="{{ mapper.stdout_lines[0] }}"

我还没有测试过上面的内容,但这是一个普遍的想法。

对谁来说,在没有任何解释的情况下否决一个完全可行的公认答案是一种非常恶劣和不专业的行为。然后,你的解释来了。无论是有效的解决方案还是公认的解决方案,其本身都不是一个好的答案。此解决方案需要一个额外的任务,在这种情况下,该任务的执行时间将增加一倍。因为有一种方法可以在一个任务中完成,这可能是一个可行的解决方案,但不是最好的。投票结果反映了这一点。@udondan你给出的答案无效,而我的答案有效,也许这更重要。额外任务的性能损失不一定是双倍时间,但即便如此,在devops中,可能有数百个任务的剧本中,额外任务的边际性能并不总是问题所在。更不用说我的建议允许在存在多个映射器的情况下选择特定映射器的粒度。我觉得你的行为不道德,粗心大意。你应该得到我真正的道歉。你完全正确,我下面的答案是错误的。我的本意不是要把你的答案与我的答案相比投反对票。我的意图是投票选出最好的答案。既然你不能投票给你自己的答案,我就把你的投了反对票。如果另一个答案不是我自己的,我只会把它投上更高的票,因为当时我认为它更好。再说一次,我的错。“不幸的是,我不能改变我的投票结果。”udondan接受道歉,表示感谢。我想恭敬地指出,向上投最好的票或向下投任何其他票不是两个相互排斥的事件。在帮助页面:“当你遇到一篇极其草率、不费吹灰之力的帖子,或者一个明显错误的答案时,请使用你的反对票。”。无论如何,再次感谢,为了将来读者的参考,以上评论参考