私はコードを構築し(コンパイルエラーをチェックする)、テストを実行し、ファイルをリモートサーバーに展開する継続的な統合サーバー(Jenkins)を持っています(warファイルではなく、実際のファイル構造) Jenkinsプラグインを使用すると、Samba経由でファイルを転送できます。これは毎晩行われます。
ここで、リモートサーバーでantコマンドを実行する必要があります。その後、リモートサーバーでアプリケーションサーバーを起動する必要があります。コマンドラインから.batファイルを実行して、アプリケーションサーバーを起動します。
Jenkinsがバッチコマンドを実行できることは知っていますが、ビルドサーバーのコンテキストではなくサーバーのコンテキストで実行するにはどうすればよいですか?
WindowsのJenkins、* nixのリモートの場合、plink.exe
(基本的にコマンドラインPuTTY
)
WindowsのJenkins、Windowsのリモートの場合、 psexec.exe
* nixのJenkins、* nixのリモートの場合、ssh
を使用します
* nix上のJenkins、Windows上のリモート、(2015-01更新)Ansible http://docs.ansible.com/intro_windows.html は、unixからのpowershellなどのWindowsコマンドの呼び出しをサポートしている場合/ linux machine、 https://github.com/ansible/ansible-examples/blob/master/windows/run-powershell.yml
どのOSが関係しているのか(Jenkinsとリモートの両方で)教えてください。これをさらにフラッシュします。
編集:psexec.exe
は、すべてのコマンドラインオプションをリストします。次のようなものが必要になります。
psexec \\remotecomputername -u remoteusername -p remotepassword cmd /c <your commands here>
置き換える<your commands here>
コマンドプロンプトから実行する実際のコマンド。
psexec
は最初にサービスをインストールする必要があり、そのためには昇格したコマンドプロンプト/管理者のリモート資格情報が必要であることに注意してください。
また、psexec -accepteula
1回、EULAプロンプトを受け入れます。
上記のSlavの答えに続いて、Jenkins(* nix)からリモート(windows)への簡単なソリューションを以下に示します。
ノート :
しばらくpsexec.exeを試した後、私は別のアプローチを採用することになりました。
Psexec.exeとネットワーク経由でのファイルのコピーは、特に私が作業しているドメインが毎月パスワードを変更するポリシーを持っているため(ビルドが壊れたため)、少し遅くて不安定でした。
最終的に、より高速で安定したマスター/スレーブアプローチを採用しました。 psexec.exeを使用する必要がなく、ネットワーク経由でファイルをコピーする必要もないためです。