0

応答ファイルと共にインストールする必要がある Linux 製品のインストーラーを保存しました。これまでのところ、次のコードがあります。

class installpackage {
    file { 'MyInstallerFile':
            path => '/tmp/MyInstallerFile',
            ensure => present,
            owner => 'root',
            group => 'root',
            mode => '777',
            source => 'puppet:///extra_files/MyInstallerFile',
    }
    file { 'answer_file':
            path => '/tmp/answer_file',
            ensure => present,
            owner => 'root',
            group => 'root',
            mode => '777',
            source => 'puppet:///extra_file/answer_file',
    }

   exec { "install":
cwd => '/tmp',
             command => '/tmp/MyInstallerFile --answer /tmp/answer_file',
            logoutput => true,
           require => File['MyInstallerFile', 'answer_file'],
   }
}

ただし、実行しようとすると、一連のエラーが発生します。

Info: Retrieving plugin
Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
Info: Caching catalog for puppetagent.example.com
Info: Applying configuration version '1370899438'
Notice: /Stage[main]/Installpackage/Exec[install]/returns: couldn't find HOME environment variable to expand path
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     while executing
Notice: /Stage[main]/Installpackage/Exec[install]/returns: "file normalize ~"
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     (procedure "::InstallJammer::HomeDir" line 2)
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     invoked from within
Notice: /Stage[main]/Installpackage/Exec[install]/returns: "::InstallJammer::HomeDir"
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     (procedure "::InstallJammer::CommonInit" line 183)
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     invoked from within
Notice: /Stage[main]/Installpackage/Exec[install]/returns: "::InstallJammer::CommonInit"
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     (procedure "::InstallJammer::InitInstall" line 19)
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     invoked from within
Notice: /Stage[main]/Installpackage/Exec[install]/returns: "::InstallJammer::InitInstall"
Notice: /Stage[main]/Installpackage/Exec[install]/returns:     (file "/installkitvfs/main.tcl" line 71313)
Error: /tmp/MyInstallerFile --answer /tmp/answer_file returned 1 instead of one of [0]
Error: /Stage[main]/Installpackage/Exec[install]/returns: change from notrun to 0 failed: MyInstallerFile --answer /tmp/answer_file returned 1 instead of one of [0]
Notice: Finished catalog run in 5.31 seconds

私が間違っているのはどうですか?

4

4 に答える 4

0

コマンドラインで $HOME 変数を明示的に設定してみてください。

exec { "install":
    ...
    command => 'HOME=/path/to/somewhere /tmp/MyInstallerFile --answer /tmp/answer_file',
    ...
}
于 2013-06-16T12:09:43.207 に答える
0

問題はマシンのイメージ化方法にあるようで、Exec の問題を修正する 1 つの解決策は、コマンドの前に「sudo」を追加することでした。もちろん、これは Linux 環境に限定されます。

もう 1 つの解決策は、必要なインストーラーの Debian パッケージを作成することです。これにより、アンインストール ルーチンを実行するのではなく、管理と新しいバージョンのロールアウトが簡素化されます。

于 2013-08-08T15:15:59.770 に答える
0

デフォルトでは、Puppet はrootユーザーとして実行されます。

$HOME環境変数がルートによって設定されていないと思います。

テストとして、そうであるかどうかを確認するためsuroot、を実行することができecho $HOMEます。

于 2013-06-11T03:55:20.173 に答える