SaltStack:在状态中运行PowerShell脚本

3

我正在尝试从Bitbucket下载uru并使用默认登录凭据使用vagrant进行安装。我能够下载存档文件。但每当我尝试运行脚本时,就会出现此错误-格式无效的env参数。请参阅文档。我能够成功地运行脚本,没有任何错误。我在本地使用vagrant以无主模式运行。非常感谢您提供的任何帮助。

download_uru:
  file.managed:
    - name: c:\uru-0.8.3-windows-x86.7z
    - source: https://bitbucket.org/jonforums/uru/downloads/uru-0.8.3-windows-x86.7z
    - source_hash: sha256=f2a7b4ed8ef6b02613b134da19a31293c7423e8fbbd8e49ec5c1c86c5f3a0815

install_uru:
  cmd.run:
    - source: salt://ruby/files/install_uru.ps1
    - shell: powershell
    - env: "-ExecutionPolicy bypass"
    - runas: "vagrant"
    - password: "vagrant"
    - require:
      - file: download_uru

$cat install_uru.ps1

set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"

sz x -oC: C:\uru-0.8.3-windows-x86.7z -r ;

c:\salt\salt-call.bat --version

salt-call 2016.11.3 (Carbon)

以上是关于it技术的内容。

2
可能相关:https://github.com/saltstack/salt/issues/23631 - mklement0
2个回答

3
你的问题是由于-env参数格式不正确引起的。正如官方文档所描述的那样,它必须是一个列表,而你正在设置一个字符串
修复install_uru状态,像下面的代码一样,它将会正确运行。
install_uru:
  cmd.run:
    - source: salt://ruby/install_uru.ps1
    - shell: powershell
    - env: 
      - ExecutionPolicy: "bypass"
    - runas: "vagrant"
    - password: "vagrant"
    - require:
      - file: download_uru

不客气,@user6136315。如果答案解决了您的问题,请将其标记为正确的解决方案。 - alejdg
1
从今天起,我们必须使用状态函数“cmd.script”而不是带有参数“source”的“cmd.run”(https://docs.saltstack.com/en/latest/ref/states/all/salt.states.cmd.html#salt.states.cmd.script)。 - Fabian

1

这也是有效的。

download_uru:
  file.managed:
    - name: c:\uru-0.8.3-windows-x86.7z
    - source: https://bitbucket.org/jonforums/uru/downloads/uru-0.8.3-windows-x86.7z
    - source_hash: sha256=f2a7b4ed8ef6b02613b134da19a31293c7423e8fbbd8e49ec5c1c86c5f3a0815

salt://ruby/files/install_uru.ps1:
  cmd.script:
    - shell: powershell
    - env:
      - ExecutionPolicy: "bypass"
    - cwd: C:\

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接