1

LXD コンテナー内でアプリケーションをスクリプト化/自動デプロイするにはどうすればよいですか?

たとえば、LXD コンテナーにアプリケーションをデプロイして bash スクリプト (アプリケーションをデプロイする) を使用する最良の方法は? ホスト上でコマンドを実行して、コンテナ内でこの bash スクリプトを実行するにはどうすればよいですか?

Docker レシピと同様の方法でこれを行うツール/方法はありますか?

4

2 に答える 2

0

bitbucket devops_lxd_containersで私のオープン ソース プロジェクトを見てみましょう。

  • Apache、Tomcat、haproxy を含む lxd イメージ テンプレートを構築するためのスクリプト。
  • Apache ホスティング、キー/値コンテンツ、ルーターとして構成された haproxy などのカスタム アプリケーション イメージのビルドを示すスクリプト。
  • コンテナーを起動し、ポートをマップして、より大きなネットワークにアクセスできるようにするコード
  • uri プレフィックス ルーティングに基づいてボックスとコンテナー間で http 要求をルーティングするレイヤー 7 プロキシとして haproxy を構成するコード。以前にデプロイされ、ポートがマップされた場所に基づいています。
  • より高いレベルでは、データ ドライブの仕様を受け入れ、多くのホストにまたがる多くのコンテナーで構成される環境全体を展開し、レイヤー 7 プロキシを介してまとまりのある全体として機能するようにそれらすべてを接続します。
  • 自動化する前に、コード スニペットを使用して主要な各ステップをどのように達成したかを示す広範なドキュメント。
  • 新しいレイヤーで新しい接続を受け入れながら、古い接続を適切に切り離すレイヤー 7 機能を使用して、停止のないアップグレードをサポートするコード。

システム全体は、イメージの構築はレイヤーで行うのが最適であるという前提に基づいて構築されています。更新された Ubuntu イメージをビルドします。そこから、強化された Ubuntu イメージを構築します。そこから、基本的な Apache イメージを構築します。そこから、apacheKV サンプルのようなアプリケーション固有のイメージを構築します。目標は、再構築を 2 回以上行わず、basicJDK などの共通機能をすべての JDK 依存イメージのソースとして再利用することです。これにより、任意の場所でコードが重複することを回避できます。イメージまたはテンプレートの作成を、展開およびポート マッピングから完全に分離するように努めてきました。例外は、他のイメージがどのようにマッピングされるかをすべて把握するまで、レイヤー 7 ルーティング イメージの作成を完了できなかったことです。

于 2018-12-02T13:55:52.080 に答える