获取 yum 历史的 Ansible 命令

Ansible command to get yum history

你好 Ansible 新手...我正在寻找一种 ansible 方法来获取上次 yum 更新日期并将其写入文本文件(稍后成为网页的一部分)。我知道原始命令: hostname && yum history | awk 'NR==5 { print , }' 这在常规 bash shell(RHEL 版本 7 和 8)中工作得很好 运行,但是,当我尝试将其放入 ansible ad-hoc 命令中时,出现错误:

localhost | FAILED | rc=1 >>
server: cmd. line:1: NR==5 { print ,  }
awk: cmd. line:1:               ^ syntax error
awk: cmd. line:1: NR==5 { print ,  }
awk: cmd. line:1:                  ^ syntax error
awk: cmd. line:1: NR==5 { print ,  }
awk: cmd. line:1:                   ^ unexpected newline or end of stringnon-zero return code 

有什么建议吗?我猜转义可能会有所帮助,但此时我不确定要转义什么?

I'm looking for an ansible way to get the last yum update date and write that out to a text file

 - shell: "yum history | awk 'NR==5 { print ,  }' >> /tmp/yum_history.txt"
   args:
     warn: false

如果你想使用 Ansible ad hoc 命令从所有主机收集所有信息并将其合并到本地文件中,你必须通过前缀转义 awk 命令中的 $他们 \.

ansible all -m ansible.builtin.shell -a \
       "hostname && yum history | awk 'NR==5 { print $7, $8 }'" \
       >> result.txt