2016-08-26 9 views
1

私のpuppetマスターからpuppetエージェントにbashスクリプトをコピーして実行しようとしています。クラスが見つかりません例外-puppet

私は、/ etc /人形/モジュール/

[[email protected]********* mymodule]# ls -l 
total 0 
drwxr-xr-x. 2 root root 30 Aug 26 15:58 files 
drwxr-xr-x. 2 root root 20 Aug 26 16:57 manifests 

[[email protected]*********** manifests]# ls -l 
total 4 
-rw-r--r--. 1 root root 372 Aug 26 16:57 init.pp 

[[email protected]************* files]# ls -l 
total 4 
-rw-r--r--. 1 root root 151 Aug 26 15:13 my_bash_script.sh 



[[email protected]********** files]# cat my_bash_script.sh 
     #!/bin/sh 
     mv /usr/bin/node /usr/bin/bnode 
     ln -s /usr/local/bin/node /usr/bin/node 
     mv /usr/bin/npm /usr/bin/bnpm 
     ln -s /usr/local/bin/npm /usr/bin/npm 


[[email protected]********* manifests]# cat init.pp 
class mymodule::mymodule{ 

file {'/home/ec2-user/my_bash_script.sh': 
     source => 'puppet:///modules/mymodule/files/my_bash_scrip.sh', 
      mode => '755', 
      } 

    exec {'/home/ec2-user/my_bash_script.sh': 
     refreshonly => 'true', 
     require => File["/home/ec2-user/my_bash_script.sh"], 
     subscribe => File["/home/ec2-user/my_bash_script.sh"], 
     } 
    } 

でフォルダのmymoduleを作成しているし、私の/etc/puppet/manifest/site.ppに私は、モジュールで作成したクラスを呼び出しています。

[[email protected]*********** manifests]# cat site.pp 
import 'mymodule' 

node 'node1' { 
    include "mymodule" 
} 

私は以下のエラーが取得しています

「人形エージェントが-T」エージェントから実行します。

[[email protected]************8 /]# puppet agent -t 
Info: Retrieving pluginfacts 
Info: Retrieving plugin 
Info: Loading facts 
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class mymodule for ip-**********8 on node ip-**********8 
Warning: Not using cache on failed catalog 
Error: Could not retrieve catalog; skipping run 
+0

bashが含まれていない問題(例えば、人形のダウンロードやPythonスクリプトの実行など)を再現できない場合を除き、ここではおそらくタグは不適切です。 –

答えて

1

はINITマニフェストクラスの(init.pp)が定義されることが期待されます

class mymodule { 

このクラスの名前は次のとおりです。

class mymodule::mymodule { 

ので、あなたのインクルージョン:

include "mymodule" 

は、クラス名と一致します。

また、ファイルリソースに構文エラーと誤字があります。それは次のようになります。source属性パペットURIの詳細についてはExecuting bash script from puppet fails

file {'/home/ec2-user/my_bash_script.sh': 
    source => 'puppet:///modules/mymodule/my_bash_script.sh', 
    mode => '755', 
} 

ここにあなたの前の質問に対する私の答えをチェックしてください。

+0

エラー:/Stage[main]/Mymodule/File[/home/ec2-user/my_bash_script.sh]:評価できませんでした:環境生産ソースから情報を取得できませんでしたpuppet:/// modules/mymodule/files /my_bash_script.sh 通知:/Stage[main]/Mymodule/Exec[/home/ec2-user/my_bash_script.sh]:依存ファイル[/home/ec2-user/my_bash_script.sh]に失敗しました:true 警告: /Stage[main]/Mymodule/Exec[/home/ec2-user/my_bash_script.sh]:失敗した依存関係のためスキップ Notice:仕上げカタログは0.05秒で実行されます – nadish

+0

thanks matt。今私はこのエラーが発生しています。私のスクリプトに何か問題はありますか? – nadish

+0

source => 'puppet:///modules/mymodule/my_bash_script.sh'、変わっても変わったけど、今回は同じエラーが出ます。 – nadish

関連する問題