Я только начинаю работать с Puppet, и в моем тестовом файле site.pp есть следующий код:
class { 'account': {
'danny':
home_dir => '/home/danny',
groups => [ 'sudo', 'users' ],
password => 'password'
}
}
Я пытаюсь использовать учетная запись модуль из Puppet Forge. Я проверил, что модуль установлен правильно.
Ошибка при использовании приведенного выше кода:
Ошибка: не удалось получить каталог с удаленного сервера: ошибка 400 на СЕРВЕРЕ: не удалось выполнить синтаксический анализ для производственной среды: синтаксическая ошибка в '{'; ожидается '}' в /etc/puppet/manifests/site.pp:12 на узле testpuppet.domain.io Предупреждение: не используется кеш в неудачном каталоге Ошибка: не удалось получить каталог; пропуск бега
Строка 12 site.pp:
class { 'account': {
В документации приводится следующий пример:
account {
'sysadmin':
home_dir => '/opt/sysadmin',
groups => [ 'sudo', 'users' ],
ssh_key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEArfQmMkvtWRnwas3DIti9qAuSFQXKcE0kdp5f42PP8l2kTytJPPWp5T/q8PXDQ2d2X5KplMCMDiUQkchqhmDp840jsqBQ9iZPejAjv3w2kITgScFNymAcErtzX52iw4lnUyjZzomCW8G3YthQMaRm2NkI4wcVcjzq+SKyTfzrBoH21RgZlfcx+/50AFRrarpYqel9W5DuLmmShHxD8clPS532Z/1X+1jCW2KikUhdo98lxYTIgFno05lwFOS9Ry89UyBarn1Ecp1zXpIBE7dMQif3UyLUTU9zCVIoZiJj4iO5lemSSV0v8GL97qclBUVJpaCpc4ebR7bhi0nQ28RcxQ==',
comment => 'SysAdmin user',
}
все остальные модули, которые я использую, находятся внутри класса, например, модуль NTP:
class {
'::ntp':
servers => [
'0.uk.pool.ntp.org',
'1.uk.pool.ntp.org',
'2.uk.pool.ntp.org',
'3.uk.pool.ntp.org'
],
}
Каков правильный синтаксис для использования модуля учетной записи?
Вы можете называть свои классы как хотите, но вам нужно использовать правильное имя для ресурсов. В этом случае ресурс, который вы хотите использовать, user
.
Есть очень простой способ узнать, как должен выглядеть ресурс:
$ puppet resource user dawud
user { 'dawud':
ensure => 'present',
comment => 'David Sastre Medina,,,',
gid => '1001',
groups => ['sudo', 'audio', 'src', 'video', 'libvirt'],
home => '/home/dawud',
shell => '/bin/bash',
uid => '1001',
}
Этот код внутри класса будет выглядеть:
class foo {
user { 'dawud':
ensure => 'present',
comment => 'David Sastre Medina,,,',
gid => '1001',
groups => ['sudo', 'audio', 'src', 'video', 'libvirt'],
home => '/home/dawud',
shell => '/bin/bash',
uid => '1001',
}
}
В Puppetlabs есть очень хорошая документация по уровень абстракции ресурсов, Сокращенно RAL.
Я не марионеточный вундеркинд, но у тебя нет равных {
в вашем образце. У вас есть одна открытая скоба для class
и еще один для account
, но вы закрываете только скобку аккаунта.