Bagaimana saya bisa memiliki kunci ssh menyebarkan boneka untuk pengguna virtual?


8

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" }

Jawaban:


15

Anda melewatkan penjepit penutup di akhir virtual.pp.


7

Berikut adalah modul boneka yang saya tulis setahun yang lalu untuk mengelola pengguna untuk majikan sebelumnya.


Ini terlihat sangat rumit ...
SamK

3
Itu adalah hal paling sederhana yang saya lakukan ketika berhasil. Di mana-mana saya meminta bantuan atau pendekatan lain, saya diberi tahu "gunakan LDAP", yang bukan jawaban untuk hanya 10 pengguna, karena kami tidak menggunakan LDAP di tempat lain, dan harus mendukung 3 situs fisik.
jtimberman

3

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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.