0

curlを使用して、puppetファイルにcouchDBのvhostを作成しようとしています。

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']],
}

正しいエスケープを使用するように私に指摘してくれたGerApeldoornに感謝します。

于 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']],
}

また、各 puppetrun でこの exec が実行されないようにする必要があることに注意してください。

于 2013-01-22T14:43:01.210 に答える