我有一个安装 nfs 共享的 ansible playbook。它首先确保目标目录存在:
- name: create /mnt/tmp
file: path=/mnt/tmp
recurse=yes
state=directory
- name: mount nfs
mount: src=10.0.0.2:/data/apache/htdocs
name=/mnt/tmp
fstype=nfs
fstab=/etc/fstab
state=mounted
opts="user,rw,hard,intr,auto"
第一次运行剧本时,它运行正常,但如果我重新运行它,它就会挂起任务create /mnt/tmp
。
我做错了吗?如何调试该问题?
我将剧本改成这样,并以一种不太优雅的方式“解决”了这个问题:
- name: check if /mnt/tmp exists
stat: path=/mnt/tmp
register: p
- name: create /mnt/tmp
when: not p.stat.exists
file: path=/mnt/tmp
recurse=yes
state=directory
- name: mount nfs
mount: src=10.0.0.2:/data/apache/htdocs
name=/mnt/tmp
fstype=nfs
fstab=/etc/fstab
state=mounted
opts="user,rw,hard,intr,auto"
肯定有更好的方法。