Проблема с openshift cli на Bamboo - непрерывное развертывание

Я использую Bamboo для непрерывного развертывания. Теперь, если я использую план Bamboo (обычный), мой скрипт работает отлично. Он может получить oc (команды openshift) в PATH (переменные среды на Bamboo), например, Команда ниже хорошо выполняется по плану Bamboo: -

# include openshift in path
PATH=$PATH:/data/bamboo/openshift

/bin/sh ./portal/deploy.sh --build-number=${bamboo.buildNumber}

Но если я создаю «Проект развертывания» и пытаюсь запустить аналогичную команду, я всегда получаю сообщение об ошибке как oc: not found.

Полный журнал ошибок: -

26-Jul-2019 20:21:27    -> Getting present working dir...
26-Jul-2019 20:21:27    /opt/bamboo-agent-root/bamboo-agent-home/xml-data/build-dir/518946826-518455357
26-Jul-2019 20:21:27    -> Deployment started...
26-Jul-2019 20:21:27    -> Bringing down the pod(s)...
26-Jul-2019 20:21:27    -> Recreating the pod(s)...
26-Jul-2019 20:21:27    -> Deployment completed on TST environment
26-Jul-2019 20:21:27    /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: 6: /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: oc: not found
26-Jul-2019 20:21:27    /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: 10: /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: oc: not found
26-Jul-2019 20:21:27    /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: 13: /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: oc: not found
26-Jul-2019 20:21:27    /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: 13: /opt/bamboo-agent-root/bamboo-agent-home/temp/518946826-518455357-517442402-ScriptBuildTask-7080740712063035315.sh: oc: not found

Вот что я пытаюсь выполнить: -

PATH=$PATH:/data/bamboo/openshift
echo "-> Getting present working dir..."
echo $PWD
oc project dummyproject-tst
echo "-> Deployment started..."
echo "-> Bringing down the pod(s)..."
oc scale --replicas=0 deployment dummy-deployment
echo "-> Recreating the pod(s)..."
oc process -f ./openshift/templates/dummy-template.yaml -p IMAGE_TAG=190724.262 | oc apply -f -
echo "-> Deployment completed on TST environment"

Я предполагаю, что переменная среды для openshift cli не работает, хотя я объявил в 1-й строке, например, PATH = $ PATH: / data / bamboo / openshift


person vinod827    schedule 26.07.2019    source источник


Ответы (1)


Когда я сталкиваюсь с подобными проблемами, это обычно происходит из-за того, что Bamboo каким-то образом заканчивается оболочкой без входа в систему, и поэтому ваш обычный PATH никогда не создается. (Для получения дополнительной информации о том, что такое оболочка без входа, см. https://unix.stackexchange.com/a/46856/36922). Я обошел эту проблему несколькими способами:

  1. Используйте команду source, чтобы запустить /etc/profile в начале вашего скрипта. (YMMV на фактическом пути - это работает в Ubuntu).
source /etc/profile
  1. Заставьте оболочку входа в систему вручную, используя флаг -l при запуске команды. Самый простой способ - сбросить фактический сценарий в файл, а затем выполнить его вручную. Что-то вроде этого:
echo "echo Hi!" > /tmp/tmp.sh
/bin/sh -l /tmp/tmp.sh

Я бы рекомендовал вариант 1 вместо варианта 2 - он немного более удобен в обслуживании и намного менее запутан, когда кто-то читает ваш сценарий и у него есть вопросы.

person Chad    schedule 22.10.2019