我有 2 个 debian 机器。一个装有 puppetmaster,另一个装有 puppetd。
# puppet -V
2.7.18
在清单中我有:
group {
"tipadima":
ensure => present,
}
user {
"tipadima":
shell => $operatingsystem ? {
FreeBSD => '/usr/local/bin/zsh',
Debian => '/usr/bin/zsh',
},
comment => 'tipadima',
home => '/home/tipadima',
password => '$1$Iasdfsa33Pv$6vF/Pe.Xr.Nv0gGl.VNjx/',
groups => 'tipadima',
require => Group["tipadima"] ,
ensure => present,
}
但这会在客户端产生一个错误:
信息:应用配置版本“1359531648”错误:/Stage[main]/Tipadima_files/User[tipadima]/ensure:从不存在更改为存在失败:无法创建用户 tipadima:执行“/usr/sbin/useradd -s /usr/bin/zsh -d /home/tipadima -G tipadima -c tipadima -p $1$sdgdf$6vF/Pe.Xr.Nv0gGl.VNjx/ tipadima”返回 9:useradd:组 tipadima 存在 - 如果要将此用户添加到该组,请使用 -g。
为什么?如何解决?
答案1
您应该使用 gid 来指定主要组,groups 用于指定次要成员资格
user {
"tipadima":
shell => $operatingsystem ? {
FreeBSD => '/usr/local/bin/zsh',
Debian => '/usr/bin/zsh',
},
comment => 'tipadima',
home => '/home/tipadima',
password => '$1$Iasdfsa33Pv$6vF/Pe.Xr.Nv0gGl.VNjx/',
gid => 'tipadima',
ensure => present,
}