首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要使用ansible循环命令的帮助

需要使用ansible循环命令的帮助
EN

Stack Overflow用户
提问于 2022-08-18 04:21:18
回答 1查看 38关注 0票数 0

我试图设置一个“循环”条件来检查文件系统的状态,直到它被挂载为止。文件系统正在挂载,但任务报告失败。有人能帮我解决这个街区的问题吗。

尝试调整gcp计算机器的大小,并等待文件系统在我开始剩余进程之前挂载。

代码语言:javascript
运行
复制
- 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。

EN

回答 1

Stack Overflow用户

发布于 2022-08-18 08:16:02

我认为你的问题是until: commit_fs_status.stat.exists == "true"永远不会成功。此语句将永远不会返回"true“字符串。stat.exists只会返回布尔值。请参阅下面的内容来解决您的问题,下面是到stat.exists文档的链接。

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/stat_module.html#return-stat/exists

代码语言:javascript
运行
复制
- 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73397422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档