Знаток развертывается к нескольким серверам Tomcat

Вы не можете сделать это с awscli. aws sync s3://bucket . будет синхронизировать данные в обе стороны

Если вам нужен инструмент, который действует в соответствии с вашими потребностями, вы должны разработать скрипт на Python, используя https://github.com/boto/boto3 [ 112]

19
задан cgp 18 April 2009 в 01:18
поделиться

3 ответа

Идея Markus Lux также может быть применена с решением Maven2 с управлением профилями:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
        </plugin>
    </plugins>
    ...
</build>
<profiles>
    <profile>
        <id>env-foo1</id>
        <!-- Activated when -Denv=foo1 is given as parameter. -->
        <activation>
            <property>
                <name>env</name>
                <value>foo1</value>
            </property>
        </activation>
        <properties>
            <deploy.env>xxx</deploy.env>
            <tomcat.manager>http://foo1/manager</tomcat.manager>
            <tomcat.manager.username>foo</tomcat.manager.username>
            <tomcat.manager.password>bar</tomcat.manager.password>
        </properties>
    </profile> 
    <profile>
        <id>env-foo2</id>
        <!-- Activated when -Denv=foo2 is given as parameter. -->
        <activation>
            <property>
                <name>env</name>
                <value>foo2</value>
            </property>
        </activation>
        <properties>
            <deploy.env>dev</deploy.env>
            <tomcat.manager>http://foo2/manager</tomcat.manager>
            <tomcat.manager.username>foo</tomcat.manager.username>
            <tomcat.manager.password>bar</tomcat.manager.password>
        </properties>
    </profile>
    ... 
</profiles>    

Тогда вам просто нужно будет запустить X раз mvn команда с соответствующим параметром ( -Denv = foo1 , -Denv = foo2 , ...)


В дополнение к этому вы можете улучшить это решение с помощью матрицы особенность сервера непрерывной интеграции Hudson . Я дал краткое объяснение этой функции здесь .

По сути, вы просто определяете «нормальную» работу Maven2 в Hudson, и с помощью функции Matrix вы можете попросить Hudson запустить эту работу несколько раз, по одному на окружающую среду. Другими словами, вы создаете задание Hudson, а затем определяете «ось среды» со всеми возможными значениями для параметра env :

25
ответ дан 30 November 2019 в 03:38
поделиться

Возможно, «самое минимальное» решение вовсе не минимально. Если у вас есть проблемы с этим в самом maven, попробуйте использовать ant: создайте две разные задачи развертывания (по одной на сервер) и другую задачу, в которой они находятся в зависимости. Есть несколько примеров того, как выполнить развертывание на сервере Tomcat с помощью ant. Просто погуглите их . Для этого вам нужно интегрировать новые задачи ant в maven, что совсем не сложно, используя плагин antrun .

1
ответ дан 30 November 2019 в 03:38
поделиться

This answer is for Jetty and for a slightly different situation, but you might find it useful anyway.

On a previous project we used Jetty, so I wrote a simple Jetty deployer module that would periodically scan the maven repository and download and deploy new artifacts as soon as they became available. This ran well on a small cluster of staging and development machines.

You can find the code at Google Code in the Polar Rose Jetty Maven Deployer project.

Note that we only did this for development and staging servers. In my opinion production apps should never ever be upgraded automatically.

0
ответ дан 30 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: