我正在尝试执行此简单命令,但它始终失败:
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
有什么办法解决这个报价吗?
我在here中找到的请注意,我使用其他文件而不是datadpg.yaml进行了测试,因为 对此权限被拒绝。
示例无效
答案 0 :(得分:0)
我更改了执行方式,而不是将其放置在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