我有一个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".
答案 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将自动提取凭据并运行所需的操作。