Инициализация и извлечение модулей terraform publi c с использованием закрытого ключа GitHub S SH - PullRequest
0 голосов
/ 23 марта 2020

Контекст: у меня есть gitlab runners, которые выполняют команду terraform init, которая извлекает все необходимые модули terraform. Недавно я начал сталкиваться с проблемами регулирования github (60 вызовов в github api в час). Поэтому я пытаюсь перенастроить свой конвейер, чтобы он использовал личный ключ пользователя Github.

В настоящее время у меня есть следующее в моем конвейере, но оно все еще не работает, и закрытый ключ не используется для извлечения модулей terraform.

- GITHUB_SECRET=$(aws --region ${REGION} ssm get-parameters-by-path --path /github/umotifdev --with-decryption --query 'Parameters[*].{Name:Name,Value:Value}' --output json);
- PRIVATE_KEY=$(echo "${GITHUB_SECRET}" | jq -r '.[] | select(.Name == "/github/umotifdev/private_key").Value' | base64 -d);
- PUBLIC_KEY=$(echo "${GITHUB_SECRET}" | jq -r '.[] | select(.Name == "/github/umotifdev/public_key").Value' | base64 -d);
- mkdir -p ~/.ssh;
- echo "${PRIVATE_KEY}" | tr -d '\r' > ~/.ssh/id_rsa;
- chmod 700 ~/.ssh/id_rsa;
- eval $(ssh-agent -s);
- ssh-add ~/.ssh/id_rsa;
- ssh-keyscan -H 'github.com' >> ~/.ssh/known_hosts;
- ssh-keyscan github.com | sort -u - ~/.ssh/known_hosts -o ~/.ssh/known_host;
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config;
- echo ${PUBLIC_KEY} >> ~/.ssh/authorized_keys

Ошибка, я видеть в моем конвейере что-то вроде (который в основном регулируется github):

Error: Failed to download module
Could not download module "vpc" (vpc.tf:17) source code from
"https://api.github.com/repos/terraform-aws-modules/terraform-aws-vpc/tarball/v2.21.0//*?archive=tar.gz":
bad response code: 403.

Кто-нибудь может посоветовать, как решить проблему, когда закрытый ключ не используется для извлечения модулей terraform?

...