2014-12-02 33 views
0

我有一個curl命令來上傳文件並提交表單。上傳文件並在傀儡模塊中使用CURL提交表格

curl --form <file>[email protected]<filename> --form press=<value> [URL] 

需要編寫如下的puppet執行塊。

ex: exec { "IngestClient $abc_name" : 

    command => "curl --form [email protected]$file --form press=Submit http://ipaddress:portno/myapp/abc/" 
    cwd  => "$data/bin", 
    path => "$data/bin:/usr/bin", 
    require => [File["$package_file"],Package['curl']], 
} 

我需要參數化URL和文件名以及文件和按鈕值。

由於提前,

+0

那麼我建議你這樣做。 ;-p但是開玩笑說,你不明白你在做什麼。請澄清你的問題。 – 2014-12-03 13:15:48

+0

需要參數化URL。而不是硬編碼的URL。 – user2779221 2014-12-03 18:42:39

回答

1

你可以定義與參數filenameurlabc_namedatapackage_file一個自定義類型:

define uploadFile(
    $filename  = $title, 
    $url   = undef, 
    $abc_name  = undef, 
    $data   = undef, 
    $package_file = undef 
) { 
    exec { "IngestClient ${abc_name}" : 

     command => "curl --form [email protected]${filename} --form press=Submit ${url}" 
     cwd  => "${data}/bin", 
     path => "${data}/bin:/usr/bin", 
     require => [ File["${package_file}"], Package['curl'] ] 
    } 
} 

,然後用它是這樣的:

uploadFile { "my-file": 
    url   => "http://ipaddress:portno/myapp/abc", 
    abc_name  => "???", 
    data   => "/foo/bar", 
    package_file => "???" 
}