将AWS凭证传递给厨房EC2命令行

时间:2018-06-22 01:40:36

标签: amazon-web-services docker jenkins chef

我正在尝试通过Jenkinsfile管道进行厨师食谱的开发。我的jenkins服务器作为容器运行(使用jenkinsci / blueocean映像)。作为阶段之一,我正在尝试进行aws配置,然后运行厨房测试。由于以下代码的某些原因,我收到未经授权的操作错误。由于某些原因,我的AWS凭证未正确发送到.kitchen.yml(无需检查IAM凭证,因为它们具有管理员访问权限)

stage('\u27A1 Verify Kitchen') {
        steps { 
            sh '''mkdir -p ~/.aws/
echo 'AWS_ACCESS_KEY_ID=...' >> ~/.aws/credentials
echo 'AWS_SECRET_ACCESS_KEY=...' >> ~/.aws/credentials
cat ~/.aws/credentials
KITCHEN_LOCAL_YAML=.kitchen.yml /opt/chefdk/embedded/bin/kitchen list
KITCHEN_LOCAL_YAML=.kitchen.yml /opt/chefdk/embedded/bin/kitchen test'''
        }
    }

无论如何,我可以在这里通过AWS认证。此外,.kitchen.yml不再支持在文件内部传递AWS凭证。有什么办法可以让我在命令中传递凭据,即.kitchen.yml access_key = ... secret_access_key = ... / opt / chefdk / embedded / bin / kitchen测试 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 您不需要设置{continue: true, data: result},这已经是主要的配置文件。

  2. 您可能想要使用Jenkins凭证文件,而不是将内容硬编码到作业中。但这就是说,之所以不起作用,是因为AWS .mat-header-cell { text-align: center; } 文件不是Shell脚本,这是您在此处使用的语法。这是一个INI / TOML文件,并与具有相似结构的相似KITCHEN_LOCAL_YAML=.kitchen.yml文件配对。

  3. 您可能应该只通过credentials管道助手方法或类似的方法在kitchen-ec2中使用环境变量支持,以与Jenkins托管凭据集成。