ansible - 在检查模式下运行时跳过 Ansible 任务?

标签 ansible ansible-playbook

我正在编写 Ansible 剧本,并且有一项在检查模式下总是失败的任务:

hosts: ...
tasks:
    - set_fact: filename="{{ansible_date_time.iso8601}}"
    - file: state=touch name={{filename}}
    - file: state=link src={{filename}} dest=latest

在检查模式下,将不会创建文件,因此 link任务总是会失败。在检查模式下运行时,有没有办法标记要跳过的此类任务?就像是:
- file: state=link src={{filename}} dest=latest
  when: not check_mode

最佳答案

Ansible 2.1 支持 ansible_check_mode设置为 True 的魔法变量在检查模式( official docs )。这意味着您将能够做到这一点:

- file:
    state: link
    src: '{{ filename }}'
    dest: latest
  when: not ansible_check_mode

或者
- file:
    state: link
    src: '{{ filename }}'
    dest: latest
  ignore_errors: '{{ ansible_check_mode }}'

你更喜欢哪个。

关于ansible - 在检查模式下运行时跳过 Ansible 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729567/

相关文章:

variables - 角色默认变量中的 Ansible 递归循环

email - 如何使用 Ansible 发送电子邮件

Ansible : how to create a function like

ansible - 如何在 Ansible playbook api 中设置 "--limit"选项

command - 如何使用 ansible 在命令任务中运行 sh 脚本

Ansible Gather_facts,它如何收集有关 Linux 操作系统的详细信息

Ansible 与通配符同步

ansible - 如何使用 jinja2 在 Ansible 中加入引号?

ssh - 使用 ansible 执行 ssh-add 会引发错误

ansible - 运行 ansible playbook 时如何缩小范围?