Packer.io - 在代理后面安装chocolatey

时间:2016-07-07 15:09:06

标签: windows powershell proxy packer

我尝试使用packer.io和powershell脚本安装chocolatey。

我有两个脚本,一个用于代理配置,另一个用于巧克力安装。 第一个代理脚本:

$ErrorActionPreference = "Stop"
# set global proxy
$reg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-ItemProperty -Path $reg -Name ProxyServer -Value "http://mycompoany.proxy:1234"
Set-ItemProperty -Path $reg -Name ProxyEnable -Value 1

安装chocolatey的第二个脚本:

$ErrorActionPreference = "Stop"
$reg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

$settings = Get-ItemProperty -Path $reg
$settings.ProxyServer
$settings.ProxyEnable

iex ((new-object net.webclient).DownloadString('http://chocolatey.org/install.ps1'))

我在packer和第一个脚本传递中使用powershell运行此脚本,第二个脚本没有。我收到错误消息:

^[[0;32m    windows-2012-R2-standard: Exception calling "DownloadString" with "1" argument(s): "Unable to connect to^[[0m
^[[0;32m    windows-2012-R2-standard: the remote server"^[[0m
^[[0;32m    windows-2012-R2-standard: At C:\Windows\Temp\script.ps1:19 char:1^[[0m
^[[0;32m    windows-2012-R2-standard: + iex ($wc.DownloadString('https://chocolatey.org/install.ps1'))^[[0m
^[[0;32m    windows-2012-R2-standard: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^[[0m
^[[0;32m    windows-2012-R2-standard: + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordE^[[0m
^[[0;32m    windows-2012-R2-standard: xception^[[0m
^[[0;32m    windows-2012-R2-standard: + FullyQualifiedErrorId : WebException^[[0m
^[[0;32m    windows-2012-R2-standard:^[[0m
^[[1;32m==> windows-2012-R2-standard: Deleting output directory...^[[0m

当然$ settings.ProxyServer返回正确的代理地址并启用代理。 当我只运行第一个脚本和由packer创建的启动机器时,我可以手动安装chocolatey而无需任何修改,并使用IE浏览互联网。如果我没有运行第一个脚本(设置procxy),我不会因为代理而安装任何东西。我也无法打开任何网页。结果我假设我的代理脚本有效。

我没有使用用户并通过我的代理。

我的Windows系统是Windows 2012服务器R2。 Packer版本0.10.1

我尝试在webclient powershell对象中直接设置代理,但这也不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

你可以用它。为我工作。 https://github.com/chocolatey/choco/wiki/Proxy-Settings-for-Chocolatey

显式代理设置

Chocolatey具有明确的代理支持,从0.9.9.9开始。

您可以简单地配置1或3个设置,而Chocolatey将使用代理服务器。代理是必需的,是代理服务器的位置和端口。 proxyUser和proxyPassword是可选的。用户/密码的值仅在两者都存在时用于凭证。

choco config set proxy <locationandport>
choco config set proxyUser <username>
choco config set proxyPassword <passwordThatGetsEncryptedInFile>

示例

在0.9.9.9中运行以下命令:

choco config set proxy http://localhost:8888
choco config set proxyUser bob
choco config set proxyPassword 123Sup#rSecur3

答案 1 :(得分:0)

不幸的是,我无法在Power Shell中设置代理。如果没有重新启动,则无法正常运行IE [sic!]。

我在Autounattend.xml文件中设置了代理,此解决方案正常运行。

答案 2 :(得分:-1)

两个在Windows上安装Chocolatey的命令

先决条件:在管理员模式下启动cmd

1)扩展cmd:@“%SystemRoot%\ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command“ iex((New-Object System.Net.WebClient) .DownloadString('https://chocolatey.org/install.ps1'))“ &&设置” PATH =%PATH%;%ALLUSERSPROFILE%\ chocolatey \ bin“

2)运行cmd:choco安装Chocolateygui