当我尝试在我的其中一台服务器(Windows 2008 R2)上安装 Puppet 代理时,confdir 似乎默认为 u:\ 驱动器。U: 驱动器对用户来说不存在。
我还可以看到 puppet labs 目录位于C:\ProgramData\PuppetLabs\puppet\etc
当我尝试通过以下方式运行 Puppet 时:
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 服务器上成功安装了它。有什么想法吗?
答案1
您正在使用非管理员身份(或以非提升权限的 shell 中的管理员身份)运行 puppet 并且$env:HOME
(或%HOME%
在 cmd.exe 中)正在评估U:\
- 您应该将其修复到您的 HOME 目录的实际位置(通常为C:\Users\username
.
PS C:\> $env:Home
C:\Users\rob
Puppet 如何设置
如果您以管理员组成员身份运行(在提升的 shell 中),它将扩展为C:\ProgramData\PuppetLabs
,但当您在非提升的实例中运行时,它将计算为~/.puppet
。Ruby 通过查看 、 和 来转换 Windows 上的“~” HOME
。HOMEDRIVE
如果USERPROFILE
它找到其中一个,它会使用它们。因此,如果您找不到HOME
set,请查看其他两个变量。
这是 Puppet 的设置位置:
为什么我不建议以非管理员身份运行代理
我不建议以非管理员身份运行代理测试,因为已安装的服务是以管理员身份运行的 - 它将尝试从主服务器请求另一个证书并失败,因为它已经有一个(并且只允许一个)。
除非您禁用了该服务或者在安装后做了一些额外的工作来设置它,否则运行该服务的帐户是本地管理员组的成员(或在安装期间成为成员)。
您可以puppet apply
以非管理员身份运行 masterless,不会出现任何问题。
更改环境变量
要更改环境变量,请转到控制面板中的系统属性,然后选择高级 -> 环境变量...,然后查看 HOME 的用户变量和系统变量(参见图片)。然后只需双击要更改的变量并进行编辑即可。