Saya mencoba membuat boneka untuk menetapkan kunci ssh resmi untuk pengguna virtual, tetapi saya terus mendapatkan kesalahan berikut:
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
Saya percaya konfigurasi saya sudah benar (tercantum di bawah) tetapi apakah ada kesalahan sintaksis atau masalah pelingkupan yang saya lewatkan? Saya hanya ingin menetapkan pengguna ke node dan memiliki pengguna tersebut secara otomatis menginstal kunci ssh mereka. Apakah mungkin ada cara yang lebih baik untuk melakukan ini dan saya hanya terlalu memikirkannya?
# /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" }
Ya ada cara yang lebih baik, inilah definisi untuk apa. Anda akan membuat definisi yang disebut sesuatu seperti "ssh_user", membuat pengguna virtual dari jenis itu, kemudian mewujudkannya. Kode Josh menggunakan mendefinisikan seperti yang saya bicarakan, tetapi Anda juga akan menambahkan ssh_authorized_key dalam define, parameter dengan variabel dari define.
sumber
Saya sangat merekomendasikan menggunakan sintaks Puppet highlighting untuk menghindari hal semacam ini.
http://www.vim.org/scripts/script.php?script_id=2094
sumber