npm install が puppet 上で正しく実行されない

npm install が puppet 上で正しく実行されない

Puppet を使用してアプリケーションをセットアップするときに、npm install を実行すると問題が発生します。

私は Puppet を使用して、数週間後にライブで使用する予定の node.js アプリケーションをセットアップしています。このアプリケーションには、依存関係として sqlite3 があります。私が遭遇した問題は、'npm install" を実行するときに、sqlite3 依存関係をソースからコンパイルして適切に実行する必要があることです。ただし、正しいコマンドは次のとおりです。

npm install --build-from-source=sqlite3

Puppet の exec コマンドを使用しても正しく実行されません。以下に私の Puppet コードを示します。

exec { 'npm install --build-from-source=sqlite3' :
    cwd => '/var/video_server',
    user => 'root',
    path => '/usr/local/node/node-default/bin'
}

Puppet を使用して sqlite3 を適切にコンパイルするにはどうすればよいでしょうか? このアプリケーションをセットアップするすべてのサーバーで npm install を手動で実行する必要はありません。

答え1

PATH が十分に設定されていないようです。
ソースからモジュールをビルドする場合、npm は PATH 上にある複数のコマンドを実行する必要があります。
次のことを試してください:

exec { 'npm install --build-from-source=sqlite3' :
    cwd => '/var/video_server',
    user => 'root',
    path => ['/usr/local/node/node-default/bin', '/bin', '/usr/bin']
}

これがお役に立てば幸いです。

動作を確認するには、次のコマンドを root として実行してみてください/var/video_server:

PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3

関連情報