使用 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 文件。
有没有办法为 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 文件。