
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