0

我有一个 php 应用程序,我想使用 Jenkins 将其部署到弹性 beanstalk 环境。代码在 git 上,我希望能够使用 eb cli 命令,例如 eb use eb deploy。

所以,我不确定如何使这项工作......就像如何设置凭据以便我可以使用 Jenkins shell 运行 eb cli 命令一样。

关于如何解决这个问题的任何想法都会非常有帮助。

我的脚本目前看起来有点像这样

git fetch

git checkout "$GIT_REF"

git pull origin "$GIT_REF"

eb use "$CUSTOM_EB_ENV"

eb deploy

$GIT_REF 和 $CUSTOM_EB_ENV 是指向 git 分支和 ElasticBeanstalk 环境名称的变量。

当我运行作业时,我收到以下错误

+ git fetch
+ git checkout master
Previous HEAD position was 36f0456t... f
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
+ git pull origin master
From github.com:something/foo_bar
* branch            master     -> FETCH_HEAD
Already up-to-date.
+ eb use Environment_name
ERROR: Operation Denied. The security token included in the request is invalid.
+ eb deploy
ERROR: This branch does not have a default environment. You must either specify an environment by typing "deploy my-env-name" or set a default environment by typing "eb use my-env-name".
4

1 回答 1

1

为了在目录中使用 EB CLI,您首先必须运行eb init,但看起来您已经这样做了。

您遇到的问题似乎是由于缺乏有效的凭据。EB CLI 提取凭证的方式与 AWS CLI 相同,您可以在文档中找到更多信息。

您很可能必须为您的 jenkins 服务器设置一对 AWS 凭证。一种方法是创建文件$JENKINS_HOME/.aws/credentials并将您的 AWS 凭证存储在其中。

[default]
aws_access_key_id = MYAWSACCESSKEY
aws_secret_access_key = MYAWSSECRETKEY

创建该文件后,EB CLI 将自动提取凭据并运行所需的操作。

于 2017-02-03T20:20:50.500 回答