使用Jenkins,git和eb cli

时间:2016-09-30 22:21:39

标签: php jenkins elastic-beanstalk aws-cli ebcli

我有一个php应用程序,我想使用Jenkins部署到弹性beanstalk环境。代码是在git上,我希望能够使用eb cli命令 使用 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 branch和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".

1 个答案:

答案 0 :(得分:1)

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

您遇到的问题似乎来自缺乏有效凭据。 EB CLI以与AWS CLI相同的方式提取凭据,您可以在documentation中找到更多信息。

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

[default]
aws_access_key_id = MYAWSACCESSKEY
aws_secret_access_key = MYAWSSECRETKEY

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