0

我正在尝试使用 curl 在 puppet 文件中为 couchDB 创建虚拟主机:

exec {'setup-vhosts':
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d '"/my_database"'",
    require => [Service['couchdb'], Package['curl']],
}

但我收到此错误:''' 处的语法错误;/tmp/vagrant-puppet/modules-0/couchdb/manifests/init.pp:19 处的预期“}”

如果我在机器本身上执行命令,它会完美运行。如何正确转义命令?

4

2 回答 2

0

我确实使用以下方法修复了它:

exec {'setup-vhosts':
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d \'\"/my_database\"\'",
    require => [Service['couchdb'], Package['curl']],
}

感谢 Ger Apeldoorn 指出我使用正确的转义。

于 2013-01-23T08:50:59.723 回答
0

我认为您应该转义双引号,或仅在字符串中使用单引号。

exec {'setup-vhosts':
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d \"/my_database\"",
    require => [Service['couchdb'], Package['curl']],
}

或者

exec {'setup-vhosts':
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d '/my_database'",
    require => [Service['couchdb'], Package['curl']],
}

另外,请注意,您必须阻止此 exec 在每个 puppetrun 中运行。

于 2013-01-22T14:43:01.210 回答