- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不仅尝试将 ansible 用作配置工具,而且还尝试能够轻松地跨一系列服务器执行大量验证检查。
因此,我在剧本的开头抓取了一堆不同的信息,然后对它们进行检查。
鉴于这些是验证检查而不是配置,我希望我的所有失败一次,而不是一次失败,剧本失败,必须解决它然后再次运行它,一遍又一遍地找到我的多个失败。
我可以通过在其中放置一个 ignore_errors 标志来继续运行剧本,但它不会增加剧本末尾的“失败”计数,我宁愿用户不必向上滚动所有输出以查找红色文本,或抓取日志以查看是否有错误,尤其是看到末尾有一个计数器作为完美的一目了然的引用。
我在 Ubuntu 版本 14.04 上使用版本 Ansible 2.4.2.0
这是我的剧本:
- name: Validates Preship configuration
hosts:
- active
- dr
become_user: root
become: true
become_method: su
roles:
- preShipValidation
ignore_errors: yes
然后在将任务导入 main.yml 文件并运行一个单独的任务来填充我的 host_vars 之后,我运行以下任务:
- name: BIOS Version Check for Equus or Seneca 2000/2100
assert:
that:
- '"2.0a" in dmidecode_bios_ver.stdout'
when: '"2000" in appliance_model and
"X10DRW" in motherboard_model'
运行时会得到以下输出(经过编辑以便于阅读)
TASK [preShipValidation : BIOS Version Check for Equus or Seneca 2000/2100] ******************************************************************************************************************
skipping: [server1] => {"changed": false, "skip_reason": "Conditional result was False"}
skipping: [server2] => {"changed": false, "skip_reason": "Conditional result was False"}
fatal: [server3]: FAILED! => {
"assertion": "\"2.0a\" in dmidecode_bios_ver.stdout",
"changed": false,
"evaluated_to": false
}
...ignoring
ok: [server4] => {
"changed": false,
"msg": "All assertions passed"
}
PLAY RECAP ***********************************************************************************************************************************************************************************
server1 : ok=11 changed=4 unreachable=0 failed=0
server2 : ok=12 changed=4 unreachable=0 failed=0
server3 : ok=10 changed=4 unreachable=0 failed=0
server4 : ok=11 changed=4 unreachable=0 failed=0
关于如何获取失败计数以显示它忽略的错误的任何想法?
最佳答案
在您忽略的每个任务中,使用 register 标记将输出保存到一个变量,并创建一个额外的任务,如果注册变量的失败选项为 True,则将变量递增 1。
例如:
- name: Yum update
yum:
name: "*"
state: latest
register: result
ignore_errors: True
- name: Increment variable
set_fact: failed_count={{ failed_count | int + 1 }}
when: result.failed
请注意,此 failed_count 变量应在 playbook 开头初始化为 0。
关于Ansible:使用 ignore_errors 时失败任务的播放回顾中的增量计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49805434/
我不仅尝试将 ansible 用作配置工具,而且还尝试能够轻松地跨一系列服务器执行大量验证检查。 因此,我在剧本的开头抓取了一堆不同的信息,然后对它们进行检查。 鉴于这些是验证检查而不是配置,我希望我
我在 ansible 剧本中得到了以下任务... - name: Check if default ssh user exist shell: whoami remote_user: "{
我在 Puppet Master 上有以下 list : exec { 'DatabaseCreation': command => '/usr/bin/mysqladmin -u root -
我是一名优秀的程序员,十分优秀!