AEMは、あなたがそれらのインスタンスに行く異なる展開を持っていない限り、パッケージを展開する実行モードに依存しない方法を提供します。
一般的なユースケースのほとんどで、デプロイメントパッケージは作成者と発行者で同じで、デプロイメントパスも変更されているため、すべてホストです。我々は、CI Job paramとして指定された任意のノードにあらゆる種類のパッケージを直接プッシュできる展開用の別々のpomプロジェクトを構築します。このケースでは、完全なアプリケーションパッケージをデプロイするためにのみ使用しました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>cms-parent</artifactId>
<groupId>com.myproject.cms</groupId>
<version>1.0.2</version>
</parent>
<artifactId>cms-deploy</artifactId>
<groupId>com.myproject.cms.deploy</groupId>
<packaging>pom</packaging>
<version>1.0.0</version>
<name>
AEM :: Deploy
</name>
<properties>
<app.cms.myproject.complete.version>1.0.0-SNAPSHOT</app.cms.myproject.complete.version>
</properties>
<build>
<plugins>
<!-- additionally deploy three further content-packages which are not part of the complete-package -->
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<executions>
<execution>
<!-- override the default execution defined in the cq-parent by binding it to some invalid phase -->
<id>default-package</id>
<goals>
<goal>package</goal>
</goals>
<phase>foobar</phase>
</execution>
<execution>
<!-- override the default execution for install-package, which is called whenever you call deploy -->
<id>install-package</id>
<goals>
<goal>install</goal>
</goals>
<phase>foobar</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>install-myproject-complete</id>
<build>
<plugins>
<plugin>
<artifactId>content-package-maven-plugin</artifactId>
<groupId>com.day.jcr.vault</groupId>
<executions>
<!-- deploy the scripts and classes (part of the release) -->
<execution>
<id>install-myproject-complete</id>
<goals>
<goal>install</goal>
</goals>
<configuration>
<artifactId>myproject-complete</artifactId>
<groupId>com.myproject.cms.msites</groupId>
<version>${app.cms.myproject.complete.version}</version>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
ザ・あなたがCIでMavenプロジェクト(私はCIとしてジェンキンスを参照しています、ご使用のサーバーに適応できる)とパラメータ化ビルドとして設定を作成することができます -
POMは次のようになりますそれは次はあなたのSCMにおける上記POMプロジェクトを指すとMavenビルドステップを設定するには、ソースコード管理を設定することですhost
とdeployment version
を受け入れる -
目標やオプション
指定 - 著者の展開については を -
-U clean install -Pinstall-myproject-complete -Dcrx.host=${host}-author.mysite.com -Dcrx.port=4502 -e -Dapp.cms.myproject.complete.version=${version}
の展開を公開 -
-U clean install -Pinstall-myproject-complete -Dcrx.host=${host}-publish.mysite.com -Dcrx.port=4503 -e -Dapp.cms.myproject.complete.version=${version}
これはベース構成です、あなたはそれをさらにカスタマイズすることができ単一のpiplelineを維持するためにポート情報と共にnode_name/ip全体を受け入れる配備のため
あなたは 'http://author.local.telegraph.co 'を得ることができます。runmodesを確認するには、システムコンソールの資格情報を入力する必要があります。とにかくそれをやる必要があるのはなぜですか? AEMインスタンスをデプロイするときは、作成者または発行者として設定し、後で変更することはできません。あなたのスクリプトをいくつかのAEMインスタンスに対して実行するには、それらのリストを必要とします。リストに必要なメタデータが含まれている可能性があります(インスタンスがAEM作成者か公開者かにかかわらず) – toniedzwiedz
理由は経済的です。私はスクリプティングではなく、パイプラインは実際にはAEMだけのN配備技術をサポートする複雑なシステムです。理想的には、システムはノードタイプのようないくつかの余分なデータを格納することができますが、エンドポイントに問い合わせることは潜在的に安いでしょう。私たちが得た答えに応じて、ノードの種類を格納する機能を追加するか、このようにすることが可能です。 –