プレイブックを書いているときに警告を無視しようとしていますが、シナリオはこのvirt-Host-validate qemu
を実行すると、次のように1つの警告がスローされます。
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)`
私が書いたプレイブックは以下の通りです。
`- 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
を使用している間、このプレイブックが続行するという警告以外に失敗するタスクがある場合、心配な部分があります。誰かがそれを修正する方法を教えてもらえますか?前もって感謝します。
これで直せます。
tasks:
- name: Check if Host supports Virtualization.
command: virt-Host-validate qemu
register: command_result
failed_when:
- "'FAIL' in command_result.stderr"
ロール全体でポストタスクとして実行することもできるため、そのロールの各タスクは、ゼロ以外のリターンコードまたは「エラー」または「失敗」を含むSTDERRがある場合にのみ検証されます-タスク失敗します。
すべてのコマンド/シェルタスクで、出力を登録します。
- name: A Shell task
Shell: |
# your commands ...
register: out
次に、メインの役割で、各タスクの後にエラーをチェックするポストタスクを追加します。
- 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)