1

複数のサーバー用にAntビルドを作成するための提案が必要です。私は約25台のサーバーを持っています。可能であれば、antを1回実行して、すべてのサーバーにデプロイメントwarファイルを実装したいと思います。考慮すべき次の問題があります

  • 構成パラメーターは、すべてのサーバーで同じではありません。
  • いくつかの構成パラメーターは、アプリがデプロイされるサーバーホストIPを設定する必要があります。25
    台のサーバーがある場合、これに対処する方法についていくつかの提案が必要です。
4

2 に答える 2

2

Ant でこれを行うためのロジックを手作業でコーディングすることもできますが、サーバー構成の違いによっては、多くの作業が必要になる場合があります。代わりに、 ChefPuppetなどの適切な構成管理ツールを使用して展開を自動化し、Ant を使用して展開されるファイルを構築することを検討することをお勧めします。

于 2012-12-20T18:58:59.410 に答える
2

私は同じ目的を持っていました。

Jayanで言及されているように、Jenkins で継続的インテグレーションをセットアップするために、Maven スクリプトをコーディングできます。

または、言及したようにANTスクリプトを作成できます。

<!-- Define custom properties -->
<property name="build.dir" location="${basedir}/target" />
<property name="host.dev" value="YOUR IP" />
<property name="host.live" value="YOUR IP 2" />
<property name="ssh.timeout" value="60000" />
<property name="username.dev" value="username" />
<property name="username.live" value="username 2" />
<property name="password.dev" value="password" />
<property name="password.live" value="password 2" />

ssh コマンドを使用するには、独自の ssh macrodef タスクを作成します。

<!-- Define ssh commands sshexec -->
<macrodef name="ssh_cmd">
    <attribute name="host" />
    <attribute name="command" />
    <attribute name="usepty" default="false" />
    <attribute name="username" />
    <attribute name="password" />
    <sequential>
        <echo>Executing command : @{command} on @{username}@@@{host}</echo>
        <sshexec host="@{host}" failonerror="true" username="@{username}" password="@{password}" timeout="${ssh.timeout}" command="@{command}" usepty="@{usepty}" trust="true" />
    </sequential>
</macrodef>

次のようなコマンドをサーバーに送信します。

<ssh_cmd host="${host.dev}" command="YOUR COMMAND (ex: sudo start yourservice onlinux)" username="${username.dev}" password="${password.dev}"/>

次のようなもので sshexec / scp ant タスクをインポートすることを忘れないでください:

<property environment="env" />
<taskdef resource="net/jtools/classloadertask/antlib.xml">
    <classpath>
        <fileset dir="${ant.home}/lib" includes="ant-classloader*.jar" />
    </classpath>
</taskdef>
于 2013-06-21T18:07:31.857 に答える