Ansible执行SSL证书检查playbook报no action detected in task求助
Ansible报错原因解答
核心报错原因
你所用的openssl_certificate_info模块为Ansible 2.8及以上版本才新增的内置模块,你当前运行的Ansible版本为2.6.20,该版本不存在这个模块,因此Ansible无法识别任务中定义的动作,直接抛出ERROR! no action detected in task报错。
Ansible 2.6版本中对应的SSL证书信息查询模块名为openssl_certificate_facts,功能与openssl_certificate_info完全匹配,替换模块名即可解决该报错。
其他可优化/修正点
你的playbook最后一行debug任务存在语法问题:
- debug: msg= "{{ result }}"
msg=和后面的变量之间不能有空格,否则会导致变量解析异常,需要调整为:
- debug: msg="{{ result }}"
修正后的完整playbook代码
- name: find cerfication files & expiration dates hosts: 10.0.1.41 gather_facts: false tasks: - name: Find cert files under /etc/pki/tls/certs find: paths: /etc/pki/tls/certs file_type: file patterns: "*.crt" recurse: yes excludes: "localhost.crt" register: find_result - name: check validity openssl_certificate_facts: path: "{{ item.path }}" valid_at: point_1: "+1w" point_2: "+10w" register: result loop: "{{ find_result.files|flatten(levels=1) }}" - debug: msg="{{ result }}"
可选解决方案
你也可以选择将Ansible版本升级至2.8及以上,不需要修改模块名即可正常运行原playbook。
内容的提问来源于stack exchange,提问作者Guif If
相关产品推荐
相关产品推荐

