我试图设置一个“循环”条件来检查文件系统的状态,直到它被挂载为止。文件系统正在挂载,但任务报告失败。有人能帮我解决这个街区的问题吗。
尝试调整gcp计算机器的大小,并等待文件系统在我开始剩余进程之前挂载。
- set_fact:
data_fs: /var/data
- debug:
var: data_fs
- set_fact:
commit_fs: /var/commitlog
- debug:
var: commit_fs
- name: Wait for data mount point
stat: path={{ data_fs }}
register: data_fs_status
until: data_fs_status.stat.exists == "true"
retries: 10
delay: 6
- name: Wait for commit mount point
stat: path={{ commit_fs }}
register: commit_fs_status
until: commit_fs_status.stat.exists == "true"
retries: 10
delay: 6
- include: start.yaml
输出获取如下失败-重试:等待数据挂载点(10次重试左)。失败-重试:等待数据挂载点(9次重试左)。失败-重试:等待数据挂载点(左8次重试)。失败-重试:等待数据挂载点(左7次重试)。失败-重试:等待数据挂载点(左6次重试)。失败-重试:等待数据挂载点(左5次重试)。失败-重试:等待数据挂载点(左4次重试)。失败-重试:等待数据挂载点(左3次重试)。失败-重试:等待数据挂载点(左2次重试)。失败-重试:等待数据挂载点(左1次重试)。
stat: atime: 1660251304.4672601 attr_flags: e属性:- block_size: 4096块:8个字符集:二进制ctime: 1615927045.570012 dev: 2064 device_type: 0可执行存在: stat.exists的真=>输出显示为true,但循环返回false。
发布于 2022-08-18 08:16:02
我认为你的问题是until: commit_fs_status.stat.exists == "true"
永远不会成功。此语句将永远不会返回"true“字符串。stat.exists只会返回布尔值。请参阅下面的内容来解决您的问题,下面是到stat.exists文档的链接。
- set_fact:
data_fs: /var/data
commit_fs: /var/commitlog
- debug:
msg:
- "{{ data_fs }}"
- "{{ commit_fs }}"
- name: Wait for data mount point
stat:
path: "{{ data_fs }}"
register: data_fs_status
until: data_fs_status.stat.exists # No need to do an equals, .exists returns a boolean
retries: 10
delay: 6
- name: Wait for commit mount point
stat:
path: "{{ commit_fs }}"
register: commit_fs_status
until: commit_fs_status.stat.exists # No need to do an equals, .exists returns a boolean
retries: 10
delay: 6
- include: start.yaml
https://stackoverflow.com/questions/73397422
复制相似问题