使用Jenkins、git和ebcli在Elastic Beanstalk上部署php web应用程序


Deploy php web application on Elastic Beanstalk using Jenkins, git and eb cli

我有一个php应用程序,我想使用Jenkins部署到弹性豆茎环境。代码是在git上,我希望能够使用ebcli命令像eb使用eb部署。

所以,我不知道如何使这个工作…例如如何设置凭据,以便我可以使用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".

为了在目录中使用EB命令行,您首先必须运行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将自动提取凭据并运行所需的操作。