2017-08-19 1 views
0

プログラムがインストールされているかどうかを確認するためのタイプとプロバイダを作成し、そうでない場合はmsiexecを実行します。エージェントを実行しているときの私の出力は、プログラムが 'ensure = absent'として表示されますが、msiのインストールは開始しません。誰が私のコードで何が間違っているのを見ることができますか?カスタムプロバイダはmsiexecを実行しません

Puppet::Type.newtype(:custom) do 
    @doc = "Custom type" 
    ensurable 

    newparam(:name) do 
    desc "name of program." 
    end 

    newparam(:source) do 
    desc "The full path to the file." 
    end 
end 

私のプロバイダ:人形付き

Puppet::Type.type(:custom).provide(:win) do 
    desc "." 

    def create 
    exec "msiexec.exe /i " + @resource[:source] + " /quiet" 
    end 

    def destroy 
    end 

    def exists? 
    begin 
     exec "puppet resource package " + @resource[:name] 
    rescue Puppet::ExecutionFailure => e 
     false 
    end 
    end 
end 

私のマニフェスト

class mod {  
    custom { 'AppNameHere': 
    ensure => present, 
    source => 'Q:\\app.msi', 
    } 
} 
+1

このリソースの関連デバッグ出力は何ですか? –

答えて

0

イベントビューアは、MSIは

マイカスタムタイプを実行しているインストール表示されません。 Windowsでは、tここにはシェルはありません。あなたは完全なパス(絶対パス)をすべてに提供する必要があります。

関連する問題