使用Puppet

时间:2017-01-06 13:35:18

标签: registry puppet windows-server-2008-r2 puppet-enterprise

我正在使用Puppet模块windows_disable_ipv6,但它似乎并没有真正起作用。

# cat /etc/puppetlabs/code/environments/production/manifests/site.pp
node my_instance.net {
        include windows_disable_ipv6
}

# cat /etc/puppetlabs/code/environments/production/hieradata/common.yaml
---
windows_disable_ipv6::ipv6_disable: true
windows_disable_ipv6::ipv6_reboot: true

# cat /etc/puppetlabs/puppet/hiera.yaml
---
:backends:
  - yaml
:hierarchy:
  - "nodes/%{::trusted.certname}"
  - common

:yaml:
Windows
  :datadir:

我检查了模块的清单。如果必须禁用IPv6,它会将注册表设置更改为'0xFFFFFFFF'

当我在代理上运行puppet agent -t时,我确实看到密钥更改为上面的值并且系统重新启动但是当我在重新启动后再次登录时,我看到仍然启用了IPv6的复选框

enter image description here

This链接建议使用'0xff'代替'0xFFFFFFFF'。我尝试更改该值,然后重新启动服务器,但问题仍然存在。

任何指针?

2 个答案:

答案 0 :(得分:3)

puppet模块在系统上禁用IPv6,该系统通过系统上的ipconfig / all验证。该复选框仅处理与接口的绑定,并不实际禁用系统上的IPv6。

答案 1 :(得分:2)

tl; dr - 我想知道你是否遇到https://tickets.puppetlabs.com/browse/MODULES-3195,虽然我认为你会看到错误而不是成功。也许其他东西正在强制执行设置,如SCCM / GPO。

详细

查看https://github.com/martezr/puppet-windows_disable_ipv6/blob/master/manifests/init.pp#L45-L49处的模块:

# Modify the IPv6 registry key
registry::value { 'ipv6':
  key   => 'HKLM\System\CurrentControlSet\Services\Tcpip6\Parameters',
  value => 'DisabledComponents',
  type  => 'dword',
  data  => $ipv6_setting,
}

这在大多数情况下都很好。

让我们尝试一些调试步骤

所以你说这个成功适用,当你检查时,它已经应用了这个改变。但是,重新启动后,设置又恢复原状。

这表示您还有其他内容,例如GPO(组策略)强制执行其自身的冲突设置。让我们把Puppet从画面中拿出一分钟:

  • 关闭Puppet并使启动类型为Manual(Windows + R,键入services.msc,按Enter键,找到Puppet Agent服务并右键单击,属性)
  • 转到网络连接并进行更改以手动禁用IPv6。关闭它。
  • 再次打开适配器属性并检查以确保它仍处于禁用状态。
  • 重新启动系统。
  • 检查更改是否仍然存在或是否已更改。
  • 请务必再次将Puppet服务启动类型设置为Automatic(并重新打开)。

如果更改没有持续重新启动,则表明还有其他操作正在执行该设置。如果更改持续重启,则表明Puppet尝试应用更改可能存在问题。

这意味着需要进行更多调试以确保模块尝试更改正确的位置,并且它适用于您尝试进行更改的Windows Server。可能需要更多的研究来确定您如何以编程方式在Windows 2008 R2上禁用IPv6,以查看是否需要调整或替换应该执行此操作的模块。