Puppet 窗口代理

Puppet 窗口代理

当我尝试在我的其中一台服务器(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 上的“~” HOMEHOMEDRIVE如果USERPROFILE它找到其中一个,它会使用它们。因此,如果您找不到HOMEset,请查看其他两个变量。

这是 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

为什么我不建议以非管理员身份运行代理

我不建议以非管理员身份运行代理测试,因为已安装的服务是以管理员身份运行的 - 它将尝试从主服务器请求另一个证书并失败,因为它已经有一个(并且只允许一个)。

除非您禁用了该服务或者在安装后做了一些额外的工作来设置它,否则运行该服务的帐户是本地管理员组的成员(或在安装期间成为成员)。

您可以puppet apply以非管理员身份运行 masterless,不会出现任何问题。

更改环境变量

要更改环境变量,请转到控制面板中的系统属性,然后选择高级 -> 环境变量...,然后查看 HOME 的用户变量和系统变量(参见图片)。然后只需双击要更改的变量并进行编辑即可。

设置环境变量

相关内容