当我尝试将我的jar文件从位于AWS Instance中的jenkins部署到mule独立服务器时,我面临以下问题。请帮助我解决它。
+ sudo su- cp /var/lib/jenkins/workspace/Addition/addition/target/addition-1.0.0-SNAPSHOT-mule-application.jar /home/ec2-user/mate/mule-enterprise-standalone-4.3.0/apps
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
Build step 'Execute shell' marked build as failure
Finished: FAILURE
答案 0 :(得分:0)
可能是您键入错误或未剪切并粘贴,但我认为您输入的命令 su-错误 看来您的命令很混乱,而sudo根本看不到命令。
如果您需要 su ,则应该为 su-,但我认为您根本不需要一个。
您只需以root身份复制文件(由于sudo),则无需再次成为root。
一些建议。侦听系统消息-不要使用root用户访问权限。调整您的特权/组/权限,以便您的进程无需root访问即可写入此目录。 其次,由于部分云和网络可能很慢-请勿直接复制到apps文件夹。复制到应用所在的同一文件系统上的临时位置,然后将文件移动到aps。
Mule运行时每5秒检查一次apps文件夹中是否有新的应用程序。如果未完全复制文件,则可能会损坏已部署的应用程序。
答案 1 :(得分:0)
该错误是由于权限设置不正确引起的,实际上是在How to fix 'sudo: no tty present and no askpass program specified' error?之前问过的
说过,使用root用户访问权限进行构建和部署实际上是一种不良的安全做法,应避免使用。您可以为特定用户使用sudo -u USER
。在您的命令行中,我可以看到脚本正在部署到用户ec2-user
的主目录中,因此您应该使用该脚本来限制访问。
答案 2 :(得分:0)
该图像来自linux终端。但是,如果我在jenkins shell中执行相同的操作,那就是抛出错误
答案 3 :(得分:0)
问题已解决,问题不在于命令,而是詹金斯... 只需执行以下2个步骤,即可解决问题。
须藤visudo jenkins ALL =(全部)NOPASSWD:全部