В основном в качестве обучающего упражнения я пытаюсь использовать определения для создания пользователей. Ошибок нет, но пользователь не создается. Добавление вызовов для уведомления заставляет меня подозревать, что проблема заключается в порядке выполнения (но это также может быть моей новинкой в другом месте). Я использую Puppet 2.7.9.
Вот мой код.
# manifests/nodes.pp
node /song.*/ {
include users
User <| group == developers |>
}
# modules/users/manifests/init.pp
class users {
include users::people
}
# modules/users/manifests/people.pp
class users::people {
require groups
@users::account { "michael":
username => "michael",
name => "Michael C. Harris",
uid => 1000,
gid => "developers",
password => '{encrypted password}',
groups => [ "wheel" ],
}
}
# modules/groups/manifests/init.pp
class groups {
Group { ensure => present }
group { "wheel":
gid => 10;
}
group { "developers":
gid => 1001;
}
}
# modules/users/manifests/account.pp
define users::account($ensure=present, managehome='true', allowdupe='false', homeprefix='/home', $username, $name, $password, $uid, $gid, $groups=[], $key='', $keytype='ssh-rsa', shell='/bin/zsh') {
File { owner => $username, group => $username, mode => '0600' }
$home = "${homeprefix}/${username}"
user { $username:
ensure => $ensure,
uid => $uid,
gid => $gid,
password => $password,
comment => "$name",
groups => $groups,
shell => "$shell",
home => $home,
require => Group["$gid"],
allowdupe => $allowdupe,
managehome => $managehome;
}
file { "$home":
ensure => directory
}
if $key {
file { "$home/.ssh":
ensure => directory;
}
ssh_authorized_key { "$username":
user => $username,
require => File["$home/.ssh"],
key => $key,
type => $keytype,
ensure => present;
}
}
}
Если это проблема зависимости, как лучше всего указать зависимости? Или я еще что-то не так делаю? Также приветствуются общие отзывы.
Puppet, вероятно, даже не пытается создать пользователя, потому что вы создаете виртуальный учетная запись пользователя ресурс (где вы указываете "@"), но только пытаетесь реализовать пользователь ресурс (нет виртуальных пользователь Ресурсы).
Далее фильтр группа == разработчик ничего не совпадет, так как нет группа атрибут на любом пользователь, или учетная запись пользователя.
Попробуйте заменить Пользователь <| группа == разработчик |> с участием Пользователи :: Учетная запись <| gid == разработчик |> и посмотрите, поможет ли это.