Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS Linux CodeDeploy权限问题(w.Bitbucket、Tomcat、Shell脚本)_Linux_Amazon Web Services_Permissions_Aws Code Deploy - Fatal编程技术网

AWS Linux CodeDeploy权限问题(w.Bitbucket、Tomcat、Shell脚本)

AWS Linux CodeDeploy权限问题(w.Bitbucket、Tomcat、Shell脚本),linux,amazon-web-services,permissions,aws-code-deploy,Linux,Amazon Web Services,Permissions,Aws Code Deploy,我正在尝试使用CodeDeploy将文件部署到安装了Tomcat的AWS Beanstalk服务器。除了appspec.yml调用my.sh脚本并执行mvn install命令时发生的异常之外,所有内容都配置良好。我尝试了我想象的所有权限组合(以及我找到的每个StackOverflow答案),但都没有成功 Cannot create resource output directory: /opt/codedeploy-agent/deployment-root/f953d455-9712-454

我正在尝试使用CodeDeploy将文件部署到安装了Tomcat的AWS Beanstalk服务器。除了appspec.yml调用my.sh脚本并执行mvn install命令时发生的异常之外,所有内容都配置良好。我尝试了我想象的所有权限组合(以及我找到的每个StackOverflow答案),但都没有成功

Cannot create resource output directory: /opt/codedeploy-agent/deployment-root/f953d455-9712-454b-84b0-2533cf87f79a/d-3UFCDLD0D/deployment-archive/target/classes
我还希望在执行.sh脚本之前执行appspec.yml的files部分。它应该是这样工作的:

  • appspec.yml将所有文件移动到webapps文件夹
  • 执行build.sh
  • mvn运行并创建.war文件
  • build.sh进行一些清理
  • appspec.yml(我已经尝试了其他多个)

    build.sh

    export LANG=en_US.UTF-8
    
    SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    echo "Script path: $SCRIPTPATH"
    
    PROJECT_SOURCE_DIR=$SCRIPTPATH/../
    cd $PROJECT_SOURCE_DIR
    
    mvn clean install
    
    cd $PROJECT_SOURCE_DIR/target
    ls -a
    
    for file in *.war; do
        mv $file /usr/share/tomcat8/webapps/ROOT.war
    done;
    
    rm -rf $PROJECT_SOURCE_DIR/target
    rm -rf $SCRIPTPATH
    
    从异常中可以明显看出,maven试图在没有权限的情况下创建文件夹目标。所以问题是,为什么它首先要在这个文件夹中执行它,然后如何获得正确的访问权。

    • 解决此问题的方法是在运行“mvn clean install”而不是PROJECT\u SOURCE\u DIR之前添加命令以更改到适当的目录

    • 安装是AWS CodeDeploy agent将修订文件从临时位置复制到最终目标文件夹的生命周期事件。此事件是为AWS CodeDeploy代理保留的,不能用于运行脚本。相关文件如下:

    • 出现错误的目录实际上位于部署归档目录下,如下所示:

    • 出现错误的原因是build.sh脚本正在当前目录下运行,该目录需要root权限,并且scripts/build.sh仅具有ex2用户权限,这导致了权限问题

        • 解决此问题的方法是在运行“mvn clean install”而不是PROJECT\u SOURCE\u DIR之前添加命令以更改到适当的目录

        • 安装是AWS CodeDeploy agent将修订文件从临时位置复制到最终目标文件夹的生命周期事件。此事件是为AWS CodeDeploy代理保留的,不能用于运行脚本。相关文件如下:

        • 出现错误的目录实际上位于部署归档目录下,如下所示:

        • 出现错误的原因是build.sh脚本正在当前目录下运行,该目录需要root权限,并且scripts/build.sh仅具有ex2用户权限,这导致了权限问题


        我已经对代码进行了必要的修改。以root用户身份运行,并将整个部署文件夹移动到.sh脚本内部的tomcat,这不取决于appspec.yml。经过一些调整后,现在它实际上运行良好。我已经对代码进行了必要的修改。以root用户身份运行,并将整个部署文件夹移动到.sh脚本内部的tomcat,这不取决于appspec.yml。经过一些调整后,现在它实际上运行良好。
        export LANG=en_US.UTF-8
        
        SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
        echo "Script path: $SCRIPTPATH"
        
        PROJECT_SOURCE_DIR=$SCRIPTPATH/../
        cd $PROJECT_SOURCE_DIR
        
        mvn clean install
        
        cd $PROJECT_SOURCE_DIR/target
        ls -a
        
        for file in *.war; do
            mv $file /usr/share/tomcat8/webapps/ROOT.war
        done;
        
        rm -rf $PROJECT_SOURCE_DIR/target
        rm -rf $SCRIPTPATH