Hi
I am trying to automate the deployment of a tar ball onto a set of remote servers and am getting this error from the ssh -
sudo: no tty present and no askpass program specified
What I have done is add some code into the user's ssh key that does a few things like delete the existing directory structure and untar the new one and so on.
It works fine from the command line, but I get this error when trying to embed the code in a script.
From the error it seems to be expecting a terminal session or an askpass program.
I don't really understand why I see this as the code is deployed and untarred ok???
At the moment, in the shh key I have -
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="set -- ${SSH_ORIGINAL_COMMAND}; PSWD=$1; [[ $PSWD == welcome ]] || exit; [[ -f /tmp/muse.tar ]] || exit; NEWVERSION=$(tar xfO /tmp/muse.tar muse/lib/muse_version); [[ -n $NEWVERSION ]] || exit; OLDVERSION=; [[ -f /usr/bin/muse/lib/muse_version ]] && OLDVERSION=$(cat /usr/bin/muse/lib/muse_version); [[ -n $OLDVERSION ]] && [[ $OLDVERSION -ge $NEWVERSION ]] && exit; [[ -d /usr/bin/muse ]] && sudo /bin/rm -rf /usr/bin/muse; sudo /bin/tar xvf /tmp/muse.tar -C /usr/bin && sudo /bin/chown -R musedeploy:muse_user /usr/bin/muse "
and in my sudoers.d file -
Cmnd_Alias MUSE_CMD = /bin/mv /tmp/muse.* muse.tar, /bin/rm -rf /usr/bin/muse,/bin/tar xvf /tmp/muse.tar -C /usr/bin,/bin/chown -R musedeploy\:muse_usr /usr/bin/muse
%musedeploy ALL = (root) NOPASSWD: MUSE_CMD
At the moment I am using the command -
ssh musedeploy@${SERVER} ${PSWD} || die "Deployment failed"
I could just not trap the error and dump stderr, but I'd rather understand what's going on if anyone can suggest anything.
Cheers
Steady