部署aws codedeploy&的问题ec2上的ubuntu

时间:2016-07-21 16:38:31

标签: ubuntu aws-code-deploy

我正在使用适用于jenkins的AWS CodeDeplo插件部署ruby代码。 Jenkins正在触发部署并且部署成功。成功我的意思是说将文件复制到服务器是成功的。

服务器在ubuntu 14.04上运行Ruby2.3.​​1

部署后,有待执行的.sh文件。这些详细信息通过appspec.yml文件维护。在appspec.yml文件中提到要以用户身份执行:devops

.sh文件正在执行,但结果我们没有成功。

问题如下: 1. .sh文件中的命令包括gem安装。 2.执行的执行导致错误,因为它总是指的是ruby 1.9.3而不是2.3.1

我们分析了目录/代码部署日志文件&发现如下: 1. codedeploy代理目录由具有4位数字值的用户拥有,例如.3456 2.打印ruby-v时打印为1.9.3,即使从终端打印也始终显示为2.3.1 3.日志显示某个gem安装失败的错误,因为我们没有权限在gems / 1.9.1目录中写入

当我们从终端执行.sh文件时,执行总是成功。

有些人可能会关注我做错了吗?

1 个答案:

答案 0 :(得分:1)

CodeDeploy代理没有shell env。

由于我在部署代码的机器上使用rvm,并且在我的.sh文件之上使用

#!/bin/bash
source /etc/profile.d/rvm.sh
rvm use 2.3.0 
#rest of your commands

这对我来说很好。