Puppet 不支持 'require' 个模块
Puppet does not honor 'require' modules
我创建了一个模块来添加用户,如下所示:
user { 'test':
ensure => 'present',
comment => 'Test User',
home => '/home/test',
shell => '/bin/bash',
managehome => 'true',
gid => 'postgres',
groups => 'users',
password => '$PIp.c9J6$gdAyd76OhBk7n9asda80wm0',
require => [ Package['rubygem-ruby-shadow'], Class['postgres'] ],
}
它需要 class postgres,因为我需要将其主要组分配给 postgres,并且 rubygem-ruby-shadow 依赖项用于密码设置。
我的问题是 puppet 不满足这些要求。 Puppet 总是会在 rubygem-ruby-shadow 之前先执行 useradd 模块,这会导致密码设置失败。我还尝试将 rubygem-ruby-shadow 包含在与 useradd 相同的 class 中,但无济于事。
running puppet agent -t
时的输出:
linux-z14x:~ # puppet agent -t
info: Caching catalog for linux-z14x.playground.local
info: /User[test]: Provider useradd does not support features manages_passwords; not managing attribute password
info: Applying configuration version '1425978163'
notice: /Stage[main]/Users/Package[rubygem-ruby-shadow]/ensure: created
notice: /User[test]/ensure: created
notice: Finished catalog run in 78.19 seconds
运行第二次:
linux-z14x:~ # puppet agent -t
info: Caching catalog for linux-z14x.playground.local
info: Applying configuration version '1425978163'
notice: /Stage[main]/Users/User[test]/password: changed password
notice: Finished catalog run in 74.79 seconds
我的rubygem-ruby-阴影class:
package { 'rubygem-ruby-shadow':
ensure => 'installed',
require => Class['myrepo'],
provider => 'zypper',
}
如何在 useradd 之前先将 rubygem-ruby-shadow 模块添加到 运行?
Puppet master 版本是 3.7.4-1(在 CentOS 上),Puppet 客户端是 2.6.12-0.10.1(在 SLES 11 SP2 上)。
谢谢。
这很不幸。提供者在代理初始化期间检测到 ruby-shadow
缺失,并且在事务期间不更新其功能。
这可能是 Puppet 的限制,可能会在较新的版本中修复(您使用的是什么?)
我确实尝试并确保随处提供 ruby-shadow
以及 Puppet 本身,以避免这个问题。
我创建了一个模块来添加用户,如下所示:
user { 'test':
ensure => 'present',
comment => 'Test User',
home => '/home/test',
shell => '/bin/bash',
managehome => 'true',
gid => 'postgres',
groups => 'users',
password => '$PIp.c9J6$gdAyd76OhBk7n9asda80wm0',
require => [ Package['rubygem-ruby-shadow'], Class['postgres'] ],
}
它需要 class postgres,因为我需要将其主要组分配给 postgres,并且 rubygem-ruby-shadow 依赖项用于密码设置。
我的问题是 puppet 不满足这些要求。 Puppet 总是会在 rubygem-ruby-shadow 之前先执行 useradd 模块,这会导致密码设置失败。我还尝试将 rubygem-ruby-shadow 包含在与 useradd 相同的 class 中,但无济于事。
running puppet agent -t
时的输出:
linux-z14x:~ # puppet agent -t
info: Caching catalog for linux-z14x.playground.local
info: /User[test]: Provider useradd does not support features manages_passwords; not managing attribute password
info: Applying configuration version '1425978163'
notice: /Stage[main]/Users/Package[rubygem-ruby-shadow]/ensure: created
notice: /User[test]/ensure: created
notice: Finished catalog run in 78.19 seconds
运行第二次:
linux-z14x:~ # puppet agent -t
info: Caching catalog for linux-z14x.playground.local
info: Applying configuration version '1425978163'
notice: /Stage[main]/Users/User[test]/password: changed password
notice: Finished catalog run in 74.79 seconds
我的rubygem-ruby-阴影class:
package { 'rubygem-ruby-shadow':
ensure => 'installed',
require => Class['myrepo'],
provider => 'zypper',
}
如何在 useradd 之前先将 rubygem-ruby-shadow 模块添加到 运行?
Puppet master 版本是 3.7.4-1(在 CentOS 上),Puppet 客户端是 2.6.12-0.10.1(在 SLES 11 SP2 上)。
谢谢。
这很不幸。提供者在代理初始化期间检测到 ruby-shadow
缺失,并且在事务期间不更新其功能。
这可能是 Puppet 的限制,可能会在较新的版本中修复(您使用的是什么?)
我确实尝试并确保随处提供 ruby-shadow
以及 Puppet 本身,以避免这个问题。