Làm cách nào tôi có thể có các khóa ssh triển khai cho người dùng ảo?


8

Tôi đang cố gắng để con rối gán các khóa ssh được ủy quyền cho người dùng ảo nhưng tôi vẫn nhận được lỗi sau:

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

Tôi tin rằng cấu hình của tôi là chính xác (được liệt kê bên dưới) nhưng có lỗi cú pháp hoặc vấn đề phạm vi tôi đang thiếu? Tôi chỉ đơn giản muốn gán người dùng cho các nút và để những người dùng đó tự động cài đặt khóa ssh của họ. Có lẽ có một cách tốt hơn để làm điều này và tôi chỉ đang xem xét nó?

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

Câu trả lời:


15

Bạn đang thiếu một cú đúp kết thúc vào cuối virtual.pp.


7

Đây là một mô-đun con rối tôi đã viết một năm trước để quản lý người dùng cho một chủ nhân trước đó.


Điều này có vẻ phức tạp ...
SamK

3
Đó là điều đơn giản nhất mà tôi nghĩ ra. Ở mọi nơi tôi đã yêu cầu trợ giúp hoặc các cách tiếp cận khác tôi được thông báo "sử dụng LDAP", đây là câu trả lời không dành cho 10 người dùng, vì chúng tôi không sử dụng LDAP ở bất kỳ nơi nào khác phải hỗ trợ 3 trang web vật lý.
jtimberman

3

Vâng, có một cách tốt hơn, đây chính xác là những định nghĩa dành cho. Bạn sẽ tạo một định nghĩa gọi là "ssh_user", tạo người dùng ảo loại đó, sau đó nhận ra chúng. Mã của Josh sử dụng một định nghĩa như tôi đang nói, nhưng bạn cũng sẽ thêm ssh_ trái_key trong định nghĩa, được tham số hóa với các biến từ định nghĩa.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.