我正在尝试执行这个简单的命令,但它总是失败:
echo "secret_backend_command: /home/ec2-user/dd-get-secrets.py" >> /etc/datadog-agent/datadog.yaml"
我尝试了以下所有方法:
- [ sh, -c, echo "secret_backend_command: /home/ec2-user/dd-get-secrets.py" >> /etc/datadog-agent/datadog.yaml ] - 'sh -c "echo \"secret_backend_command: /home/ec2-user/dd-get-secrets.py\" >> /etc/datadog-agent/datadog.yaml"' - sh -c "echo 'secret_backend_command: /home/ec2-user/dd-get-secrets.py' >> /etc/datadog-agent/datadog.yaml
你知道如何修复这个报价吗?
注意,我用另一个文件而不是datadpg.yaml测试,因为我 对此项获取权限被拒绝。
我发现的例子 here 没有工作
我改变了执行的方式,没有将它放在runcmds的yaml列表中,而是创建了一个脚本,并将此命令放入runcmds中并调用该脚本。通过这样做,我摆脱了对cloud init中“:”和引号的复杂处理。
UserData: 'Fn::Base64': !Sub | #cloud-config write_files: - path: /home/ec2-user/update-datadog-config.sh permissions: 0744 owner: root content: | #!/usr/bin/env bash set -e echo "secret_backend_command: /home/ec2-user/dd-get-secrets.py" >> /etc/datadog-agent/datadog.yaml runcmd: - bash /home/ec2-user/update-datadog-config.sh