Ansible尝试评估comand线路,但因构建而失败

Ansible尝试评估comand线路,但因构建而失败,ansible,failed-installation,Ansible,Failed Installation,尝试在cfg文件中插入一行,但似乎尝试对其求值,但失败,如下例所示: -名称:设置日志记录输出 线条填充: dest:/etc/cloud/cloud.cfg.d/05_logging.cfg 国家:现在 regexp:“^output:” 行:“”输出:{all:'| tee-a/var/log/test.log'}'' 进入日志: 错误出现在“/var/lib/jenkins/workspace/eda-ami-builder/00_-build/ami/eda/packer/ansibl

尝试在cfg文件中插入一行,但似乎尝试对其求值,但失败,如下例所示:

-名称:设置日志记录输出
线条填充:
dest:/etc/cloud/cloud.cfg.d/05_logging.cfg
国家:现在
regexp:“^output:”
行:“”输出:{all:'| tee-a/var/log/test.log'}''
进入日志:

错误出现在“/var/lib/jenkins/workspace/eda-ami-builder/00_-build/ami/eda/packer/ansible/roles/bootstrap/tasks/yum.yml”中:第30行,第30列,但可能有错误 根据确切的语法问题,在文件中的其他位置

令人不快的一行似乎是:

    regexp: '^output:'
    line: '''output:{all: '| tee -a /var/log/cloud-init-output.log'}'''
                             ^ here
您可以将值标记为Ansible,以便执行以下操作:

-名称:设置日志记录输出
线条填充:
dest:/etc/cloud/cloud.cfg.d/05_logging.cfg
国家:现在
regexp:“^output:”
台词:!不安全的“输出:{all:'| tee-a/var/log/test.log'}”

您的报价不平衡。您期望的确切输出是什么?值得一提的是:
“”“
被解释为一个开头的单引号,后跟一个转义单引号(即一行两个单引号)。恐怕您的意图是使用python的三重引号,这不是yaml的工作方式。只是测试了它,然后!“不安全”确实解决了这个问题,但您需要取消以下单个选项:“^output:”输出前,如下所示:-名称:Set logging output lineinfle:dest:/etc/cloud/cloud.cfg.d/05_logging.cfg state:present regexp:“^output:”行:!不安全的“输出:{all:'|tee-a/var/log/test.log'}”我在05_logging.cfg中得到了建议的解决方案:'output:{all:'|tee-a/var/log/test.log'}我想要的是:output:{all:'|tee-a/var/log/test.log'}非常好的东西,谢谢!是的,在你的问题中使用三重引号并没有真正表明你的意图,但现在它是。