Я пытаюсь заставить puppet назначить авторизованные ssh-ключи для виртуальных пользователей, но получаю следующую ошибку:
err: Could not retrieve catalog: Could not parse for environment production: Syntax error at 'user'; expected '}' at /etc/puppet/modules/users/manifests/ssh_authorized_keys.pp:9
Я считаю, что моя конфигурация верна (перечислены ниже), но есть ли ошибка синтаксиса или проблема с областью действия, которую я пропускаю? Я просто хотел бы назначить пользователей на узлы, чтобы у этих пользователей автоматически были установлены ssh-ключи. Может быть, есть лучший способ сделать это, и я просто обдумываю это?
# /etc/puppet/modules/users/virtual.pp
class user::virtual {
@user { "user":
home => "/home/user",
ensure => "present",
groups => ["root","wheel"],
uid => "8001",
password => "SCRAMBLED",
comment => "User",
shell => "/bin/bash",
managehome => "true",
}
# /etc/puppet/modules/users/manifests/ssh_authorized_keys.pp
ssh_authorized_key { "user":
ensure => "present",
type => "ssh-dss",
key => "AAAAB....",
user => "user",
}
# /etc/puppet/modules/users/init.pp
import "users.pp"
import "ssh_authorized_keys.pp"
class user::ops inherits user::virtual {
realize(
User["user"],
)
}
# /etc/puppet/manifests/modules.pp
import "sudo"
import "users"
# /etc/puppet/manifests/nodes.pp
node basenode {
include sudo
}
node 'testbox' inherits basenode {
include user::ops
}
# /etc/puppet/manifests/site.pp
import "modules"
import "nodes"
# The filebucket option allows for file backups to the server
filebucket { main: server => 'puppet' }
# Set global defaults - including backing up all files to the main filebucket and adds a global path
File { backup => main }
Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }
Да, есть лучший способ, это именно то, для чего нужны определения. Вы должны создать определение под названием «ssh_user», создать виртуальных пользователей этого типа, а затем реализовать их. Код Джоша использует определение, о котором я говорю, но вы также добавили бы ssh_authorized_key в определение, параметризованное переменными из определения.
источник
Я настоятельно рекомендую использовать подсветку синтаксиса Puppet, чтобы избежать подобных вещей.
http://www.vim.org/scripts/script.php?script_id=2094
источник