4

WeblogicおよびJbossサーバーへのJavaWebアプリケーションの多くのデプロイメントを行います。多くの場合、展開は次のようになります。

  1. コードとデフォルト設定をアプリケーションサーバーまたはWeblogic管理サーバーのステージングディレクトリにコピーします。

  2. プロパティファイルを編集して、環境固有の変数(IPアドレス、ユーザー名など)を設定します

  3. antを実行してear/warを作成し、適切なディレクトリにドロップします。

  4. サービスを開始する

これは、構成管理ツールとしてPuppetで使用するための非常に不親切な一連の手順であることが証明されています。PuppetのPackage、File、Service trifectaに非常によく似たプロセスをお勧めしますが、ear / warをビルドする前にプロパティを構成する必要があるため、war / earをビルドするための追加の手順が必要になるため、これは困難です。プロパティが入力された後のホスト。

環境にとらわれないwar/earを構築し、構成を外部に保持して、余分な構築手順を削除する方法はありますか?

WebアプリケーションとPuppetを具体的に扱った人はいますか?また、何かアドバイスはありますか?

4

1 に答える 1

4

私がtomcatと .war webapps で行ったことは、解凍された war を使用してシステム パッケージを構築し、conf ファイルを処理することです。私は Weblogic や JBoss をまったく扱ったことがないので、解凍された WAR がどのように処理されるのかわかりません。

1) すべての .war 構築作業を行うパッケージ (RPM) を構築し、次に次のようにします。

mkdir -p %{buildroot}/var/lib/tomcat5/webapps/APP
cd %{buildroot}/var/lib/tomcat5/webapps/APP
unzip ../APP.war
rm ../APP.war

(解凍された .war ファイルが実際の .war ファイルを含まないパッケージに含まれるようにします。特に、ファイルがルートに属しているために書き込みアクセス権がない場合、Tomcat を使用すると、そのディレクトリはそのままになります)

2) 人形のようなもの:

package {
  "tomcat5":
    require => Package["java-1.6.0-sun"],
    ensure => installed;
  "java-1.6.0-sun":
    ensure => installed;
  "APP":
    ensure => installed,
    notify => Service["tomcat5"],
    require => Package["java-1.6.0-sun"];
}

file {
  "/usr/share/tomcat5/webapps/APP":
    source  => [ "puppet:///MODULE/APP" ],
    ensure  => directory,
    ignore  => [ 'CVS', '.git', '.svn', '*~' ], # ignore revision control and backup files
    purge   => false, # leaves other stuff alone
    replace => true, # replaces stock files with ours
    recurse => true, # gets everything recursively
    require => Package[APP], # install package first
    notify  => Service[tomcat5]; # restart tomcat after
}

この特定のパッケージには、8 つのディレクトリに 32 個のファイルがあり、構成のために変更またはプッシュしています。file{}ファイルが数個しかない場合は、再帰的なものではなく、いくつかの単純なリソースを使用してそれらのファイルを管理します。

システム タイプのパッケージをビルドしたくない場合はfile{}、戦争用のリソースを別のディレクトリに配置し、構成用exec{"unzip ...": creates => '/path/to/unzipped/webapp;}のリソースに.file{}Exec["unzip ..."]

于 2011-12-02T18:39:12.190 に答える