在执行其他任务之前,我需要检查目录是否是挂载点.
我一直在查看文档,它似乎只能创建/销毁挂载点,而不仅仅是检查是否存在.从下面的链接.
http://docs.ansible.com/ansible/mount_module.html
我想知道是否有任何方法可以检查它是否与ansible存在,或者它是否必须是从ansible调用的其他语言.
我试过两个mount
和stat
模块.两者都不符合您的要求.
我设法只使用OS命令.我在Redhat,Debian和SLES家族上进行了测试.
vars: - myvolume: /backup tasks: - command: mountpoint -q {{myvolume}} register: volume_stat failed_when: False changed_when: False - debug: msg: "This is a mountpoint!" when: volume_stat.rc == 0
问题是,mountpoint
如果路径不是挂载点而命令生成stderr,那么你必须使用ignore_errors
,这不是一个好的解决方案.
编辑1:@udondan提到,failed_when
是一种更好的方法,ignore_errors
因为它不输出错误.
如果您需要在路径不是挂载点时停止播放,则可能是您想要的.
我希望有人找到比这更好的解决方案.
注意:有些平台没有mountpoint
命令,据我所知Darwin(Mac OSX)和SunOS(Oracle Solaris),如果您需要在这些系统上工作,您需要找到另一种解决方法.