Javaアプリケーションをデプロイする方法

Javaアプリケーションをデプロイする方法

デーモンプロセスとして実行する必要があるJavaアプリケーションを作成しました。 SysVinitを使用するAmazon Linux AMIを使用していて、デーモンにすでにinitスクリプトがあるため、ファイルをどこに保存するかは少し混乱しています。

最初、私はそのフォルダに一般的なプログラムがあると推測したので、jarそのフォルダにファイルを入れようとしました。しかし、私のプログラムは2つのライブラリを使用しているので、実際には2つのライブラリを持つ1つのファイルがあります。/usr/binjarlib

フォルダとフォルダが同じフォルダにある必要があるため、jarファイルを挿入して/usr/binからライブラリを挿入するのが心配です。また、後で他のプログラムでこれらのライブラリを更新すると、システムが複雑になる可能性があると思います。誤って一部の機能が損なわれます。 、言うまでもなく、あまりにも多くのファイルがどこにも散らばっているため、状況が面倒になり始めます。/usr/libjarlib

しかし、私は標準に固執するのが好きなので、私のプログラムのためのランダムなフォルダを作成し、そこに必要なものをすべて入れたくありません。

Linuxにこれらのシステムを展開する正しい方法はありますか?いくつかのライブラリが必要なJavaデーモンをデプロイする最善の方法は何ですか?

ベストアンサー1

JARディレクトリにファイルを置くことは/usr/binまったく良い考えではありません。これにはいくつかの理由がありますが、最初で最も重要なのはセキュリティです。ある程度アプリケーションを分離する必要があります。システム全体のソフトウェアと一緒にバイナリと不明または安全でないファイルを配置すると、攻撃面が必要以上に広がります。別々のディレクトリを作成すると、論理的な分離、セキュリティなど多くの利点があります。最近読んだ本を強くお勧めします。継続的な配信

私のアドバイス:

  • 独自のホームディレクトリを使用して、このJavaアプリケーション用の別々のユーザーとグループを作成しますapp-user
  • そこにすべての成果物を配布し、
  • このJavaアプリケーションを実行するsystemdデバイスまたはsysvデバイスを作成し、app-userホームディレクトリからライブラリをロードします。app-user

おすすめ記事