puppetで仮想ユーザーのSSHキーをデプロイするにはどうすればよいですか?


8

仮想ユーザーに承認済みの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" }

回答:



7

これは、前の雇用主のユーザーを管理するために1年前に書いた人形モジュールです


これはとても複雑に見えます...
SamK

3
それは私が思いついた最も簡単なものでした。私はヘルプや他のアプローチを求めどこでも、私たちはどこか他のLDAPを使用していなかったので、唯一の10ユーザーのための非答えた、その、「使用LDAPを」と言われた 3つの物理サイトをサポートしなければなりませんでした。
jtimberman

3

はい、もっと良い方法があります。これがまさに定義の目的です。「ssh_user」のような定義を作成し、そのタイプの仮想ユーザーを作成して、それらを実現します。Joshのコードは、私が話しているように、defineを使用していますが、defineの変数でパラメーター化されたssh_authorized_keyをdefineに追加することもできます。


2

このようなことを避けるために、Puppet構文の強調表示を使用することを強くお勧めします。

http://www.vim.org/scripts/script.php?script_id=2094


1
そして、Puppetのモジュールとマニフェストの開発に役立つ素晴らしいツールセットであるGeppettoを見てください。このようなエラーを通知します。
Martijn Heemels、

2
それはEclipseベースです。私はそれを「いい」とは呼びません:p
ThiefMaster
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.