我在 Windows Server 2008 R2 上使用 Ansible 安装 Chocolatey 和 Chocolatey 包时遇到问题。在 Windows Server 2012 R2 上一切正常(它内置了 PowerShell v3.0)。
我在 Ansible documentation 中运行 PowerShell 脚本时遇到问题,但我运行了 Set-ExecutionPolicy RemoteSigned
,这有所帮助。我安装了 Windows PowerShell 3.0,以便 Ansible 可以运行。现在,当我运行剧本时,出现以下错误:
failed: [192.168.1.1] => {"failed": true, "parsed": false}
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/16/2015 6:16 AM chocInstall
Downloading https://chocolatey.org/api/v2/package/chocolatey/ to C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip
Download 7Zip commandline tool
Downloading https://chocolatey.org/7za.exe to C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall\7za.exe
Extracting C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall...
Installing chocolatey on this machine
{
"changed": false,
"msg": "The term \u0027C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\chocolatey\\chocInstall\\tools\>\chocolateyInstall.ps1\u0027 is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.",
"failed": true
}
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip
Extracting _rels\.rels
Extracting chocolatey.nuspec
Extracting tools\chocolateyInstall.ps1
Extracting tools\chocolateysetup.psm1
Extracting tools\init.ps1
Extracting tools\chocolateyInstall\choco.exe
Extracting tools\chocolateyInstall\choco.exe.ignore
Extracting package\services\metadata\core-properties\61804721eec44e8592a61904d0a62022.psmdcp
Extracting [Content_Types].xml
Everything is Ok
Files: 9
Size: 3738621
Compressed: 1259522
FATAL: all hosts have already failed -- aborting
第二次运行后,我遇到了不同的错误:
failed: [192.168.1.1] => {"changed": false, "failed": true}
msg: The specified module 'C:\Users\Administrator\AppData\Local\Temp\chocolatey\chocInstall\tools\chocolateyInstall\helpers\chocolateyInstaller.psm1' was not loaded because no valid module file was found in any module directory.
FATAL: all hosts have already failed -- aborting
我注意到 Ansible 将 Chocolatey 从 %TEMP%
解包到 %PROGRAMDATA%
时出现问题。因此,从 %TEMP%\chocolatey\helpers
运行 chocolateyInstall.ps1
(我认为这是很好的路径)后,我遇到了以下错误:
failed: [192.168.1.1] => {"changed": false, "choco_error_cmd": "choco.exe list --local-only chocolatey", "choco_error_log": "",
"failed": true} msg: Error checking installation status for chocolatey
FATAL: all hosts have already failed -- aborting
我需要自动化安装和配置工具,例如:jdk、tomcat、firefox等。这是我的playbook的示例:
---
- hosts: windows
vars:
java:
JAVA_HOME: "C:\\Program Files\\Java\\jdk1.7.0_76"
tasks:
# INSTALL FIREFOX
- name: install_firefox
win_chocolatey:
name: firefox -y
state: present
# INSTALL AND SET JAVA_HOME
- name: install_and_set_java_home
win_chocolatey:
name: jdk7 -y
version: 7.0.76
environment: java
state: present
最佳答案
我想我找到了解决方案..报告的问题与编码有关 Ansible 默认使用编码和语言: ansible.cfg
...
module_lang = C
...
但您可以覆盖它以将特定变量托管为
ansible_module_lang=cp1252
ansible_ssh_port=5986
ansible_connection=winrm
这将解决您的问题
关于powershell - 在 Windows 上通过 Ansible 安装 Chocolatey 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869780/