
Я использую Jenkins для CI. Мне нужно иметь возможность вытащить файл из контейнера S3. Внутри задания jenkins я делаю следующую диагностику из оболочки jenkins:
cd ~
это переносит меня в /var/lib/jenkins
whoami
это возвращает пользователя jenkins
внутри /var/lib/jenkins у меня есть папка .aws с файлом конфигурации и учетных данных, но когда я запускаю
aws configure list
Я понимаю это:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
Там ничего нет, хотя у меня есть папка .aws и правильная информация в этих двух файлах. Изначально я пытался поместить папку .aws в /home/jenkins, но это тоже не сработало.
Итак, как мне заставить Jenkins работать с AWS CLI?
решение1
Вы можете экспортировать учетные данные как переменные среды:
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
Видетьhttp://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.htmlдля получения дополнительной информации. В зависимости от того, как вы используете Jenkins, вы можете использоватьПлагин EvnInject
решение2
Мне помог этот метод:
- Создайте каталог
/var/lib/jenkins
с именем .aws (или скопируйте папку .aws из домашнего каталога, если вы уже настроили свои учетные данные aws с помощью команды «aws configure») - Затем перейдите вниз
/var/lib/jenkins/.aws
и напишитеsudo shown -R jenkins ./
, чтобы сменить владельца файлов в каталоге .aws.
решение3
Пожалуйста, обновите ваши учетные данные aws в bash сервера jenkins. Выполните следующие команды:
# sudo -su jenkins
# aws configure
Ссылка для справки:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html
решение4
Если вы столкнулись с этой проблемой в корпоративной сети при использовании роли экземпляра, убедитесь, что настройки прокси-сервера верны.