Проблема установки переменных среды Jenkins на EC2-Fleet - PullRequest
3 голосов
/ 19 сентября 2019

У нас есть проблемы с установкой переменных среды Jenkins в нашем динамическом флоте EC2.

У нас уже есть фиксированный мастер (linux) и фиксированный подчиненный Windows, но мы хотели динамически добавлять подчиненные при загрузкеСистема становится тяжелой.Для этого мы создали экземпляр Spot Request Instance в AWS, раскручивая Linux-машины от AMI, и контролируем его с помощью плагина EC2-fleet-plugin в Дженкинсе.

Прежде чем этот флот EC2 сможет оказать какую-либо помощь, наши рабочие места должныбыть в состоянии работать на своих узлах.В большинстве наших работ используются файлы Jenkinsfiles, и для их установки требуются определенные переменные среды, но плагин EC2-fleet-plugin не позволяет устанавливать переменные среды (https://issues.jenkins -ci.org / browse / JENKINS-36544 ).

Как предлагается в этом билете (JENKINS-36544), мы попытались установить переменные среды в «Конфигурации системы» для динамических ведомых устройств ec2 и установить переменные среды для других узлов в «Конфигурации узла»."переопределение" Конфигурация системы ", или мы так думали.Это должно работать, если бы этой ошибки не было: https://issues.jenkins -ci.org / browse / JENKINS-44425 .Из-за этой ошибки «Конфигурация системы» переопределяет «Конфигурацию узла», а не наоборот.Поэтому мы не можем использовать это, поскольку существующие узлы больше не будут иметь правильные переменные среды.

В качестве последнего средства мы попытались установить переменные среды на динамических подчиненных устройствах ec2, создав /etc/profile.d/jenkinsvars.sh наAMI, используемый экземпляром Spot Spot.Этот сценарий будет автоматически запускаться при входе в систему (https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fprofile.d.2F.2A.sh).. Кроме того, мы также попытались установить их в /home/ubuntu/.profile на AMI, выделив пользователя ubuntu, который является пользователем, запускающим агент Jenkins (https://help.ubuntu.com/community/EnvironmentVariables#A.2BAH4-.2F.profile). Но похоже, что Дженкинс использует не эти переменные среды, а свои собственные ...

Способ, который работает, - это адаптировать задания для загрузки Groovy-файла, который является частью AMI, для установки переменных среды, которые мынужно, но это означало бы изменить почти все наши рабочие места, рядом со всеми файлами Jenkins, которые включены в наши репозитории (проект Bitbucket). Мы хотели бы избежать этого ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...