web-dev-qa-db-ja.com

パペット:「無効なリソースタイプfile_line」を修正する方法?

新しくインストールされたPuppetサーバーで、モジュールが1つと管理対象クライアントが1つだけ構成されています。

これはMOTDモジュールであり、次のようになります。

class motd {
    file { "/etc/custom_motd.sh":
    path    => '/etc/custom_motd.sh',
    ensure  => present,
    owner   => "root",
    group   => "root",
    mode    => "775",
    content => template('motd/custom_motd.sh.erb'),
    #require => Class['nagios_client'],
    }

#    file_line { 'enable motd':
#    ensure  => present,
#    line    => '/etc/custom_motd.sh',
#    path    => '/etc/profile',
#    require  => File['/etc/custom_motd.sh']
#    }
}

クライアントでpuppet agent -tを実行すると、適切な結果が得られます。

[root@pnd01 ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for pnd01.company.com
Info: Applying configuration version '1426413575'
Notice: /Stage[main]/Motd/File[/etc/custom_motd.sh]/ensure: created
Notice: Finished catalog run in 0.24 seconds
[root@pnd01 ~]#

しかし、モジュールのinit.ppファイルの「ファイル行」セクションのコメントを解除してから、クライアントでpuppet agent -tを実行すると、次の応答が返されます。

[root@pnd01 ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type file_line at /etc/puppet/environments/production/modules/motd/manifests/init.pp:17 on node pnd01.company.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
[root@pnd01 ~]#

17行目は「file_line」宣言を指しています。別のPuppet環境にまったく同じモジュールがあり、チャームのように機能します。私はそれをグーグルで調べて、追加することを勧める投稿を見つけました:

pluginsync = true

クライアントマシンの[main]/etc/puppet/puppet.confセクションに移動しましたが、同じエラーが発生します。

この問題を修正する方法や、なぜそれが発生するのかについてのアイデアはありますか?

1
Itai Ganot

標準ライブラリ をインストールする必要があるでしょう。他のインストールでは、これはあなたがインストールした他のモジュールに引っ張られているかもしれません。

その後、include stdlibで使用します。

4
Sven