Puppetを使い始めたばかりで、テスト用のsite.ppファイルに次のコードが含まれています。
class { 'account': {
'danny':
home_dir => '/home/danny',
groups => [ 'Sudo', 'users' ],
password => 'password'
}
}
Puppet Forgeの account モジュールを使用しようとしています。モジュールが正しくインストールされていることを確認しました。
上記のコードを使用した場合のエラーは次のとおりです。
エラー:リモートサーバーからカタログを取得できませんでした:サーバーでエラー400:環境のプロダクションを解析できませんでした: '{'で構文エラー。ノードtestpuppet.domain.ioの/etc/puppet/manifests/site.pp:12で '}'が必要です警告:失敗したカタログでキャッシュを使用していませんエラー:カタログを取得できませんでした。スキップラン
Site.ppの12行目は次のとおりです。
class { 'account': {
ドキュメントには、次の例が示されています。
account {
'sysadmin':
home_dir => '/opt/sysadmin',
groups => [ 'Sudo', 'users' ],
ssh_key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEArfQmMkvtWRnwas3DIti9qAuSFQXKcE0kdp5f42PP8l2kTytJPPWp5T/q8PXDQ2d2X5KplMCMDiUQkchqhmDp840jsqBQ9iZPejAjv3w2kITgScFNymAcErtzX52iw4lnUyjZzomCW8G3YthQMaRm2NkI4wcVcjzq+SKyTfzrBoH21RgZlfcx+/50AFRrarpYqel9W5DuLmmShHxD8clPS532Z/1X+1jCW2KikUhdo98lxYTIgFno05lwFOS9Ry89UyBarn1Ecp1zXpIBE7dMQif3UyLUTU9zCVIoZiJj4iO5lemSSV0v8GL97qclBUVJpaCpc4ebR7bhi0nQ28RcxQ==',
comment => 'SysAdmin user',
}
私が使用している他のすべてのモジュールは、NTP module:
class {
'::ntp':
servers => [
'0.uk.pool.ntp.org',
'1.uk.pool.ntp.org',
'2.uk.pool.ntp.org',
'3.uk.pool.ntp.org'
],
}
アカウントモジュールを使用するための正しい構文は何ですか?
クラスには任意の名前を付けることができますが、リソースには正しい名前を使用する必要があります。この場合、使用したいリソースはuser
です。
リソースがどのように見えるかを知る非常に簡単な方法があります:
$ puppet resource user dawud
user { 'dawud':
ensure => 'present',
comment => 'David Sastre Medina,,,',
gid => '1001',
groups => ['Sudo', 'audio', 'src', 'video', 'libvirt'],
home => '/home/dawud',
Shell => '/bin/bash',
uid => '1001',
}
そのコードは、クラス内では次のようになります。
class foo {
user { 'dawud':
ensure => 'present',
comment => 'David Sastre Medina,,,',
gid => '1001',
groups => ['Sudo', 'audio', 'src', 'video', 'libvirt'],
home => '/home/dawud',
Shell => '/bin/bash',
uid => '1001',
}
}
Puppetlabsは resource abstraction layer 、略してRALに関する非常に優れたドキュメントを持っています。
私は人形使いではありませんが、あなたは比類のない{
をサンプルに含めます。 class
に1つの開き中かっこがあり、account
にもう1つの中かっこがありますが、アカウントの中かっこを閉じることはできません。