AWS Code Pipeline Error: Script at specified location: scripts/install_dependencies run as user oracle failed with exit code 127
AWS Code Pipeline Error: Script at specified location: scripts/install_dependencies run as user oracle failed with exit code 127
我在 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 的代码部署代理的 shell 脚本?
问题已解决,在我更新 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
我在 ec2 实例上安装了一个 Oracle 数据库,我想 运行 该服务器上的一个脚本,这样每当我将脚本放入 s3 存储桶时,代码管道就会触发并将脚本部署到部署组中的实例。 我的 s3 存储桶版本控制已启用,我的源是 s3,部署是代码部署
但是我的 shell 脚本由于权限错误而不断失败,sqlplus 需要脚本 运行 作为 oracle 用户,但它给了我以下错误!
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 的代码部署代理的 shell 脚本?
问题已解决,在我更新 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