【问题标题】:AWS Code Pipeline Error: Script at specified location: scripts/install_dependencies run as user oracle failed with exit code 127AWS 代码管道错误:指定位置的脚本:scripts/install_dependencies 以用户身份运行 oracle 失败,退出代码为 127
【发布时间】:2019-05-17 04:49:47
【问题描述】:

我在 ec2 实例上安装了一个 Oracle 数据库,我想在该服务器上运行一个脚本,这样每当我将脚本放入 s3 存储桶时,代码管道就会触发并将脚本部署到部署组中的实例。 我的 s3 存储桶版本控制已启用,我的源是 s3,部署是代码部署

但由于权限错误,我的 shell 脚本一直失败,sqlplus 需要脚本以 oracle 用户身份运行,但它给了我以下错误!

以下是 install_dependencies.sh 文件中的代码:

rm -rf /oracle/backup/*
echo "oracle" | sudo -S sleep 2 && sudo su - oracle
sqlplus -s "/ as sysdba" <<EOF
whenever sqlerror exit sql.sqlcode;
set echo on;
set serveroutput on;

create table demo01 id(a number);
insert into demo01 values(1);
commit;

exit;
EOF

我的 appspec 文件代码:

version: 0.0
os: linux
files:
  - source: /db.dmp
    destination: /oracle/backup/
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies
      timeout: 3000
      runas: oracle

我已经在 /etc/sudoers 文件中为 Oracle 创建了一个条目,但它也没有成功。那么如何使用 ec2 的 code-deploy-agent 以非 root 用户身份运行 shell 脚本?

【问题讨论】:

  • 你能sudo oracle 然后运行sqlplus / as sysdba。还是给sqlplus: command not found
  • 嗨,TenG 我无法执行 sudo oracle,它给了我这个错误“sudo: oracle: command not found”。

标签: oracle amazon-web-services amazon-s3 aws-code-deploy aws-codepipeline


【解决方案1】:

问题已解决,在我更新了 shell 脚本后:

echo "oracle" | sudo -S sleep 2 && sudo su - oracle -c 'sqlplus / as sysdba'  <<EOF
whenever sqlerror exit sql.sqlcode;
set echo on;
set serveroutput on;
create table demo02 (a number);
insert into demo02 values(1);
commit;
exit;
EOF

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 2019-08-17
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2019-05-02
    • 2016-01-28
    相关资源
    最近更新 更多