日々常々

ふつうのプログラマがあたりまえにしたいこと。

JenkinsでJBossAS7にデプロイしようと思ったので

8からWildFlyって名前になるJBossASさんですが、Jenkinsから7.1.1へのデプロイをしようと思ったら、なんかDeployPluginとか5.x以降は無視ってるっぽいのでどうしたもんかなと。
この手の「どうとでもなるだろー」と思うものは大抵どうとでもなるんですが、メモメモ。

参考

音楽がやたら格好よかった。
JBossAS7.0.0のファイルシステム、コマンド、Web管理、MavenプラグインEclipseのデプロイが紹介されてます。

やったこと

JBossAS7の入手と起動

今回は 7.1.1.Final の zip をダウンロード。
何も考えず解凍して bin/standalone.sh を実行。まで。

% ./standalone.sh 
=========================================================================

  JBoss Bootstrap Environment

# 中略

20:52:08,884 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
20:52:08,885 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 4430ms - Started 133 of 208 services (74 services are passive or on-demand)

さくっと上がるのはいいね。「サーバー起動する」って言うと大層な感じがするけど、全然。

デプロイするものを作る

なんか作ります。何でもいいんですが、適当にarchetypeから選ぶ。jbossでフィルタリングしたら出てきた jboss-javaee6-webapp を使うことにしました。作ると言いつつ作ってません。

mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=org.jboss.spec.archetypes -DarchetypeArtifactId=jboss-javaee6-webapp -DgroupId=net.hogedriven -DartifactId=jboss-javaee6-webapp

暫くまって、上のコマンドのままなら jboss-javaee6-webapp ってディレクトリが出来るはず。

Mavenでのデプロイ

で、上記で作ったpom.xmlには JBoss AS7 Deployment Plugin も入ってるのでこのままデプロイできそうな勢いですが、そのままやると 7.0.2.Final になってるのでダメぽでした。とりあえずサーバーに合わせて 7.1.1.Final にしたら動いたし、新しい物好きを発揮して 7.4.Final にしても動きました。

% git diff                                                                                                                             (git)-[master]
diff --git a/pom.xml b/pom.xml
index e5ca465..eb0f6a4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -170,7 +170,7 @@
          <plugin>
             <groupId>org.jboss.as.plugins</groupId>
             <artifactId>jboss-as-maven-plugin</artifactId>
-            <version>7.0.2.Final</version>
+            <version>7.1.1.Final</version>
          </plugin>
       </plugins>
    </build>

と言うことでmavenからのデプロイは普通にこんな感じになります。

mvn package jboss-as:deploy
mvn jboss-as:undeploy

JBossAS7の動いている端末以外からデプロイする時はconfigをアレコレすればいけると思いますので、適当にアレコレするといいと思います。

コマンドからデプロイ

以上。ってのもアレなんで……でも以上なんだよなぁ……。
動画との違いは 7.0→7.1 で jboss-admin.sh が jboss-cli.sh に名前変わってる、くらい?

あと jboss-cli.sh を直接実行すると対話モードになるのですが、これはJenkinsとかでやるには微妙なので一行でやりたいんだけど、これも適当に jboss-cli.sh で help とか叩けば出てくるのを見ながらとかやればいけます。こんな感じ?

jboss-cli.sh --connect --command="deploy target/jboss-javaee6-webapp.war"
jboss-cli.sh --connect --command="undeploy jboss-javaee6-webapp.war"
ファイルシステムでデプロイ

ftpとかでぶっこめばいいんだろ(終了)

Webインタフェースからデプロイできても今回は嬉しく無い。Seleniumでデプロイスクリプトとか書くのもカオスで楽しげなんだけどやめとく。Eclipseからのは、まぁうん。


やり方はわかったし後はどうとでもなる。ので。Jenkinsでデプロイとかまでしなくていいや。と思ってしまった。(完)

そろそろ読もうと思ってるもの

……CLIのGUIってなんやね。GradleもGUIあるんだけど、こういうの流行りなのでしょうか?