我正在使用 EC2 创建 gitlab 运行程序。 跑步者正在注册,没有任何问题。 我正在尝试使用用户数据为 ec2 分配角色。这是代码--
cat << EOF >> /home/gitlab-runner/.aws/config
[default]
role_arn=arn:aws:iam::123456789012:role/gitlabrunner
credential_source=Ec2InstanceMetadata
region=us-east-1
EOF
我能够将运行器附加到 Gitlab 项目。但是当我尝试运行任何管道时,我收到以下错误 -
aws --version
aws-cli/2.13.0 Python/3.11.4 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.ubuntu.22 prompt/off
aws s3 ls
找不到配置文件(默认)
非常感谢任何帮助。
检查 AWS CLI 配置: 确保在执行 GitLab Runner 的计算机上正确配置 AWS CLI。运行以下命令以查看现有的 AWS CLI 配置:
aws configure list
确保所需的 AWS 配置文件(在本例中为“默认”)配置有必要的凭证和区域。
验证 IAM 角色是否存在: 确认您尝试代入的 IAM 角色存在于您的 AWS 账户中,并且您的 GitLab Runner 配置中指定的角色名称正确。
检查 GitLab 运行器配置: 在您的 GitLab Runner 配置文件(
.gitlab-ci.yml
或 GitLab Runner config.toml
文件)中,确保正确使用 AWS CLI。验证指定的 AWS CLI 配置文件是否与您计算机上配置的配置文件匹配。
更新 GitLab Runner: 确保您使用的是最新版本的 GitLab Runner。更新到最新版本可能会解决已知问题并提高兼容性。
环境变量: 如果您使用环境变量设置 AWS 凭证,请确保它们设置正确。您可以使用以下环境变量:
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_DEFAULT_REGION=your_region
将
your_access_key_id
、your_secret_access_key
和 your_region
替换为您的实际 AWS 凭证和区域。
IAM 角色信任关系: 验证您尝试承担的 IAM 角色的信任关系。信任关系应包括尝试承担角色的实体(例如 EC2 实例或用户)。
IAM 角色权限: 确保 IAM 角色具有由 GitLab Runner 实例承担的必要权限。检查附加到 IAM 角色的策略以获得所需的权限。
调试: 启用 AWS CLI 调试以获取有关错误的更多详细信息。您可以将
--debug
选项添加到 AWS CLI 命令以查看详细日志。
aws sts assume-role --role-arn arn:aws:iam::account-id-without-hyphens:role/role-name --role-session-name session-name --debug
查看调试输出,了解可能表明问题根本原因的任何特定错误消息。
通过执行这些步骤,您应该能够识别并解决由于缺少 AWS CLI 配置文件配置而导致 GitLab Runner 无法承担 IAM 角色的问题。