我正在执行以下设置boolean标志的Ansible任务
-
name: Seting up NodeJS
command: npm config set strict-ssl false
尽管该命令肯定是幂等的,但ansible-playbook
并没有意识到,由于明显的原因,因此在空运行报告中会产生噪音(特别是,如果严格要求运行剧本时ssl标志已经为假)
是否可以告诉Ansible如何检查标志是否已设置?也许像这样:
-
name: Seting up NodeJS
command: npm config set strict-ssl false
when: (npm config get strict-ssl) == true
谢谢!
答案 0 :(得分:1)
您可能要使用该构造
- command: npm config set strict-ssl false
args:
creates: "{{ lock_file }}"
如果 command 没有创建 lock_file ,则可能需要在 block 中运行 command 。并自己创建一个 lock_file 。
作为 lock_file ,可以使用命令创建的任何文件。
答案 1 :(得分:1)
您对when
的想法差不多了。阅读有关https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html#register-variables的信息,然后您可以执行以下操作:
tasks:
- name: npm config get strict-ssl
command: npm config get strict-ssl
register: npm_strict_ssl
changed_when: false
- name: Setting up NodeJS
command: npm config set strict-ssl false
when: "npm_strict_ssl['stdout'] == 'true'"
我还要补充一点,您想要禁用的特定设置(严格的SSL)闻起来是一个非常糟糕的主意。请考虑解决问题的根本原因,而不是降低安全性。