Дженкинс + Мейвен Карго + 2 кота
Я создаю файл боевых действий Дженкинса с Maven, и мне нужно развернуть его одновременно на двух запущенных котах. Я написал два профиля (для каждого кота) в pom.xml, но когда я запускаю
cargo:deploy -Pprofile1,profile2
его развертывание только в профиль2. Так что мне нужно запустить команду 2 раза:
cargo:deploy -Pprofile1
cargo:deploy -Pprofile2
вот так выглядит мой pom.xml:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.8</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.uri>${cargo.manager.url}</cargo.remote.uri>
<cargo.remote.username>${cargo.username}</cargo.remote.username>
<cargo.remote.password>${cargo.password}</cargo.remote.password>
</properties>
</configuration>
<deployables>
<deployable>
<groupId>com.softserveinc</groupId>
<artifactId>oms</artifactId>
<!-- <version>1.0.0-BUILD-SNAPSHOT</version> -->
<type>war</type>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>profile1</id>
<properties>
<cargo.manager.url>http://<here shuold be ip addres>/manager/text</cargo.manager.url>
<cargo.username>admin</cargo.username>
<cargo.password>admin</cargo.password>
</properties>
</profile>
<profile>
<id>profile2</id>
<properties>
<cargo.manager.url>http://<here shuold be ip addres>/manager/text</cargo.manager.url>
<cargo.username>admin</cargo.username>
<cargo.password>admin</cargo.password>
</properties>
</profile>
</profiles>
но мне нужно сделать это для 2 котов по 1 команде? кто-нибудь знает как это сделать?
1 ответ
Решение
Написал скрипт, который вызвал команду Cargo deploy.
Вот шаблон Jinja, который динамически создается из файла инвентарного учета:
#!/bin/sh
function deploy
{
echo "Changing working directory to om"
cd /home/install/some
{% for host in groups['app'] %}
echo "Deploying application to {{host}} server"
{{installation_folder}}/maven/bin/mvn cargo:redeploy -P{{host}}
{% endfor %}
}
echo "Downloading the latest version of oms.war"
wget "http://{{groups['CS'][0]}}:8081/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.softserveinc&a=oms&v=1.0.0-BUILD-SNAPSHOT&p=war" -O /tmp/some.war
deploy
echo "Removing some.war"
rm -rf /tmp/oms.war