Unless I'm overlooking something with sshexec it doesn't accomplish my task
either. That may be because I don't see a way to use any ssh options (like the
-t).
The task I used:
<sshexec host="${remote.host}" failonerror="true"
username="mylocaluser"
keyfile="${user.home}/.ssh/id_dsa"
command="/usr/local/bin/sudo -u myuser
/path/to/deploy_build.sh" />
I also tried using a local shell script. Which takes a single argument (the
hostname) and runs the ssh command. Similarly, this works from the command
line but not from ant.
The shell script (remote_deploy.sh):
#! /bin/bash
remotehost=$1
echo "ssh to $remotehost"
ssh -t $remotehost /usr/local/bin/sudo -u myuser /path/to/deploy_build.sh
The ant call of the script:
<exec executable="bash">
<arg line="./remote_deploy.sh ${remote.host}" />
</exec>
Any idea whether my issue is lies with ant or solaris?
Thanks to all who have offered advice!
Barry
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Monday, January 21, 2008 12:10 AM
To: [email protected]
Subject: AW: exec with -t argument
<sshexec> ?
That uses a java api instead of using a command line executable.
Jan
> -----Ursprüngliche Nachricht-----
> Von: Barry Pape [mailto:[EMAIL PROTECTED]
> Gesendet: Freitag, 18. Januar 2008 18:34
> An: Ant Users List
> Betreff: RE: exec with -t argument
>
> Hmmm, yeah..not sure how I forgot to do that...
>
> So ant is calling the command that works on the command line,
> but specifies '[exec] Pseudo-terminal will not be allocated
> because stdin is not a terminal.' In researching this some,
> I found advice to either use '-t -t' to force the allocation
> of a pty or '-T' to disables tty creation on the client side.
> Neither of these or the combination of them seems to be
> working for me. Any ideas, or is there another way to
> accomplish executing a remote script that I should look into?
>
>
> deploy.build:
> [exec] Current OS is SunOS
> [exec] Executing 'ssh' with arguments:
> [exec] '-t'
> [exec] 'myserver.net'
> [exec] '/usr/local/bin/sudo'
> [exec] '-u'
> [exec] 'myuser'
> [exec] '/path/to/deploy_build.sh'
> [exec]
> [exec] The ' characters around the executable and arguments are
> [exec] not part of the command.
> [exec] Pseudo-terminal will not be allocated because
> stdin is not a terminal.
>
>
> Thanks,
> Barry
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Friday, January 18, 2008 12:34 AM
> To: [email protected]
> Subject: AW: exec with -t argument
>
> Can you run Ant in -verbose or -debug mode and post the
> execution command?
> Maybe you could try that generated command directly on command line.
>
> Jan
>
> > -----Ursprüngliche Nachricht-----
> > Von: Barry Pape [mailto:[EMAIL PROTECTED]
> > Gesendet: Freitag, 18. Januar 2008 01:52
> > An: Ant Users List
> > Betreff: exec with -t argument
> >
> > Howdy Ant Friends,
> >
> > I am having an issue with running a deploy script on a
> remote server.
> > This command works beautifully:
> >
> > ssh -t myserver.net /usr/local/bin/sudo -u myuser
> > /path/to/deploy_build.sh
> >
> > But when I invoke this command using exec in ant the '-t'
> > argument does
> > not get used. Otherwise the remote script is run and
> everything looks
> > good (the app is deployed and jboss is started). In the
> > script, we run
> > the command 'nohup ./run.sh &' and without the '-t' nohup
> is not used.
> > This results in the output that would normally go to nohup.out to be
> > dumped to the invoking shell and the build to hang because
> > now the shell
> > is being used for the standard output jboss produces. I have
> > tried exec
> > with all <arg value="">, with <arg line=""> only, and various
> > combinations of the two. My google and mail archive
> searches thus far
> > have been unsuccessful in finding a similar issue. Any
> > suggestions are
> > much appreciated.
> >
> > My ant target:
> > <target name="deploy.build">
> > <exec executable="ssh">
> > <!-- <arg value="-t" />
> > <arg value="${remote.host}" />
> > <arg value="/usr/local/bin/sudo" />
> > <arg value="-u" />
> > <arg value="myuser" />
> > <arg value="/path/to /deploy_build.sh" />-->
> > <arg line="-t ${remote.host} /usr/local/bin/sudo -u
> > myuser /path/to /deploy_build.sh" />
> > </exec>
> > </target>
> >
> >
> > Both the invoking server and remote server are running solaris.
> >
> >
> > Thanks,
> > Barry
> >
> >
> >
> > -----------------------------------------
> > Confidentiality Notice!
> > This electronic transmission and any attached documents or other
> > writings are confidential and are for the sole use of the intended
> > recipient(s) identified above. This message may contain information
> > that is privileged, confidential or otherwise protected from
> > disclosure under applicable law. If the receiver of this
> > information is not the intended recipient, or the employee, or
> > agent responsible for delivering the information to the intended
> > recipient, you are hereby notified that any use, reading,
> > dissemination, distribution, copying or storage of this information
> > is strictly prohibited. If you have received this information in
> > error, please notify the sender by return email and delete the
> > electronic transmission, including all attachments from your
> > system.
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]