木偶窗口代理

当我尝试在我的服务器(Windows 2008 R2)上安装我的木偶代理时,confdir似乎默认为u:\ drive。 U:用户不存在驱动器。

我也可以看到puppet labs目录在C:\ProgramData\PuppetLabs\puppet\etc

当我试图通过运行木偶:

 puppet agent --test 

我仍然得到以下错误。

 Validation of File[U:/.puppet/var/log] failed: Failed to get volume information: The system cannot find the path specified. 

我已经在我的其他Windows 2008 R2服务器上成功安装了这个软件。 有任何想法吗?

您以非pipe理员身份(或作为非高级shell中的pipe理员)运行puppet,而$env:HOME (或cmd.exe中的%HOME% )正在评估U:\ – 您应该修复此问题HOME目录确实是(通常是C:\Users\username

 PS C:\> $env:Home C:\Users\rob 

Puppet是如何设置的

如果您作为Administrators组的成员(在提升的shell中)运行,它将展开到C:\ProgramData\PuppetLabs ,但是当您在非提升实例中运行时,它的计算结果为~/.puppet 。 Ruby通过查看HOMEHOMEDRIVEUSERPROFILE在Windows上转换“〜”。 如果它发现其中的一个使用它们。 所以,如果你没有findHOME设置,看看另外两个variables。

这是Puppet设置的地方:

https://github.com/puppetlabs/puppet/blob/53d71b040ea4ceb507daf80275ed75ee141bfdd4/lib/puppet/util/run_mode.rb#L79-L81

https://github.com/puppetlabs/puppet/blob/53d71b040ea4ceb507daf80275ed75ee141bfdd4/lib/puppet/util/run_mode.rb#L51-L53

为什么我build议不要以非pipe理员身份运行代理

我不build议以非pipe理员身份运行代理程序testing,因为已安装的服务以pipe理员身份运行 – 它将尝试从主服务器请求另一个证书,因为它已经有一个(只允许一个)而失败。

除非您的服务被禁用,或者您在安装之后做了一些额外的工作来设置它,否则它所运行的帐户是本地Administrators组的成员(或者在安装过程中成为一个成员)。

你可以运行无pipe理员作为非pipe理员puppet apply ,没有问题。

更改环境variables

要更改环境variables,请转到“控制”面板中的“系统属性”中的高级 – >环境variables…并查看用户和系统variables的HOME(请参阅图像)。 然后只需双击你想改变和编辑它。

设置环境变量