我有一个 Win (Server 2012 R2) 代理盒,上面安装了 Active Directory。我现在正尝试在其中创建 OU。
[root@myhost] cat create_organizational_unit.pp
class infra::ad::create_organizational_unit (
$ou_data = $infra::params::ou_data,
) inherits infra::params {
each($ou_data) |$ou_name, $ou_dc_path| {
windows_ad::organisationalunit { "$ou_name":
ensure => present,
path => $ou_dc_path,
ouName => $ou_name,
}
}
}
[root@myhost] cat params.pp
$ou_data = {
'Support' => 'DC=TEST,DC=COM',
'DBA' => 'DC=TEST,DC=COM',
'SFTP' => 'DC=TEST,DC=COM',
'PROD' => 'OU=SFTP,DC=TEST,DC=COM',
'Users' => 'OU=PROD,OU=SFTP,DC=TEST,DC=COM',
'Groups' => 'OU=PROD,OU=SFTP,DC=TEST,DC=COM',
},
我现在面临的问题是,当我通过在代理上运行应用目录时puppet agent -t
,我看到任何一个以下行为:
1)我必须多次运行上述命令,因为它不能一次性应用目录。
2)无论我运行上述命令多少次,它都不会应用完整的目录。
为什么会这样?这不是我第一次看到这种情况。虽然不常见,但有时确实会发生。
更新:在调试模式下运行也没有提供任何有用的信息。尝试运行 powershell 脚本来创建相同的 OU 层次结构,它工作得很好。我正在使用windows_ad模块。我发现这个模块没有积极的开发。所以想尝试一下维纳德它处于活动状态,但是当尝试获取目录时,我收到以下错误:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: {"message":"Server Error: Evaluation Error: Error while eval
uating a Resource Statement, Could not autoload puppet/type/winad_ou: no such file to load -- puppet/util/validator at /etc/puppetlabs/
code/environments/automation/modules/infra/manifests/ad/create_organizational_unit.pp:5:9 on node abc.temp.com","issue_kind":"RUN
TIME_ERROR"}
Warning: Not using cache on failed catalog
Puppet代理版本:
C:\>puppet --version
4.5.2