Ansible Chocolatey神秘地失败了吗?

时间:2019-03-15 18:51:49

标签: windows azure ansible chocolatey

我正在尝试在Azure VM上运行ansible剧本,但遇到一个奇怪的问题。尝试安装任何软件(尝试过的git,sysinternals,nscp)只是无法启动。

win_chocolatey:
        name: git
        state: present  

甚至不触发安装尝试。除了尝试列出软件外,日志中没有其他内容。它只是尝试列出该软件,并抛出该软件不存在的原因(因为未安装该软件)

win_chocolatey:
        name: git
        state: absent  

在手动安装git后,工作正常。我试过使用win_chocolatey命令将使用的手动安装软件包(根据文档),并且可以正常工作。使用与剧本完全相同的用户。 (具有管理员权限)

我还尝试用become强制管理帐户(即使该帐户已经运行了admin),但没关系。

-vvvv甚至都没有显示安装尝试:

TASK [Download and install chocolatey packages] **************************************************************
task path: /usr/user/clouddrive/windows-vm/create-vm-windows.yml:162
Using module file /opt/ansible/local/lib/python2.7/site-packages/ansible/modules/windows/win_chocolatey.ps1
<my.ip.address.here> ESTABLISH WINRM CONNECTION FOR USER: AzureAdministrator on PORT 5986 TO my.ip.address.here
checking if winrm_host my.ip.address.here is an IPv6 address
EXEC (via pipeline wrapper)
failed: [my.ip.address.here] (item={u'choco_name': u'git', u'choco_state': u'present'}) => {
    "changed": false,
    "command": "C:\\ProgramData\\chocolatey\\bin\\choco.exe list --local-only --exact --limit-output git",
    "item": {
        "choco_name": "git",
        "choco_state": "present"
    },
    "msg": "Error checking installation status for the package 'git'",
    "rc": 2,
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}

我想念什么吗?文档(https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html#examples)说,即使是一些基本的东西,如:

- name: Install git
  win_chocolatey:
    name: git

应该安装该软件包(是否存在状态,我已经尝试了无状态运行,并且其他任何情况下,只有absent都有效)

1 个答案:

答案 0 :(得分:1)

增强的退出代码已添加到Chocolatey 0.10.12中,被列为重大更改。

chocolatey.org/docs/release-notes

已经对此进行了明显的更改以解决此问题(请参见github.com/chocolatey/choco/issues/1758),但现在您可以根据发行说明禁用该功能

choco feature disable --name="'useEnhancedExitCodes'"