首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ansible中忽略警告

如何在ansible中忽略警告
EN

Stack Overflow用户
提问于 2018-06-04 17:19:50
回答 2查看 12.6K关注 0票数 4

在编写攻略时,我一直试图忽略一个警告,场景是我执行此virt-host-validate qemu时,它抛出一个警告,如下所示。

代码语言:javascript
复制
root@n0:~/playbook_promenade# virt-host-validate 
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists :PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'memory' controller mount-point : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller mount-point: PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'devices' controller mount-point : PASS
QEMU: Checking for cgroup 'net_cls' controller support : PASS
QEMU: Checking for cgroup 'net_cls' controller mount-point : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller mount-point : PASS
QEMU: Checking for device assignment IOMMU support  : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)`

我写的攻略如下。

代码语言:javascript
复制
`- hosts: localhost
   sudo: yes
   tasks:
    - name: Check if Host supports Virtualization.
      command: virt-host-validate qemu 
      ignore_errors: yes
      failed_when: false
      changed_when: false
      register: host_status
    - debug:
       msg: "status: {{host_status.stdout}}"`

现在令人担忧的部分是,如果除了警告之外还有任何其他任务失败,本攻略在我们使用ignore_errors: yes时仍在继续,有人能指导我如何修复它吗??提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-04 17:33:02

我可以用这个修好它。

代码语言:javascript
复制
  tasks:
   - name: Check if Host supports Virtualization.
     command: virt-host-validate qemu
     register: command_result
     failed_when:
       - "'FAIL' in command_result.stderr"
票数 2
EN

Stack Overflow用户

发布于 2018-07-08 19:25:43

您还可以在整个角色上将其作为post任务运行,因此该角色中的每个任务都将被验证,并且只有当它具有非零返回代码或包含"error“或" fail”的STDERR时,任务才会失败。

在所有命令/shell任务上,注册输出:

代码语言:javascript
复制
- name: A shell task
  shell: |
    # your commands ...
  register: out

然后在主角色上,添加一个将在每个任务之后检查错误的post- task:

代码语言:javascript
复制
- name: A role of shell/command tasks
  roles:
  - role: ...
  ...
  post_tasks:
  - name: Checking if command failed, or if stderr contains errors/failures
    fail: msg={{ out.stderr.split('\n') }}
    when: out is defined and out.stderr is defined and (out.stderr | lower | regex_search('error|fail') or out.rc != 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50677220

复制
相关文章

相似问题

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