ansible - 当条件 Ansible 不使用 OR 时?
问题描述
- 剧本应显示剧本中未提及的内核。
- 或未按预期检查条件
---
- name: Check Details
hosts: all
gather_facts: false
become: true
tasks:
- name: Check Kernel
shell: uname -r
register: kernelver
- name: Target Kernel NOT achieved
debug:
var: kernelver.stdout
when: (kernelver.stdout != '2.6.32-754.35.1.el6.x86_64') or
(kernelver.stdout != '3.10.0-1160.21.1.el7.x86_64') or
(kernelver.stdout != '4.18.0-240.15.1.el8_3.x86_64')
解决方案
将列表放入变量中,例如
- hosts: localhost
gather_facts: false
vars:
kernel_black_list:
- 5.4.0-70-generic
- 5.4.0-71-generic
- 5.4.0-72-generic
tasks:
- command: uname -r
register: kernelver
- debug:
var: kernelver.stdout
when: kernelver.stdout not in kernel_black_list
给
ok: [localhost] =>
kernelver.stdout: 5.4.0-73-generic
如果您需要高级测试,请参阅比较版本。
推荐阅读
- jquery - jQuery最接近()和/或find()不工作动态数据表
- java - 如何获取网络元素的网络“状态”?
- javascript - 如何摆脱CKeditor的Source按钮旁边的“Source”标签?
- python - 按目标索引Python分组数组
- orm - 如何在同一模型的many2one字段中使用one2many字段的虚拟记录
- reactjs - 类型错误:unsubFirebaseSnapShot01 不是函数
- python - Flask-Mqtt的Python Flask工厂应用程序问题没有属性'init_app'
- c# - 在 MVVM 中使用 DelegateCommand 的异步 CanExecute 方法
- python - 提取部分 json 键值并组合
- java - 如何分隔 JFrame 中的面板以分隔类