Puppet 清单通过传递 cookies 而没有证书来下载 java

Puppet manifest to download java by passing cookies and no certificate

我正在尝试使用 Puppet 准备下载 java 的清单。这是我的清单

class java {
 $install_path ="/opt/softwares"
 $user_home="/home/vidyayug"



  exec { "download_java":
    command => "wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u4-b20/jdk-7u4-linux-x64.tar.gz" ",

    cwd  => "$user_home/archives",
    path => [ "/usr/bin", "/bin"],
    require => Package["wget"],
    creates => "$user_home/archives/jdk-7u4-linux-x64.tar.gz",
    timeout => 60000000
}



  exec { "untar_jdk" :
    command => "tar -xvzf $user_home/archives/jdk-7u4-linux-x64.tar.gz",
    cwd =>"$install_path",
    path => ["/usr/bin","/bin"],
    require => [Package["tar"],],
    unless => "test -d ${$install_path}/jdk*"

}

}

当我 运行 Puppet 时,我遇到了以下问题:

 vidyayug@liferay:~/puppet/manifests$ sudo puppet apply site.pp --modulepath=../modules/
Warning: The use of 'import' is deprecated at /home/vidyayug/puppet/manifests/site.pp:9. See http://links.puppetlabs.com/puppet-import-deprecation
   (at /usr/lib/ruby/vendor_ruby/puppet/parser/parser_support.rb:110:in `import')
Error: Syntax error at 'Cookie'; expected '}' at /home/vidyayug/puppet/modules/java/manifests/init.pp:16 on node liferay
Error: Syntax error at 'Cookie'; expected '}' at /home/vidyayug/puppet/modules/java/manifests/init.pp:16 on node liferay
vidyayug@liferay:~/puppet/manifests$

下载 java 的命令在命令行上按预期运行,但在 Puppet 上运行不正常。以前我可以使用 Puppet 通过 apt-get 安装 java。

请帮助我解决上述问题,因为我需要安装特定版本的 JDK。

您正在嵌套双引号,因此 Puppet 认为您的命令字符串恰好在 "Cookie" 之前结束。您要么需要转义字符串中的双引号,要么用单引号替换最外面的双引号。