при выполнении команды SSH из jenkins nvm не найден

Я работаю над экспресс-приложением и пытаюсь развернуть его на ec2 с Jenkins. Я использовал терминал для установки nvm, и он работает нормально.

В Jenkins я использовал подключаемый модуль Publish Over SSH для загрузки сборки в ec2 с тем же пользователем, но это не удается при выполнении команды установки npm.

Я проверил .bashrc и проверил установку nvm.

Когда я запускаю команду printenv из оболочки, она показывает nvm в PATH

ПУТЬ = / home / ubuntu / .nvm / versions / node / v12.13.0 / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / игры: / usr / местные / игры: / оснастка / bin

Но когда я запускаю его с работы Дженкинса, его там нет

ПУТЬ = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games _ = / usr / bin /


person Asad ali    schedule 16.11.2019    source источник


Ответы (3)


Узел Jenkins / agent / slave запускает неинтерактивную оболочку., который пропускает пользовательский .bashrc, только системный (в / etc) профиль. Помимо редактирования системных настроек по умолчанию, существуют различные обходные пути.

Мы используем комбинацию настройки подчиненных серверов SSH плагин и EnvInject.

YMMV.

person Ian W    schedule 16.11.2019

Обходной путь для привязок в целом (эта проблема фактически затрагивает все приложения для привязок) заключается в изменении переменной среды PATH из конфигурации узла Jenkins. Таким образом, каждое задание, выполняющееся на узле, видит измененную переменную PATH. Следующие настройки добавляют "/ snap / bin" к PATH:

введите здесь описание изображения

person Wave    schedule 13.01.2020

Одно из предложений состоит в том, чтобы вы запускали что-то вроде 'echo whoami' в своем скрипте jenkins, чтобы убедиться, что вы являетесь вашим текущим пользователем. Если это так, вы можете изменить пользователя (например, если вы работаете как пользователь root). Из того, что вы описали, мне кажется, что пользователи разные.

person MarcelloCosta    schedule 16.11.2019
comment
Я тоже это сделал, и это тот же пользователь. - person Asad ali; 16.11.2019
comment
Хорошо, у меня есть решение (я знаю, что оно может быть не идеальным, но, вероятно, может сработать): экспортировать путь в скрипт jenkink. Что-то вроде: export PATH = / home / ubuntu / .nvm / versions / node / v12.13.0 / bin: $ PATH - person MarcelloCosta; 16.11.2019