ANT / SSHEXECコマンドを使用して問題を解決しようとしています。
セットアップ:
ランタイム アクティビティに NIS および役割ベースのユーザーを使用する Solaris サーバー。
RBAC アカウントに直接ログインすることはできません。個人ユーザーとして接続し、そのユーザーに su を実行する必要があります。この環境では SUDO はオプションではないことをお伝えしました。
そのため、シナリオは、リモートサーバーで一連のスクリプトを構築、展開、および実行するためのANTスクリプトを構築しています。
これは私のユーザーとして実行されているため、ビルドとデプロイは問題ありませんが、SSHEXEC を使用して su -c $user に接続しようとすると、シェルがパスワード プロンプトで応答するという問題がありますが、何も入力できません。
したがって、ここでは、パスワードを入力して続行できるソリューションか、入力した変数としてパスワードをプロンプトに渡す方法が必要です。
現在使用しているコードは次のとおりです。
<target name="install-products">
<sshexec host="${remote.host1}"
username="${remote.user}"
password="${remote.pwd}"
command="/usr/bin/su - $user -c cd ${remote.install.dir}/OracleSunJDK;./installJAVA.sh -p project -e 935"
usepty="true"
trust="true"
failonerror="true"/>
</target>
したがって、ユーザーとして接続しています。たとえば、 ssh -t cambolie@${remote.host1}... のようにユーザーとパスワードが渡され、その su -c によりプロンプトが表示されます。
これは現在起こっていることです:
install-products:
[sshexec] Connecting to ${remote.host1}:22
[sshexec] cmd : /usr/bin/su - ${su-user} -c cd /var/tmp/weblogic/RP_WEBLOGIC_J2EE_1.0.0.0/install/OracleSunJDK;./installJAVA.sh -p project -e 935
[sshexec] Password:
この段階でハングするだけです。
誰でも助けることができますか?