Как я могу экспортировать переменную из SSH в jenkins на удаленной машине в оболочку на локальной? - PullRequest
0 голосов
/ 18 марта 2019

у меня такой вопрос: как я могу экспортировать переменную из сеанса SSH, которая подключена к удаленной машине, чтобы использовать ее в оболочке с локальным хостом, все это на jenkins?Мой SSH-скрипт выглядит следующим образом:

cd /home/$USER/link
docker-compose -f link.yml up -d #this is a script, in my case I use a docker command, the file exists and is copied in another post
echo the application is available at:
CID=$(docker ps -qf "name=webapp1" |tail -1)
app_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $CID) #to get the ip address of the last container
echo $app_ip:8080

Я хочу использовать $app_ip на оболочке, AKA на терминале хост-машины, но я не знаю, как поступить, я пытался использовать ssh -t root@192.168.197.141 env app_ip='$(echo $app_ip)' bash -i но очевидно, что для этого нужна аутентификация, которую я считаю невозможной на Дженкинсе, можете ли вы указать мне правильное направление?спасибо

1 Ответ

0 голосов
/ 19 марта 2019

Если у вас есть скрипт с именем script.sh , вы можете получить входные аргументы, используя $ 1, $ 2 и т. Д. Или $ @, чтобы получить все параметры.

echo "Hi, the first argument is $1" 
echo "Hi, all the arguments are: $@"

Вы можете передать ему аргументы, просто добавив их в одну строку:

bash script.sh "master" "production"

И результат будет:

Hi, the first argument is master
Hi, all the arguments are: master production

Удаленное выполнение с использованием ssh

Если ваш script.sh находится в папке / devops на удаленном компьютере 108.107.106.105 с пользователем my_user , вы может выполнить его и отправить аргументы с этой строкой:

ssh -i /tmp/myKey my_user@108.107.106.105 /devops/script.sh "master" "production"

Результат будет таким же.

...