1

我正在尝试开发一个 GitLab 管道以将战争文件部署到 EC2 tomcat 中。我正在成功地将战争文件移动到 EC2 到文件夹 home/ec2-user。从那里我试图将战争文件复制到 home 之前的 tomcat8/webapps 文件夹(主文件夹级别)。

我正在使用以下代码,但在尝试关闭或启动服务器时会抛出类似“没有这样的文件或目录”的错误。

#!/bin/bash
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo echo '1stline'"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo sh /tomcat8/bin/shutdown.sh"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo echo '2ndline'"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo rm -rf /tomcat8/webapps/gitlabec2pipeline.war"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo echo '3rdline'"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo cp /home/ec2-user/gitlabec2pipeline.war /tomcat8/webapps/gitlabec2pipeline.war"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo echo '4thline'"
ssh ec2-user@$EC2_DEPLOY_SERVER "sudo sh /tomcat8/bin/startup.sh"

以下是错误。(如果我在 EC2 实例中手动运行上述步骤,它们工作正常)。

$ mkdir -p ~/.ssh
$ echo -e "$EC2_SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
$ chmod 400 ~/.ssh/id_rsa
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ scp target/*.war ec2-user@$EC2_DEPLOY_SERVER:/home/ec2-user/gitlabec2pipeline.war
Warning: Permanently added '3.216.147.37' (ECDSA) to the list of known hosts.
$ bash .gitlab-deploy-ec2.sh
1stline
: No such file or directory
2ndline
3rdline
4thline
: No such file or directory
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

谁能帮我解决我在这里犯的错误?谢谢你。

4

0 回答 0