4

Web アプリを別の Linux サーバーにデプロイするために apt パッケージを使用したい場合、どのような手順を踏む必要がありますか? PHP/MySQL アプリケーションから始めて、次のようなパッケージとしてインストールできるようにしたいと考えています。

apt-get update
apt-get install mywebapp-package

どこかにリポジトリをセットアップしてパッケージを追加する必要があると思いますが、これはどのように機能するのでしょうか? パッケージ自体を作成する方法は? サーバーが私のリポジトリを見つけられるようにするには、どうすればよいですか? いくつかのグーグル検索では、紛らわしい情報しか見つかりませんでした。おそらく、間違った流行語を探しているのでしょう。どんな助けでも大歓迎です!

4

2 に答える 2

3

apt-package を作成する方法は次のとおりです https://askubuntu.com/questions/27715/create-a-deb-package-from-scripts-or-binaries

それは本当に簡単です...アプリフォルダー内にdebianサブフォルダーがあります... ./debian/installファイルには、ファイルの最終的な場所への非常に簡単なマップが含まれています

# debian/install must contain the list of scripts to install 
# as well as the target directory
echo myscript.sh usr/bin > debian/install 

メイクファイルを使用して、インストールおよびインストール後のタスクを作成できます。以前に make を使用して ac/c++ プログラムをコンパイルしたことがない場合... 基本的に app フォルダーで「./configure」を実行し、次に「make」または「make install」を実行してプログラムをコンパイル/アンパッケージします... dh_make にはわずかに異なるプロセスといくつかのデフォルトですが、かなり似たワークフローです...以下は、GNU Make Referenceからの非常に単純な makefile です。

objects = main.o kbd.o command.o display.o \
               insert.o search.o files.o utils.o

     edit : $(objects)
             cc -o edit $(objects)
     main.o : main.c defs.h
             cc -c main.c
     kbd.o : kbd.c defs.h command.h
             cc -c kbd.c
     command.o : command.c defs.h command.h
             cc -c command.c
     display.o : display.c defs.h buffer.h
             cc -c display.c
     insert.o : insert.c defs.h buffer.h
             cc -c insert.c
     search.o : search.c defs.h buffer.h
             cc -c search.c
     files.o : files.c defs.h buffer.h command.h
             cc -c files.c
     utils.o : utils.c defs.h
             cc -c utils.c
     clean :
             rm edit $(objects)

基本的に、デフォルトの「make」タスクはプログラム編集をコンパイルします...そして依存関係はこの構造体のファイル名から自動的に検出されます

Web アプリケーションの場合、Github http://build.shr-project.org/Makefileからのプルを含む OSS プロジェクトのメイクファイルを次に示します。

基本的に、プロジェクトで作業し、すべてのインストール タスクを makefile に入れ、「make」デフォルト タスクでアプリをアンパッケージし、apache / nginx vhost をインストールし、完了したら関連するサーバーを再起動 / リロードする場合 ... aptはそれを処理するための完全に実行可能な方法です...何百ものシステムで同時にaptパッケージを管理するためのプログラムがたくさんあります... https://serverfault.com/questions/79093/managing-upgrades-on-hundreds -debian-servers の

Canonical/Ubuntu のLandscapeは、この種の作業に最適なツールです...以前に約 20 台のサーバーのプラットフォームで使用したことがあります...独自のアップストリーム リポジトリの設定やキーの署名など​​の詳細についてはよくわかりません。 apt はパッケージを完全に管理できますが、dpkg の準備が整ったら、かなり簡単だと思います。

Debconf / apt は、多くの種類のアプリに非常に適したユースケースを提供します...ただし、それが継続的に展開されているアプリであり、アップグレードを継続する必要がある場合 (私にとっての経験則は、アップグレードを週に 1 回以上行う場合です)または 5x 月) ...それなら、継続的な展開ツールを使用した方が良いかもしれません... Capistrano と Fabric の両方が優れています (Cap を使用し、多段階の拡張機能を備えています ... 素晴らしいです、Fabric 素晴らしいことしか聞いたことがありません) ) ...しかし、私はまだ何百もの Debian サーバーで Cap を信頼していません...それは本当にプロジェクトの規模に関するものです...上記の 10 またはおそらく 20 サーバーの上限は、展開を実際に管理するには遅すぎて重荷ですそうですね(私見、明らかに誰でも何でもできますが、私はこれを十分に研究していません。しかし、Ruby Rake や Capistrano などはどちらも Gnu Make や debconf に比べて非常に遅く、信頼性が低く、特に一般的な環境では)

具体的には、一般的なサーバーの自動化に関しては、 PuppetChefを確認することをお勧めします。どちらも非常に実行可能なツールです。どちらも使用されていませんが、すべての管理スクリプトは Ruby で作成されており、Chef のナイフ ツールはスクリプト形式でサーバーを構成するのに信じられないほど便利です。

于 2013-04-02T23:43:20.340 に答える
2

apt-get の代わりに、CapistranoFabricなどを使用してアプリケーションをデプロイすることをお勧めします。これらのツールは、アプリケーションのデプロイ用に作成されており、複数のサーバーにデプロイできます。

于 2013-02-10T21:16:54.717 に答える