使用 Salt 下载文件时设置 cookie

Set cookies when downloading files with Salt

有没有办法为 file.managed 或 archive.extracted 上通过 HTTP 下载的文件设置 cookie 值。类似于

my-archive:
  archive.extracted:
    - name: /opt/
    - archive_format: tar  
    - tar_options: z
    - source: http://myserver/my-archive.tar.gz
    - source_cookies:
      - cookie1: value1
      - cookie2: value2

我的具体用例是从 oracle 下载 jdk,这需要接受要下载的许可证的 cookie?

有什么方法可以实现吗?

不,存档模块没有任何此类功能。尝试重写状态以改用 cmd.run - 这样您就可以将需要的任何参数传递给下载命令。

那将是一个很棒的选择,但目前还不可用。不过,我已经看到这样做了。这有点骇人听闻,但应该可以。

install-java:                                                                   
  cmd.run:                                                                      
    - name: |                                                                   
        cd /tmp                                                                 
        mkdir -p /usr/lib/jvm                                                   
        wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u40-b26/server-jre-8u40-linux-x64.tar.gz
        tar xzf server-jre-8u40-linux-x64.tar.gz -C /usr/lib/jvm                
        update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_40/bin/java" 1
        update-alternatives --set java /usr/lib/jvm/jdk1.8.0_40/bin/java        
    - cwd: /tmp                                                                 
    - shell: /bin/bash                                                          
    - timeout: 300                                                              
    - reload_modules: true                                                      
    - unless: test -x /usr/lib/jvm/jdk1.8.0_40 

不幸的是,在这个级别上没有办法做到这一点。

请注意,对于您提到的特定用例(下载 oracle java),有一个可用的公式:https://github.com/saltstack-formulas/sun-java-formula

您也可以 download/install UnlimitedJCEPolicy 文件。