问题描述
我有这个剧本可以从本地文件夹中查找所有证书并检查证书到期日期。虽然剧本工作得很好,但显示的时间是 ASN.1 格式。我想以人类可读的格式显示时间。使用 json_query 时我无法做到这一点。寻找包含人类可读日期时间和文件名的最佳解决方案。
- hosts: localhost
gather_facts: true
tasks:
- name: list cert files
find:
paths: ../CertsFolder
file_type: file
patterns: "*.cer"
recurse: yes
register: find_files
- name: "Test for certificate validity for 90 days"
openssl_certificate_info:
path: "{{ item.path }}"
valid_at:
point_1: "+90d"
register: certs_info
with_items:
- "{{ find_files.files }}"
- name: Notify via Slack
slack:
token: "{{ slack_token }}"
msg: |
"Certificate expiry alert for the following certificate(s) : {{ item }} "
channel: "{{ slack_channel }}"
domain: "{{ slack_domain }}
validate_certs: 'false'
loop:
- "{{ certs_info.results | json_query(jmesquery) | to_yaml }}"
vars:
jmesquery: "[*].{CertificateName: path,Expired: expired,ExpiryDate: not_after }"
ignore_errors: true
电流输出
Certificate expiry alert for the following certificate(s) : -{CertificateName: certname.cer,Expired: true,ExpiryDate: 20210223120000Z}
-{CertificateName: Newcertname1.cer,ExpiryDate: 20210123120000Z}
-{CertificateName: webserver.cer,ExpiryDate: 20210325120000Z}
希望将 20210325120000Z
切换为 2021-03-25 12:00:00
之类的内容或易于阅读的内容
按照 jmespath 中的建议尝试了 regex_replace,但出现以下错误
"msg": "JMESPathError in json_query filter plugin:\nBad jmespath expression: UnkNown token
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)